1、编写函数,输入不确定个数的数字,返回所有数字的和与乘积:不定长位置参数*args用来接收不确定个数的参数
def sum_product(*args):
s=0
p=1
for i in args:
s+=i
p*=i
return s,p
s,p=sum_product(2,2,3)
print(s,p)
2、编写函数,可以输入多个正整数,只把其中的奇数筛选出来并以列表形式返回
#定义函数odd_filter,可变参数args
def odd_filter(*args):
#带返回的列表数据
result=[]
#遍历所有参数
for i in args:
#奇数判断
if i%2!=0:
#放入到结果列表中
result.append(i)
return result
#调用函数
print(odd_filter(1,3,5,4,2,10))
#程序输出[1,3,5]
3、求5的阶乘
def fact(n):
return fact_iter(n,1)
def fact_iter(num,product):
print("当前计算的是阶乘:",num)
if num==1:
return product
return fact_iter(num-1,num*product)
print(fact(5))
4、计算器函数,用户输入两数字和一个运算符(加减乘除),实现两数字的四则运算
写法①
#定义计算方法
def cal_func(x,y,op):
res=0
if op=="+":
res=x+y
elif op=="-":
res=x-y
elif op=="*":
res=x*y
elif op=="/":
res=x/y
else:
res="输入的运算符不正确!"
return res
#获取用户输入的内容
argx=int(input("请输入第一个数字:"))
argy=int(input("请输入第二个数字:"))
operator=input("请输入计算形式(+,-,*,/):")
#计算并显示结果
result=cal_func(argx,argy,operator)
print(result)
写法②:匿名函数实现,把函数当做数据管理,代码简洁,可维护性增强
def cal_func(x,y,op):
cal_func_list=[lambda x,y:x+y]
operators=['+','-','*','/']
cal_func_list=[lambda x,y:x+y,
lambda x,y:x-y,
lambda x,y:x*y,
lambda x,y:x/y]
#获取用户输入内容
argx=int(input("请输入第一个数字:"))
argy=int(input("请输入第二个数字:"))
operator=input("请输入计算的形式(+,-,*,/):")
index=operators.index(operator)
print(cal_func_list[index](argx,argy))
5、输入n为偶数时,调用函数求1/2+1/4+…+1/n的值;输入为奇数时,调用函数求1/1+1/3+…+1/n的值。
#定义偶数的函数,sum(1/2+1/4+...+1/n)
def peven(n):
s=0.0
for i in range(2,n+1,2):
s+=1.0/i
return s
#定义奇数的函数,sum(1/1+1/3+...+1/n)
def podd(n):
s=0.0
for i in range(1,n+1,2):
s+=1.0/i
return s
#判断输入的是奇数还是偶数,根据判断调用不同的函数
result=input("请输入一个整数:\n")
n=int(result)
#n如果为偶数调用偶数的函数,为奇数则调用奇数的函数
if n%2==0:
print(peven(n))
else:
print(podd(n))