昨天学完小甲鱼的视频以后偷懒没有写博客,今天买了美美的小裙子和巴洛克宫廷风小衬衫还是来补一下昨天的笔记和总结吧~做一个努力的美美的程序媛~
def hello():
print('hello world!')
temp=hello()
print(temp)
print(type(temp))
#此时没有返回特定值,函数只返回了none对象
def back():
return(1,2,'a',45.4)
print(back())
temp=back()
print(temp[1])
def discounts(price,rate):
final_price=price*rate
print("old_price的值:", old_price) #这里访问全局变量
return final_price
old_price=float(input('请输入原价:\n'))
rate=float(input('请输入折扣率:\n'))
new_price=discounts(old_price,rate)
print('final_price的值是:', final_price) #这里尝试访问函数私有变量
print('打折后价格是:', new_price)
print('\n')
def discounts(price,rate):
final_price=price*rate
old_price=88 #这里试图修改全局变量,但是其实修改的是局部变量
print("修改后old_price的值:", old_price)
return final_price
old_price=float(input('请输入原价:\n'))
rate=float(input('请输入折扣率:\n'))
new_price=discounts(old_price,rate)
print('修改后的old_price的终极值是:', old_price) #仍然显示输入的值,而非88
print('打折后价格是:', new_price)
def discounts2(price,rate):
final_price=price*rate
global old_price
old_price=88 #这里试图修改全局变量,修改成功,因为使用了global关键字
print("修改后old_price的值:", old_price)
return final_price
old_price=float(input('请输入原价:\n'))
rate=float(input('请输入折扣率:\n'))
new_price=discounts2(old_price,rate)
print('修改后的old_price的终极值是:', old_price)
print('打折后价格是:', new_price)
def fuc1():
print("fuc1正在被调用....")
def fuc2():
print("fuc2正在被调用....")
fuc2() #内嵌函数:fuc2是定义在fuc1的里面,只能在fuc1里调用
fuc1()
# 在外部直接调用fuc2()是错误的
def fucx(x):
def fucy(y):
# fucy对外部作用域fucx(但不是在全局作用域)的变量进行引用,
# 那么内部函数则会被认为是闭包
# 所以fucy是一个闭包
return x*y
return fucy
i=fucx(8)
print(i)
print(type(i))
可以看到这里调用fucx只给了x的入口参数,返回的其实是的fucy,类型是一个function
正确的调用方式:
#调用方式1
print(i(5))
#调用方式2
print(fucx(8)(5))
此外注意:
def Fuc1():
x=5
def fuc2():
x*=x #试图修改外部函数局部变量(不是全局变量) 是错误的!会报错!
return x
return fuc2()
def Fuc1():
x=[5]
def fuc2():
x[0]*=x[0]
return x[0]
return fuc2()
print(Fuc1())
def Fuc1():
x=5
def fuc2():
nonlocal x
x*=x
return x
return fuc2()
print(Fuc1())