#while循环
-一个循环语句
-表示当某条件成立的时候就循环
-不知道具体循环次数,但能确定循环的成立条件时候用while循环
-while语法:
while 条件表达式:
语句块
benqian=100000
year=0
while benqian<200000:
benqian=benqian*(1+0.067)
year+=1
print("第{0}年拿了{1}块钱".format(year,benqian))
while 条件表达式:
语句块1
else:
语句块2
benqian=100000
year=0
while benqian<200000:
benqian=benqian*(1+0.067)
year+=1
print("第{0}年拿了{1}块钱".format(year,benqian))
else:
print("终于翻倍了")
print("好辛苦啊")
#函数
-先定义
-后调用
#定义一个函数
#只是定义的话不会被执行
#1.def关键字,后跟一个空格
#2.函数名自己定义
#3.后面括号和冒号不能省,括号内可以有参数
#4.函数内所有的代码缩进
def func():
print("我是一个函数")
print("我要完成一定功能")
print("我结束了")
#函数的调用
#直接函数名后面跟括号
func()
#函数的参数和返回值
·参数:负责给函数传递一些必要的数据或者信息
-形参:在函数定义的时候用到的参数没有具体值,只是一个占位的符号,成为形参
-实参:在调用函数的时候输入的值
#参数的定义和使用
#参数person只是一个符号,代表的是调用的时候的某一个数据
#调用的时候,会用p的值代替函数中所有的person
def hello(person):
print("{0},你肿么咧".format(person))
print("哪里不舒服吗")
#return语句的使用
#函数打完招呼之后返回一句话
return "我已经和{0}打完招呼了,{1}不理我".format(person,person)
p="铭铭"
rst=hello(p)
print(rst)
·返回值:函数的执行结果
-使用return关键字
-如果没有return,默认返回一个None
-函数一旦执行return语句,则无条件返回
#return案例2
def hello(person):
print("{0},你肿么咧".format(person))
return "哈哈哈我提前结束了"
print("哪里不舒服吗")
p="铭铭"
rst=hello(p)
print(rst)
#九九乘法表
for row in range(1,10):
for col in range(1,row+1):
print(row*col,end=" ")
print(" ")
#定义一个函数,打印一行九九乘法表
def printLine(row):
for col in range(1,row+1):
print(row*col,end=" ")
print(" ")
for row in range(1,10):
printLine(row)
#四类函数
-普通函数
-默认参数
-关键字参数
#关键字参数案例
def stu(name,age,addr):
print("I am a student")
print("我叫{0},我今年{1}岁,我住{2}".format(name,age,addr))
a="ding"
n=18
addr="我家"
#普通参数,只能按照位置传递,容易出错
stu(a,n,addr)
-收集参数
·把没有位置,不能和定义时的参数位置相对应的参数,放入一个特定的数据结构中】
·语法:
def func(*args):
func_body
按照list使用方式访问args得到传入的参数
调用:
func(p1,p2,p3...)
·参数名args不是必须这么写,但是,我们推荐直接用args,约定俗成
·参数名args前需要星号
·收集参数可以和其他参数共存
#收集参数代码
#函数模拟一个学生进行自我介绍
#args把他看做一个list
def stu(*args):
print("Hello 大家好,我自我介绍一下:")
#type函数作用是检测变量的类型
print(type(args))
for item in args:
print(item)
stu("ddu",18,"东北","dudu","single")
stu("周大神")
收集参数之关键字收集参数
·把关键字参数按照字典格式存入收集函数
·语法:
def func(**kwargs):
func_body
调用:
func(p1=v1,p2=v2,p3=v3......)
·kwargs一般约定俗成
·调用的时候,把多余的关键字参数放入kwargs
·访问kwargs需要按字典格式访问
#收集参数案例
#自我介绍
#调用的时候需要使用关键字参数调用
def stu(**kwargs):
#在函数体内对于kwargs的使用不用带星号
print("Hello 大家好,我自我介绍一下:")
print(type(kwargs))
#对于字典的访问
for k,v in kwargs.items():
print(k,"---",v)
stu(name="ddu",age=18,addr="东北",lover="dudu",work="single")
print("*"*50)
stu(name="周大神")
收集参数混合调用的顺序问题
·收集参数,关键字参数,普通参数可以混合使用
·使用规则就是,普通参数和关键字参数优先
·定义的时候一般找普通参数,关键字参数,收集参数tuple,收集参数dict
#收集参数混合调用案例
def stu(name,age,hobby="没有",*args,**kwargs):
print("Hello 大家好")
print("我叫{0},今年{1}大了.".format(name,age))
if hobby=="没有":
print("我没有爱好")
else:
print("我的爱好是{0}".format(hobby))
print("*"*20)
for i in args:
print(i)
print("#"*30)
for k,v in kwargs:
print(k,"---",v)
#调用
name="duud"
age=18
stu(name,age)
stu(name,age,hobby="游泳")
收集参数的解包问题
·把参数放入list或者字典中,直接把list/dict中的值放入收集参数中
#收集参数的解包问题
def stu(*args):
print("哈哈哈哈哈哈")
n=0
#n用来表示循环次数,主要用来调试
for i in args:
print(type(i))
print(n)
n+=1
print(i)
stu("dudu","didi",19,20)
l=list()
l.append("dudu")
l.append(20)
l.append(230)
stu(l)
同理,dict类型收集函数一样可以解包,但是需要用两个星号
#函数文档
·函数的文档作用是对当前函数提供使用相关的参考信息
·文档的写法:
-在函数内部开始的第一行使用三字符串定义符
-一般具有特定格式
·文档查看
-使用help函数,形如help(func)
-使用doc
#文档案例
def stu(name,age,*args):
'这是文档'
print("This is hanshu stu")
help(stu)
stu._doc_