|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
def discounts(old_price,rate):
final_price = old_price * rate
old_price = 50
print('在局部变量中修改后old_price的值是:',old_price)
return final_price
old_price = float(input('请输入原价:'))
rate = float(input('请输入折扣率:'))
discounts(old_price,rate)
new_price = discounts(old_price,rate)
print('全局变量old_price现在的值是:',old_price)
print('打折后的价格是:',new_price)
请输入原价:80
请输入折扣率:0.75
在局部变量中修改后old_price的值是: 50
在局部变量中修改后old_price的值是: 50
全局变量old_price现在的值是: 80.0
打折后的价格是: 60.0
>>>
def A(a,b):
result = a+b
return result
>>> A(2,3)
5
>>>
第一个例子中 为什么不管是调用discounts函数,还是将函数给变量 都没有执行return final_price
而第二个例子却执行了return 这是因为print和return在同一个函数里的原因吗
你的这两个函数是在不同环境下运行的,你的第一个例子是运行的.py文件,第二个例子是直接在IDLE中运行的调用的函数。这两种方式肯定是不一样的。
在IDLE中执行语句或者运行函数都会直接显示其返回值,而不需要print打印。然而运行.py文件,在文件中调用了函数,你需要用print打印函数返回值,才能看到return的结果啊。
直接看你的第一个例子吧。
先不看定义函数部分,从主程序部分开始看,主程序部分第一行,将输入数据转为float赋值给old_price,第二行,将输入数据转为float赋值给rate,这两行在运行结果中是能看到的。
接下来是你疑惑的部分。主程序第三行,你调用了discounts函数,但没有接收函数的返回值,但是实际上函数执行了,可以从运行结果中看出来,运行结果中第三行就是你这次调用函数时,函数内的那句print执行的结果;再看主程序的第四行,你有调用了一次discounts函数,这次把函数返回值final_price赋值给new_price,运行结果的第四行就是函数被调用的时候,函数内部执行print的结果。
你的疑惑是return final_price是否执行。我们继续看你的主程序,程序第五行,print输出,这句的执行结果也就是运行结果的第五行;最后看看主程序的第六行,在这句print语句中,你打印输出了new_price,我们看一下运行结果就知道函数的return final_price是否被执行了,运行结果最后一行中可以看到new_price的值是60.0 。这不就是执行函数之后的final_price的值么?你怎么说return final_price没有被执行呢?
|
|