if的简写
print("Chen" if 3>1 else "Cao")
while的简介
num=1
while num<3:print("周二");num+=1
函数
一 函数的定义 和 调用
(1)什么是函数
封装具有一定意义和制定功能的代码块
(2)优点:
1.增加了代码的重复使用率
2.减少了代码量 , 提高了代码的可读性
3.提高了代码的维护
(3)函数的定义 函数不调用不会执行
def 函数名():
代码块
(4)函数的使用
函数名() #只能在函数定义的下方去调用/使用
(5)函数的None
没有返回值的函数 进行打印都是none
二 函数的参数问题
(1)形参
在函数定义的时候,在括号里写入的变量称为形参
注意
1.如果定义的函数有形参 且 没有默认值 那么在调用的时候,必须传实参的个数,不能大于形参的个数
2.函数的定义的时候,如果形参都有默认值,那么传的实参会将默认值覆盖,此时的实参可传可不传
3.函数的形参默认值,如果在形参中有的参数有默认值,有的没有,那么将有默认值的参数,放在后面
def add(x,y):
print(x,y)
add(1,20)
##################
def info(x,y=10):
print(x,y)
info(10)
以下是错误的
def test(x=10,y):
print(x,y)
test(10,10)
(2)关键字参数
可以使用关键字来改变我的形参与实参的默认(从左到右的对应关系)
注意:
关键字要么给要么不给
def test(x,y):
print('x为',x,'y为',y)
test(y=10,x=100)
结果
x为 100 y为 10
(3)不确定参数 * 行参数名 以元组的形式去接收
def func(*args):
print(args)
func(1,54,24)
(4) 不确定实参的 **接收 必须是关键字 加值 接收以后 是 字典类型
def func(**args):
print(args)
for i in args:
print(i,args[i])
func(username='帅帅哒',hobby='陈旭恒')#函数调用
return返回值
注意
当函数体的代码执行 遇到return的时候 return下面的代码将不会在继续执行
def test(x,y):
return x+y
print('对面的女孩看过来')
print(test(10,20))
返回多个值
return 返回多个值 只显示第一个return
def value():
return [1,2,3,4,'a','b']
return 1,2,3 #(1, 2, 3)
return {"a":1}
print(value())
变量的作用域问题
(1)全局变量
在函数外部定义的变量称为全局变量
在函数的内外都能够获取到
a = 'a'
def func()
print(a)
func()
(2) 局部变量
在函数内部定义的变量称之为局部变量
def func()
a='a'
print(a)
func()
print(a)
(3)可变类型 不可变类型
可变类型 :列表 字典
不可变类型: int string
(4) 关键字 global nonlocal
global 内部使用的都为同一个变量
str1 = x
def test():
global str1
str1 = 2
test()
print(str1)
nonlocal函数的嵌套共用一个变量
def func():
username = 'Mr_Chen'
def fun2():
nonlocal username
username='man'
print(username)
func()
print("我是func的username",username)
func()