python3_0">python基础语法3
了解整体内容可以从基础语法1开始。本篇主要内容:函数。
- 定义函数,使用def关键字,语句块是缩进来体现的。
python">def printstr(str):print(str)if __name__ == '__main__':printstr("hello")# 其他名称指向函数对象,用新名称访问也可以newPrint=printstrnewPrint("newHello")
打印效果:
hello
newHello
- 返回值用return,没有返回值的函数返回值为None。
python">def printstr(str):print(str)def returnStr(str):return strif __name__ == '__main__':print(printstr("hello"))print(returnStr("return"))
打印效果:
hello
None
return
- 参数:默认值、列表
python">i=1
# 这里的参数,num需要传值,msg的默认值是hello,
# c的默认值是变量,l的默认值是列表,但只有第一次调用是空列表,后续会随着调用次数改变,
# m设置为none可以解决l的次数叠加问题
def function_demo(num, msg='hello', c=i,l=[],m=None):print(num,msg,c)l.append(c)print(l)if m is None:m=[]m.append(c)print(m)if __name__ == '__main__':function_demo(1)# msg的值可以改变function_demo(2,msg='hello world!')
打印效果:
1 hello 1
[1]
[1]
2 hello world! 1
[1, 1]
[1]
- 特殊参数
python"># /之前的是仅限位置形参
# /后可以是 位置或关键字 或 仅限关键字 形参
# *之后是仅限关键字形参
def standard_arg(arg):print(arg)
def pos_only_arg(arg, /):print(arg)
def kwd_only_arg(*, arg):print(arg)
def combined_example(pos_only, /, standard, *, kwd_only):print(pos_only, standard, kwd_only)if __name__ == '__main__':combined_example(1,2,kwd_only='3')打印效果:
1 2 3
- 任意实参列表
python"># *args是可变数量的参数,一般放到最后,如果后面加参数,那么需要是关键字参数
def concat(type, *args, sep="/"):print(type,sep.join(args))if __name__ == '__main__':concat('水果','苹果','香蕉','西瓜')concat('星球','地球','水星','木星', sep='.')
打印效果:
水果 苹果/香蕉/西瓜
星球 地球.水星.木星
- 解包实参列表
python">def printContent(name,status):print(name,status)def printf():args=[2,5]#用 * 操作符把实参从列表或元组解包print(list(range(*args)))# 字典可以用 ** 操作符传递关键字参数d = {"name": "水果", "status": "开心"}printContent(**d)
打印效果:
[2, 3, 4]
水果 开心
- 文档字符串
python">def my_function():"""你好!我很好."""pass
打印效果:
你好!我很好.
虽然一枚小小码农,不过也在向阳努力着,本人在同步做读书故事的公众号,欢迎大家关注【彩辰故事】,谢谢支持!~