先定义后使用
def 函数名(参数):
print(“hellowworld”)
a,b形参
1,2实参
def add_num(a,b):
result = a + b
print(result)
add_num(1,2) #3
返回值
def buy():
return "烟"
print(buy())#烟
函数说明文档
第一行才行
“”""""
help(len)
#Help on built-in function len in module builtins:
#
# len(obj, /)
# Return the number of items in a container.
def buy():
"""函数说明文档,买烟函数"""
return "烟"
print(buy())
help(buy)
# 烟
# Help on function buy in module __main__:
#
# buy()
# 函数说明文档,买烟函数
def print_line():
print('-' * 20)
def print_lines(num):
i = 0
while i < num:
print_line()
i += 1
print_line() #--------------------
print_lines(5)
# --------------------
# --------------------
# --------------------
# --------------------
# --------------------
此时testb()中的a = 200是定义了一个局部变量
a = 100
def testa():
print(a)
def testb():
a = 200
print(a)
testa() #100
testb() #200
print(a)#100
global a 后,下面的a就是全局变量了
a = 100
def testa():
print(a)
def testb():
global a
a = 100 + a
print(a)
testb() #100
print(a)
多个返回值
默认返回元组
def one():
return 1,2
print(one())
#(1,2)
def one():
return [100,200]
print(one())
#[100, 200]
参数
位置参数:传递和定义参数的顺序必须一直
关键字参数:key-value,顺序无要求,函数调用是,如果有位置参数,位置参数必须在关键字参数的前面,但关键字参数之间不存在先后顺序
def user(name, age, gender):
print(f'U name {name},age {age},sex {gender}')
user('Rose', age=20, gender='woman')
user('小马', gender='woman', age=3)
# U name Rose,age 20,sex woman
# U name 小马,age 3,sex woman
default参数:在函数定义时就设定
def user(name, age, gender ='男'):
print(f'U name {name},age {age},sex {gender}')
s
user('Rose', age=20 )
user('小马', gender='woman', age=3)
# U name Rose,age 20,sex 男
# U name 小马,age 3,sex woman
不定长参数:包裹位置传递 和 包裹关键字传递
组包: 收集零散数据返回一个整体
def user(*args):
print(*args)
user('Rose') #Rose
user('Rose',19) #Rose 19
def user(**kwargs):
print(kwargs)
user(name= 'Rose', age= 18 , id= 111)
# {'name': 'Rose', 'age': 18, 'id': 111}
拆包:
元组拆包
def return_num():
return 100,200
num1,num2 = return_num()
print(num1) #100
print(num2) #200
字典拆包
变量存储的数据是key
dict1 = {'name':'Tom', 'age' : 18}
a,b = dict1
print(a) #name
print(b) #age
print(dict1[a]) #Tom
print(dict1[b]) #18
交换变量的值
a,b = 1,2
a,b = b,a
print(a) #2
print(b) #1
引用
python中,值都是考引用传递来的
引用可以理解为变量名
id()判断两个变量是否为同一个值的引用,返回地址
int不可变类型
列表可变类型
a=1
b=a
print(id(a))#1751333120
print(id(b))#1751333120
a = 2
print(id(a))#1751333136
print(id(b))#1751333120
aa=[10,20]
bb=aa
print(id(aa)) #22758824
print(id(bb))
aa.append(40) #22758824
print(id(aa)) #22758824
print(id(bb)) #22758824
可变类型:数据能够直接进行修改,修改的是源数据
列表 字典 集合
不可变类型:数据no能够直接进行修改
int 浮点 字符串 元组