6.3 我的底盘听我的

函数与过程

  函数(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会自动创建一个名字一样的局部变量。

 

上一篇:基于梯度下降的变压器铁心柱横截面设计算法


下一篇:Various Optimization Algorithms For Training Neural Network[转]