1、基础函数:
# def show(): # print('Hello World!') # print('My name is Albert') # # print(show) # show() # def show(name): # print('Hello :',name) # print('My name is Albert') # # print(show) # show('Pretty girl') def calc(x,y): res=x**y print(res) calc(2,6) calc(2,2)
2.参数:
def stu_register(name,sex,age,professional,school='山东理工大学'): print("--------------学生信息注册-------------") print('姓名:',name) print('性别:',sex) print('年龄:', age) print('学校:', school) print('专业:', professional) stu_register('albert','boy','23','软件工程') stu_register('Tom','boy','23','软件工程') stu_register('jery','boy','23','软件工程') stu_register('rain','boy','23','软件工程') stu_register('black girl','girl','23','山东大学','软件工程')
关键参数:::
def stu_register(name,sex,age,professional,school='山东理工大学'): print("--------------学生信息注册-------------") print('姓名:',name) print('性别:',sex) print('年龄:', age) print('学校:', school) print('专业:', professional) stu_register('albert','boy',professional='软件工程',age=23)
#多人发送,即 非固定参数 def send_message(msg,*users): for u in users: print(msg,u) send_message('奋斗吧!青年','albert','jack') send_message('yx最孤独!','albert','jack','xxxx')
两种不同的非固定参数(但都是以元祖形式打包的)传参写法:
*users是吧msg之后的所有参数截胡打包给自己,后面如果加一个age,她也会把age包含里面。因此,如果后面加形参,调用时用关键参数,以age这个为例:age=22.这样的话就不会被截胡。
元祖打包和字典打包:
函数返回:
def stu_register(name,age,course,country): print(name,age,course,country) if age < 23: return name,course elif age >= 23 and age <= 30: return '恭喜你!' elif age >30 and age < 60: return ['daf','ewrq','cdac'] elif age >= 60 and age < 70: return {'albert':'奋斗吧','sad':'asd'} else: return (1232,'dsfaewdfasdfewaf') status = stu_register('albert',18,'python','zino') print(status) status = stu_register('albert',24,'python','zino') print(status) status = stu_register('albert',50,'python','zino') print(status) status = stu_register('albert',66,'python','zino') print(status) status = stu_register('albert',88,'python','zino') print(status)
执行结果:
全局变量和局部变量:
局部变量可以修改全局变量,前提全局变量是可以修改的,eg:列表,字典等。像不能修改的字符串是不可以的。但是引用 global是可以对其修改的
names = ['albert','tom','bob'] def func1(): global names names = {'a':1,'b':2} # del names[2] print(names) func1() print(names)
函数嵌套:
global已经把19读下来了,age=73,是执行完func2后改变全局变量age:
作用域:
age = 18 def func1(): age = 99 def func2(): print(age) return func2 val = func1() val()
函数名可以当作返回值
匿名函数:
# 匿名函数 def func1(x,y): if x > y: return x / y else: return x * y func2 = lambda x,y:x / y if x > y else x * y #声明一个匿名函数 print(func1(16,8)) print(func2(16,8))