# 若是说年利率是6%,存入1000到第几年本钱翻倍
1 money = 10000
2 year = 0 3 while money < 20000: 4 money = money*(1+0.06) 5 year += 1 6 print('第 {0} 年本钱翻倍了,总共有 {1} 元'.format(year,money))
def hello(name): print("你好吗,{}".format(name)) return "函数停止执行,后面无论有多少句代码都不会被执行"
print("这句话不会被执行")
person = 'Tom'
hello(person)
rst = hello("John") #函数也能够这么调用,若是有返回值会将返回值赋值给变量
函数的返回值数据结构
表示函数执行的结果,若是函数中没有return系统自动返回None,函数一旦执行return语句,则无条件返回,意味着return下面的语句将再也不执行,只要遇到return,函数自动停止执行。def hello(name, gender = 'boy'): if gender = 'boy': print("welcome,{0},you are a good {1}".format(name, gender)) else: print("welcome,{0},you are a good {1}".format(name, gender)) hello('Tom') hello('Siri', 'girl')
- 关键字参数:注意与默认参数区分,好处就是实参与形参位置能够不用一一对应
def fun(p1=v1, p2=v2, ...):
pass
fun(p1=value1, p2=value2, ....)app
def student(name=None, age=None, gender=None): print("我是一个学生,个人名字是 {0}, 我今年 {1} 岁, 我是个 {3}生") name = 'Tom' age = 12 gender = '男' student(age=age, gender=gender, name=name)
- 收集参数:
把没有位置,不能和定义时的参数位置相对应的参数,放入一个特定的数据结构中
def fun(*args):
pass
调用:fun(p1, p2, p3, ...)
参数名能够不用 args,但推荐这么用,约定俗成. 注意前面的 " * " 不能省略, 调用的时候能够不传入参数值
收集参数传参的时候不能直接传入关键字参数,例如 fun(name='Tom'Z)
函数
def stu( *args ): print("你们好, 简单自我介绍一下:") for i in args: print(i, end='=>') stu("小明", 18, "山东省") stu('小红')
- 收集参数之关键字收集参数
把关键字参数以字典的形式放入收集参数, 访问kwargs须要用访问字典的方式
def fun( **kwargs ):
pass
#调用
fun(p1=v1, p2=v2, ....)
spa
def stu(name, age, *args, hobby='没有', **kwargs): print('你们好') print("我叫 {0}, 我今年 {1} 大了.".format(name, age)) if hobby == '没有': print('我没有爱好') else: print("个人爱好是{0}".format(hobby)) for i in args: print(i) for k, v in kwargs.items(): print(k, ' ------', v) name = 'tom' age = 19 stu(name, age, '王晓静', '小红', hobby='sing', addr='beijing', phone='123213')
def stu(**kwargs): print(你们好,我先自我介绍一下) # 对于字典的访问,Python2 与 Python3 有区别 for k,v in kwargs.items(): print(k,'--------', v) stu(name='wangxiaojjing', age=10, addr='北京') 收集参数的解包问题(unpack) - 把参数放入list或者dict中,直接把list/dict中的值放入收集参数中 def stu(*args): for i in args: print(i) l = list() l.append('aafd') # 在列表的最后插入值 l.append(1321) stu(l) # 打印的结果是['aafd', 1321] 不是理想中的结果 stu(*l) # 解包符号 * 加上之后就是理想中的结果对于dict类型的收集参数同样能够解包,可是须要加两个 *,## 返回值函数和过程的区别就是: 有无返回值,若是函数中没有显式返回值,即return value 则默认返回None例如: def func1(): print('aaa') return 1def func2(): print('a')f1 = func1() # 结果是 1f2 = func2() # 结果是 None建议全部的函数无论有没有返回值在最后都加上一个return # 函数文档 - 用来解释函数的做用以及利用方式- 文档的写法: 在函数内部开始的第一行使用三引号括起来 通常具备特定格式 例如 def stu(name, age): '''这是 文档 ''' print(name, age) return None - 查看文档的方式: 使用help(函数名) 使用 函数名._doc_