python语法31[函数]
来源:互联网 发布:成都知美术馆怎么样 编辑:程序博客网 时间:2024/05/22 06:31
一 简单函数和函数指针
def myadd(a,b):
return a + b;
print(myadd(3,2));
f = myadd;
print(f(20,30));
return a + b;
print(myadd(3,2));
f = myadd;
print(f(20,30));
二 函数的默认参数
def result(r = 2):
if( r == 1):
print('bad')
elif(r == 2):
print('good')
elif(r == 3):
print('great')
result()
result(1)
def f2(a, L=[]):
L.append(a)
return L
print(f2(1))
print(f2(2))
print(f2(3))
def f3(a, L=None):
if L is None:
L = []
L.append(a)
return L
print(f3(1))
print(f3(2))
print(f3(3))
结果:if( r == 1):
print('bad')
elif(r == 2):
print('good')
elif(r == 3):
print('great')
result()
result(1)
def f2(a, L=[]):
L.append(a)
return L
print(f2(1))
print(f2(2))
print(f2(3))
def f3(a, L=None):
if L is None:
L = []
L.append(a)
return L
print(f3(1))
print(f3(2))
print(f3(3))
good
bad
[1]
[1, 2]
[1, 2, 3]
[1]
[2]
[3]
注意:
默认值在程序的整个运行过程中仅评估一次,对于参数为可变类型的要特别注意,例如list,dictionary,大部分的class类型。
跟C++一样,没有默认值的在前,后面的为有默认值。
三 关键字参数和参数打包
def ilike(first, second = 'banana', third = 'apple'):
print("first is ", end = ' '); print(first, end = ', ')
print("second is ", end = ' '); print(second, end = ', ')
print("and third is ", end = ' '); print(third)
ilike('pear');
ilike('pear', second = 'apple', third = 'banana')
ilike( 'ilike', third = 'god')
d = {'third' : 'apple', 'second' : 'pear', "first" : "banana"}
ilike(**d)
print("first is ", end = ' '); print(first, end = ', ')
print("second is ", end = ' '); print(second, end = ', ')
print("and third is ", end = ' '); print(third)
ilike('pear');
ilike('pear', second = 'apple', third = 'banana')
ilike( 'ilike', third = 'god')
d = {'third' : 'apple', 'second' : 'pear', "first" : "banana"}
ilike(**d)
四 任意长度参数和dictionary参数
def cheeseshop(kind, *arguments, **keywords):
print("-- Do you have any", kind, "?")
print("-- I'm sorry, we're all out of", kind)
for arg in arguments: print(arg)
print("-" * 40)
keys = sorted(keywords.keys())
for kw in keys: print(kw, ":", keywords[kw])
cheeseshop("Limburger", "It's very runny, sir.",
"It's really very, VERY runny, sir.",
shopkeeper="Michael Palin",
client="John Cleese",
sketch="Cheese Shop Sketch")
注意:print("-- Do you have any", kind, "?")
print("-- I'm sorry, we're all out of", kind)
for arg in arguments: print(arg)
print("-" * 40)
keys = sorted(keywords.keys())
for kw in keys: print(kw, ":", keywords[kw])
cheeseshop("Limburger", "It's very runny, sir.",
"It's really very, VERY runny, sir.",
shopkeeper="Michael Palin",
client="John Cleese",
sketch="Cheese Shop Sketch")
*参数名字,表示任意个数的参数。
**参数名字,表示dictionary参数。
*参数必须出现在**前面。
五 函数定义lamda表达式
def make_incrementor(n):
return lambda x: x + n
f = make_incrementor(42)
print(f(1))
print(f(2))
注意:这功能高级!return lambda x: x + n
f = make_incrementor(42)
print(f(1))
print(f(2))
完!
- python语法31[函数]
- python函数语法学习
- Python 函数 类 语法糖
- Python 常用语法函数整理
- Python语法备忘-常用函数
- 007Python语法之函数
- Python 函数 类 语法糖
- 【Python语法笔记】range()函数
- python语法31[类]
- Python 3语法小记(七)函数
- python语法__call__有趣内置函数
- python语法学习之函数,类,模块
- python语法学习之函数,类,模块
- python语法学习之函数,类,模块
- python语法基础归纳(3)--函数
- Python函数闭包和语法糖
- Python语法 之 结构与函数
- python基础语法(6) 函数1
- linux文件同步工具Unison的使用
- 虚拟化技术
- python基础31[安装及Helloworld]
- python语法31[基本数据类型和流程控制]
- python基础31[数据结构list+tuple+set+dictionary]
- python语法31[函数]
- linux下的静态库和动态库的编译
- Linux上安装GCC编译器过程实录
- 5大主流虚拟技术和相关博客
- FTP命令
- DotNet强签名
- GUN Make指南
- nmake使用
- awk使用