Python简单示例-函数使用

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))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值