一、查缺补漏
1. end=' 任意值 ' 表示换行,任意值会显示在换行前,不写默认换行
2. input() 用户键盘输入 默认输入str类型,如要和int类型比较需要强制类型转换
二、退出、结束循环和嵌套循环
1. continue和break 结合循环使用
a. continue:结束本次循环,进入下一个循环 ,注意continue是结束当前循环体,但 i 还是会继续增加
列:for i in range(5):
if i == 3:
continue
elif i == 4:
print(i)
else:
print(i) 结果为:0 1 2 4
b. break:退出循环
列:for i in range(5):
if i == 3:
break
print(i) 结果为:0 1 2
2. 嵌套循环
a. 嵌套循环:循环里面还有循环,比如两个for循环,不要写三层循环
列:for k in range(2):
print('外层循环',k)
for i in range(5):
print(i) 结果为:外层循环0 01234 外层循环1 01234
解释:外层循环第一次,内层循环五次,外层再开始循环第二次,内层再循环五次
range()生成的列表元素有多少个就执行多少次
b. 函数循环:解耦双层for循环
列:def test02():
for i in range(5):
print(i)
def test01():
for k in range(2):
print('外层循环',k)
test02()
test01() 结果为:外层循环0 01234 外层循环1 01234
解释:函数test01被执行k=0,进入函数test02循环五次,再到test01函数k=1,进入test02循环五次
三、函数
1. 函数:一段可以直接被另外一个程序或者代码去引用的代码
2. 定义
语法:def 函数名称(): -----定义函数
函数体
return返回值
函数名称() -------调用函数
注意:函数名一般用下划线,函数体要缩进(Tab,4个空格)
return是函数运行结束的标识符,遇到return直接跳出函数
函数的返回值return的值可以写也可以不写,不写或return后面未写返回值,默认返回None
调用函数时不会显示return的值,但其实函数返回值中包括return后面的值
列:def name_list():
print("alisa")
return 1
name_list()
res=name_list()
print(res) 结果为:alisa alisa 1
3. 函数参数
a. 形参:占个坑,表示这里有值 如:def test(name) name就为形参
实参:函数调用的时候传给函数的值 如:def test(name="alisa") alisa为实参
b. 必须参数 (必须传参,但不一定被调用)
i. 函数调用的时候必须传,不传就会报错 比如a中的name就为必须参数
ii. 必须按参数的顺序进行传递,一一对应
图中调用的name和age的顺序和函数的顺序必须对应,要不然会传反
iii. 参数未被使用,不会高亮
iv. 函数的参数不一定在函数中去使用,调用函数的时候还是必须要传
c. 关键字参数---最好使用
i. 函数调用传递参数的时候,将某个值给固定的参数 调用时(参数=实参)
ii. 无需关注函数参数的顺序
iii. 即使不被高亮,也不会报错
d. 默认参数
i. 函数调用的时候,有默认参数可以不传参 定义时(参数=实参)
ii. 函数调用的时候,如果传了参数如下图name_01,会覆盖掉默认参数
e. 不定长参数
i. *args:接收多个参数,以元组的形式接收,*后面的值可以随意更改
ii. **kwargs:接收多个关键字参数,以字典的形式接收,**后面的值可以随便定义
iii. 在函数体内使用的时候不能加*,和**,调用的时候不能反过来
四、变量作用域
1. 全局变量:定义在函数外面,整个py文件都能用,或者是整个类都可以使用的变量 如下图name="alisa"
局部变量:定义在函数里面,只在某个函数内可以使用 如下图name="老王"
2. global关键字-----定义为全局变量
a. 作用:global关键字修饰变量后,就表示声明该变量为全局变量
b. 被声明的全局变量如果在函数体中,一定要先调用这个函数
c. 先global声明再对其赋值
五、几个小知识点
1. 函数定义时的形参是否用到函数体里,是不一定,可是调用函数时,一定要根据定义时的参数进行传参,否则会报错
2. 高亮是pycharm里的特别提醒,没有应用改变量或者参数时,是灰色的,就说明函数体里没有引用这个变量或者参数
3. 关键字参数实际是传参的一种形式,采取形参=value的形式,不用纠结,注意区分就好
4. debug中,step into:是进入函数内部