使用函数优化记数过程
#使用函数优化记数过程
str1="itheima"
str2="itcast"
str3="python"
cout=0
def my_len(data):
count=0
for i in data:
count += 1
print(f"字符串{data}的长度是{count}")
my_len(str1)
my_len(str2)
my_len(str3)
函数的定义
def say_hi():
print("hello world")
say_hi()
函数的传入参数使用方式
def add(a,b):#函数的传入参数使用方式
c=a+b
print(f"{a}+{b}={c}")
add(2,3)
add(5,6)
函数应用举例
def check(a):#函数应用举例
print(f"热烈欢迎,您的邀请码是:{a}")
if a>10:
print(f"欢迎,你的座位是:{a}")
else:
print("您走错了,请出门右转")
check(10)
def add(a,b):#函数返回值用法
result=a+b
return result
r=add(3,5)
print(r)
def age(age):
if age>18:
return "SUCCRSS"
else:
return None
result=age(16)
if not result:
# 进入if表示result是None值 也就是false
print("未成年,不可进入")
else:
print("欢迎")
对函数进行注释(函数说明文档)
#对函数进行注释(函数说明文档)
def add(a,b):
"""
add函数可以接收2个参数,进行2数相加
:param a: 形参a表示相加的其中一个数字
:param b: 形参b表示相加的另一个数字
:return: 返回值是2数相加的结果
"""
result=a+b
print(f"两数之和为:{result}")
return result
add(3,5)
函数的嵌套调用
def f_a():
print("2")
def f_b():
print("1")
f_a()
print("3")
f_b()
num=200
print(num)
def abc():
global num #使用global声明全局变量
num=100
print(num)
abc()
print(num)
(输出为:200 100 100)
例题
#定义全局变量money和name
money=50000
name=None
#要求客户输入姓名
name=str(input("请输入您的姓名"))
#定义查询函数
def query(show_header):
if show_header:
print("-----查询余额-----")
print(f"{name}您好,您的余额是{money}元")
#定义存款函数
def saving(num):
print("-----存款-----")
global money #money在函数内部定义为全局变量
money+=num
print(f"{name}您好,您存款{money}成功")
query(False) #调用query函数
#定义取款函数
def get_money(num):
print("-----取款-----")
global money
money-=num
print(f"{name}您好,您取款{money}成功")
query(False)
#定义主菜单函数
def main():
print("-----主菜单-----")
print(f"{name},您好,欢迎来到本银行ATM,请选择操作:")
print("查询余额\t[输入1]")
print("存款\t\t[输入2]")
print("取款\t\t[输入3]")
print("退出\t\t[输入4]")
return input("请输入您的选择;")
#设置无限循环,确保程序不退出
while True:
keyboard_input=main()
if keyboard_input=="1":
query(True)
continue #通过continue继续下一次循环,一进来就是回到了主菜单
elif keyboard_input=="2":
num=int(input("请输入你想要存入的金额:"))
saving(num)
continue
elif keyboard_input=="3":
num = int(input("请输入你想要取出的金额:"))
get_money(num)
continue
else:
print("谢谢使用,程序退出啦")
break
进阶
函数多返回值
def return_num():
return 1,2
x,y=return_num()
print(x)
print(y)
多种参数的使用
位置参数
关键字参数
可混用:
def user_info(name,age,gender):
print(f'your name is {name},age is {age},gender is {gender}')
user_info('TOM',20,'male')
user_info(age=30,gender="female",name="jack")
user_info("jason",gender="male",age=18)
运行结果:
缺省参数
def user_info(name,age,gender='male'):
print(f'your name is {name},age is {age},gender is {gender}')
user_info('TOM',20,'male')
user_info(age=30,name="jack")
user_info("jason",gender="female",age=18)
默认的参数必须写在最后面
def user_info(age,gender='male',name='rose'):
print(f'your name is {name},age is {age},gender is {gender}')
user_info(30,'female')
user_info(name="jason",age=18)
不定长参数
#位置传递
def user_info(*args):
print(f"the type is {type(args)},else is {args}")
user_info('TOM')
user_info('TOM',18)
#关键词传递
def user_inf(**kwargs):
print(f"the type is {type(kwargs)},else is {kwargs}")
user_inf(name='JACK',age=20,id=110)