def定义函数名
def method():
print("没有形参的函数")
method() # 没有形参的函数
def m(a,b):
return a + b
c = m(1,2)
print(c) # 3
可变对象和不可变对象在函数传参中使用 string,tuple,numbers是不可以更改的对象 list,set,dict是可以更改的对象
文件调用
# deff文件
# 有一个函数,自己执行方法
def main(x,y):
return x+y
print(main(1,2)) # 3
# def1文件
from deff import main
print(main) # 3
就是在import调用上一个deff的文件的时候就会自动执行一遍那个方法,这是不好的,所以要用下面的方式
# deff文件
def main1(x1,y1):
return x1+y1
if __name__ == '__main__':
print(main1(2,3)) # 5
#def1文件
from deff import main1
if __name__ == '__main__':
print(main1(2, 4)) # 6
在输出语句的上面加上这句 if __name__ == '__main__': 那么就只会调用一次自己执行的方法(在跨文件调用的时候)
就是在调用方法的时候加上这句话 if name == ‘main’:
不定长参数
# 不定长参数 加上* 就是不定长
def m(*num):
for i in num:
print(i)
if __name__ == '__main__':
m(1,2,3,4) # 1 2 3 4 此时num就是不定长
def add(*num): # 不传参数的时候 num就是一个空元组
total = 0
for i in num:
total += int(i)
return total
if __name__ == '__main__':
print(add(1, 2, 3, 4)) # 10
print(add('1','2','3','4')) # 10
匿名函数
# 匿名函数
# 1. 单行语句 形参可以0~多个
sum = lambda x,y,z : x+y+z # 关键字 lambda 形参 : 表达式(也就是返回值)
if __name__ == '__main__':
print(sum(1,2,3)) # 6
sum1 = lambda x, y, z: x + y
if __name__ == '__main__':
print(sum1(1,2,3)) # 3 几个形参传几个数 但是 表达式可以不写全
return
# return关键字
def number(x,y):
total = x+y
print(total)
if __name__ == '__main__':
number(1, 2) # 3
def number1(x,y):
total1 = x+y
print(total1)
if __name__ == '__main__':
result2 = number1(11, 2)
print(result2) # None 用这个函数赋值了 在输出就会是None,解决办法就是加上return
# 解决
def number11(x,y):
total11 = x+y
return total11
if __name__ == '__main__':
result1 = number11(11, 2)
print(result1) # 13 函数就要加上return
|