python笔记之函数

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))

原文地址:https://www.cnblogs.com/AlbertY/p/8786413.html