51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1609|回复: 3
打印 上一主题 下一主题

求教:python学习 局部变量与全局变量的问题

[复制链接]
  • TA的每日心情
    奋斗
    前天 08:49
  • 签到天数: 1796 天

    连续签到: 5 天

    [LV.Master]测试大本营

    跳转到指定楼层
    1#
    发表于 2016-9-22 16:07:44 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

    python小白一只,正在学习python,学到全局变量与局部变量,这一块不太懂了,希望有大神可以指点一下

    代码如下:
    1.        def calculateTax(price,tax_rate):  
    2.        total=price+(price*tax_rate)
    3.        global my_price
    4.        my_price=10000                     
    5.        print(my_price)
    6.        return total     
    7.        my_price=float(input('Enter a price:'))
    8.        totalPrice=calculateTax(my_price,0.06)
    9.        total=calculateTax(my_price,0.06)
    10.      print('price=',my_price,'Total price=',totalPrice,'Total=',total)
    11.      print(my_price)   

    输出结果是:
    1.        Enter a price:5000
    2.        10000
    3.        10000
    4.         price= 10000 Total price= 5300.0 Total= 10600.0
    5.        10000



    问题是:
    1.  由第五行代码输出的my_price为什么在输出结果中输出了两次?
    2.  在代码第三行,利用global定义的全局变量my_price在函数定义里面被赋值10000之后, totalPrice 调用calculateTax函数时,为什么取得是input的值5000,然后在 total 调用calculateTax函数时,my_price取得值却是10000呢???


    求解 TUT
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2017-11-7 16:44
  • 签到天数: 290 天

    连续签到: 1 天

    [LV.8]测试军长

    推荐
    发表于 2016-9-22 16:35:14 | 只看该作者
    海海豚 发表于 2016-9-22 16:11
    发现代码部分粘贴的缩进格式不正确,改一下,对了,我用的是3.X的python

    代码如下:

    解释下代码执行的过程,你看看:

    def calculateTax(price,tax_rate):  
          total=price+(price*tax_rate)
          global my_price
          my_price=10000                     
          print(my_price)
          return total     
    #键盘输入:5000
    my_price=float(input('Enter a price:'))

    #调用calculateTax函数, total=5000 + 5000*0.06 = 5300
    #将my_price设为全局变量  my_price的值置为10000
    #打印my_price的值,即10000
    #返回5300给totalPrice
    totalPrice=calculateTax(my_price,0.06)

    #由于my_price是全局变量,值为10000
    #调用calculateTax函数, total=10000+10000*0.06 = 10600
    #将my_price设为全局变量  my_price的值置为10000
    #打印my_price的值,即10000
    返回10600给total

    total=calculateTax(my_price,0.06)

    #my_price是全局变量,值为10000
    #第一次调用totalPrice为5300
    #第二次调用total为10600
    print('price=',my_price,'Total price=',totalPrice,'Total=',total)
    print(my_price)

    评分

    参与人数 1测试积点 +10 收起 理由
    lsekfe + 10 积极回复获得测试积点10

    查看全部评分

    回复 支持 1 反对 0

    使用道具 举报

  • TA的每日心情
    奋斗
    前天 08:49
  • 签到天数: 1796 天

    连续签到: 5 天

    [LV.Master]测试大本营

    4#
     楼主| 发表于 2016-9-22 16:58:47 | 只看该作者
    若尘_51 发表于 2016-9-22 16:35
    解释下代码执行的过程,你看看:

    def calculateTax(price,tax_rate):  

    真的是非常谢谢,我没有把代码执行的过程想清楚,谢谢指点~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    前天 08:49
  • 签到天数: 1796 天

    连续签到: 5 天

    [LV.Master]测试大本营

    2#
     楼主| 发表于 2016-9-22 16:11:36 | 只看该作者
    发现代码部分粘贴的缩进格式不正确,改一下,对了,我用的是3.X的python

    代码如下:

    1.        def calculateTax(price,tax_rate):  
    2.              total=price+(price*tax_rate)
    3.              global my_price
    4.              my_price=10000                     
    5.              print(my_price)
    6.              return total     
    7.        my_price=float(input('Enter a price:'))
    8.        totalPrice=calculateTax(my_price,0.06)
    9.        total=calculateTax(my_price,0.06)
    10.      print('price=',my_price,'Total price=',totalPrice,'Total=',total)
    11.      print(my_price)
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-10 17:23 , Processed in 0.075749 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表