函数

# 函数=方法
# 函数可以提高代码复用性
# 函数必须调用后才能执行
# 函数中的变量都是局部变量
# 函数中遇到return就会结束

# 没有入参,没有返回值
def hello():
print("hello")
hello()

# 有多个入参,参数有默认值,有返回值
def welcome(name,country="中国"):
print("%s来自%s"%(name,country))
return name,country
welcome("郑佩","中国") # 调用函数
welcome("杜浩") # 调用函数,有默认值的参数可以不传
name,country=welcome("peipei") # name,country分别接收函数的两个返回值
print(name,country)
name=welcome("peipei") #name接收2个返回值,返回的值是一个元祖name=('peipei', '中国')
print(name)


# 必填参数和默认值参数
def welcome(name,country="中国"):
print("%s来自%s"%(name,country))
return name,country
n="郑佩"
c="中国"
welcome(n,c) # 方法一
welcome(name="郑佩",country="中国") # 方法二
welcome(country="中国",name="郑佩") # 同上
welcome("郑佩",country="美国") # 方法三:前面两种方法混用
# welcome(country="美国","郑佩") # 这种是错误写法


# 可选参数
# 当不知道要穿多少参数时用这种方式
def send_msg(*phones): # 参数名可以自己定义,但是一般用*args,args接收到的是一个元祖
print(phones) # phones输出后为元祖格式
send_msg() # 可不传参数
send_msg("1329668742") # 传一个参数
send_msg("13296618742","15549429401") # 传多个参数

# 关键字参数
def send_msg(**kwargs): # args接收到的是一个字典,一般用kwargs表示
print(kwargs)
send_msg()
send_msg(name='郑佩')
send_msg(name='郑佩',age='18')


# 调用函数的方法
def test():
  print("hello")
方法一:test()
方法二:a=test # 此时a的类型是<class 'function'>
    a()
例:有4个函数find_goods,add_goods,update_goods,del_goods,输入1,2,3,4分别调用不同的函数,实现如下:
def new_start():
  while True:
    func_dic={"1":find_goods,"2":add_goods,"3":update_goods,"4":del_goods,'5':quit}
    choice = input("请输入你的选择:1、 查询商品 2新增产品 3修改商品新 4、删除商品 5、退出").strip()
    if choice in func_dic:
      func_dic[choice]()
    else:
      print('输入错误')
new_start()
原文地址:https://www.cnblogs.com/zhengp/p/14766361.html