标签:
1 2 >>> Saysome(‘袁重阳‘,‘你好‘) 3 袁重阳->你好 4 >>> Saysome(‘你好‘,‘袁重阳‘) 5 你好->袁重阳 6 >>> Saysome(words=‘你好‘,name=‘袁重阳‘) 7 袁重阳->你好 8 >>> #可以通过提示形参来避免编译器按照顺序赋值 .
`
1 >>> def saysome(name=‘小甲鱼‘,words=‘让编程改变世界‘): 2 print(name+"->"+words) 3 >>> saysome() 4 小甲鱼->让编程改变世界 5 >>> saysome(‘老甲鱼‘) 6 老甲鱼->让编程改变世界 7 >>> saysome(words=‘不让编程改变世界‘) 8 小甲鱼->不让编程改变世界
>>> def test(*params): print("参数的长度是:",len(params)) print("第二个参数是:",params[1]) >>> test(1,‘小甲鱼‘,3.14,5,6,7,8) 参数的长度是: 7 第二个参数是: 小甲鱼 >>> def test(*params,tex): print("参数的长度是:",len(params)) print("第二个参数是:",params[1]) >>> test(1,2,3,4,5,6,7,8) Traceback (most recent call last): File "<pyshell#38>", line 1, in <module> test(1,2,3,4,5,6,7,8) TypeError: test() missing 1 required keyword-only argument: ‘tex‘ >>> #发生错误 因为调用的时候里面的参数被全部传送至 收集参数那里. >>> test(1,2,3,4,5,6,7,tex=8) 参数的长度是: 7 第二个参数是: 2 >>> #可以通过上述的指定参数来避免 当然也可以通过默认参数避免 >>> def test(*params,tex=8): print("参数的长度是:",len(params)) print("第二个参数是:",params[1]) >>> test() 参数的长度是: 0 Traceback (most recent call last): File "<pyshell#44>", line 1, in <module> test() File "<pyshell#43>", line 3, in test print("第二个参数是:",params[1]) IndexError: tuple index out of range >>> test(1,2,3) 参数的长度是: 3 第二个参数是: 2
>>> def hello(): print("hello") >>> temp=hello() hello >>> type(temp) <class ‘NoneType‘> >>> print(hello) <function hello at 0x02E32858> >>> print(temp) None >>> # 可以看出没有返回值 >>> def hello(): print("hello") return 1 >>> print(hello()) hello 1 >>> temp=hello() hello >>> print(temp) 1 >>> def hello(): return 1,2,3,4,5,6 >>> #返回多个值 >>> hello() (1, 2, 3, 4, 5, 6)
1 def dis(price,rate): 2 final_price=price*rate 3 global old_price 4 old_price=10 5 print(old_price) 6 return final_price 7 old_price=float(input(‘请输入原价:\t‘)) 8 rate=float(input(‘请输入折扣率:\t‘)) 9 new_price=dis(old_price,rate) 10 print(‘打折后的价格是:\t‘,new_price) 11 print("这里试图输出修改后的全局变量old_price:\t",old_price)
def dis(price,rate): final_price=price*rate #print("这里试图打印全局变量old_price的值:\t",old_price) # old_price=88 #这里试图修改 全局变量 #print(‘修改后old_price的值是:\t‘,old_price) #old_price=80 #如果在这里试图修改全局变量 old_price的话编译器会再声明一个局部变量. print(old_price) return final_price old_price=float(input(‘请输入原价:\t‘)) rate=float(input(‘请输入折扣率:\t‘)) new_price=dis(old_price,rate) #print(‘修改后的old_price的值是:\t‘,old_price) print(‘打折后的价格是:\t‘,new_price) #在函数之中定义的变量都是局部变量在变量外无效 . #因为在执行函数的时候我们将其储存带 "栈" 中当函数执行完毕的时候我们将该函数从 # "栈" 中删除 所以这时候其中的变量也被随之删除了 .在外界不能被访问 . #print(‘这里试图打印局部变量final_price的值:\t‘,final_price) # 这一句话有错 , 局部变量在外面不能访问 . # 在和局部变量相对的是全局变量 全局变量是在 函数之外声明的 (其作用于参考局部变量可以得出 : 是整个文件 . 因为整个文件自始至终都存在 . )
标签:
原文地址:http://www.cnblogs.com/A-FM/p/5658126.html