python系统学习:第三周之函数

# 函数:如果某个程序中部分代码重复使用率较高,可以将其封装起来,用到的时候就可以去调用这个包,这就叫函数
# ----------------------第一部分-------------------------
# 定义
def sayhi():
print("hello word!")


# 调用
sayhi()


# ----------------------第二部分-------------------------
# 定义函数时的括号是用来传参数,参数的作用就是让函数调用适用性更加高
# 假设设立一个向用户问好的函数
def goodmorning(name): # 这个name就是我们传入的用户名字
print("你好,", name)


# 调用
goodmorning("牛屎虫")


# 调用多个参数
def sign(name, age, sex="男"):
print(name, age, sex)


# 调用
sign("牛屎虫", 25, "女")
sign("牛屎虫", 25)
# ----------------------第三部分-------------------------
# 在sign()函数中,参数是由分类的
# 定义函数时用到的name、age等属于形参,意为就是占位;调用时的"牛屎虫"等属于实参,意为实际参数
# 定义函数时,可以指定默认值,这里的sex="男",就是默认值
# ----------------------第四部分-------------------------
# 在sign()函数中,没有默认值的参数属于位置参数,就是调用函数时参数位置要对应;如果不想一一对应,就要用到关键参数
sign(age=16, name="牛屎虫")


# ----------------------第五部分-------------------------
# 为了同时给多个人发送问候信息,避免多次调用函数(一个人调一次),需要用到非固定参数
def say(info, *argv):
for name in argv:
print(info, name)


say("你好:", "lin", "wang", "hile") # *argv 这种写法传进去的是一个元组


# 第二种方式
def register(info, *argv, **kwargv): # *argv 这种写法传进去的是一个字典
print(info, argv, kwargv)


# 调用
d = {"wang0": "nan", "lily": "nv"}
register("hello", "wang", "lily", **d) # 注意调用方式
register("hello", "wang", "lily", lily="nv")


# ----------------------第六部分-------------------------
# 返回值:return 当函数执行完毕,若需要用到执行完毕后的结果,则要用ruturn返回想用到的结果,return意味着函数中止
def register2(info, name, age):
print(info, name, age)
if age > 22:
print("age is big")
return False # 定义返回结果
else:
print("hello")
return True # 定义返回结果


# 调用方法
ss = register2("hello", "wang", 11)
print(ss) # 打印调用方法后的输出,发现是符合条件的返回值,如果不设定return,会返回none
# ----------------------第七部分-------------------------
# 局部变量与全局变量
name = "牛屎虫" # 全局变量


def change_name():
name = "牛脚臭" # 局部变量
print(name)


change_name() # 方法内的name属于局部
print(name) # 方法内的重新命名,外部的并没有改变

猜你喜欢

转载自www.cnblogs.com/niushichong/p/10036760.html