ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

6.3 我的底盘听我的

2020-05-10 13:57:11  阅读:287  来源: 互联网

标签:old 底盘 price discount rate 6.3 全局变量 final


函数与过程

  函数(function):是有返回值的

  过程(procedure):是简单、特殊并且没有返回值的

python严格意义上来说只有函数没有过程

 1 def hello():
 2     print('hello world!')
 3 
 4     
 5 temp = hello()
 6 hello world!
 7 temp
 8 print(temp)
 9 None
10 type(temp)
11 <class 'NoneType'>
12 def back():
13     return [1,'hello',3.174]
14 
15 back()
16 [1, 'hello', 3.174]

局部变量(local variable) 全局变量(global variable)

def discount(price,rate):
    final_price = price * rate
    return final_price
old_price = float(input('请输入原价: '))
rate = float(input('请输入折扣: '))
new_price = discount(old_price,rate)
print('打折后的价格是:%.2f' % new_price)

请输入原价: 100
请输入折扣: 0.5
打折后的价格是:50.00

在函数discount(price,rate)中两个参数是price和rate,还有一个是final_pricr,它们都是discount()函数中的局部变量。

修改下代码,看下局部变量的范围

def discount(price,rate):
    final_price = price * rate
    return final_price
old_price = float(input('请输入原价: '))
rate = float(input('请输入折扣: '))
new_price = discount(old_price,rate)
print('这里试图打印局部变量final_price的值:' ,final_price)

请输入原价: 100
请输入折扣: 0.5
Traceback (most recent call last):
  File "D:/python/练习/6.3.1 discount.py", line 7, in <module>
    print('这里试图打印局部变量final_price的值:' ,final_price)
NameError: name 'final_price' is not defined

 

old_price 和 new_price 和 rate 是在函数外定义的,是全局变量,

假如在函数内部去执行读取全局变量,是否可行?

def discount(price,rate):
    final_price = price * rate
    print('这里试图访问全局变量old_price的值:',old_price)
    return final_price
old_price = float(input('请输入原价: '))
rate = float(input('请输入折扣: '))
new_price = discount(old_price,rate)
print('打折后的价格是:' ,new_price)


请输入原价: 100
请输入折扣: 0.5
这里试图访问全局变量old_price的值: 100.0
打折后的价格是: 50.0

 

在函数中试图修改全局变量,会发生什么?

python会自动创建一个局部变量(名字是一样的)

 

全局变量在整个代码中都是可以被访问的,在函数内部只能访问但是不能修改全局变量,否则python会自动创建一个名字一样的局部变量。

 

标签:old,底盘,price,discount,rate,6.3,全局变量,final
来源: https://www.cnblogs.com/wyzq9294/p/12863022.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有