51Testing软件测试论坛
标题:
python的全局变量问题
[打印本页]
作者:
海海豚
时间:
2016-9-22 16:00
标题:
python的全局变量问题
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
作者:
梦想家
时间:
2016-9-23 10:42
代码执行过程 每步都看一下 理解一下
结果都是对的
作者:
芒果go
时间:
2016-9-23 15:04
问题一:调用了两次函数,所有print了两次,并且两次都是my_price=10000
问题二:totalPrice调用的时候my_price赋值动作还没有运行,所以获取传入的5000
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2