python函数简单应用(1)

1、编写函数,接收任意多个实数,返回一个元组,其中第一个元素为所有参数的平均值,其他元素为所有参数中大于平均值的实数。

def avgm(*a):
    list_avgm=list(a)
    sum=0
    avg=0
    m=[]
    for i in list_avgm:
        i=int(i)
        sum=i+sum
    avg=float(sum/len(list_avgm))
    for i in list_avgm:
        i=int(i)
        if i>avg:
            m.append(i)
    print("{:.2f},{}".format(avg,m))
    
a=input("please enter some number:")
str1=a.split()
list1=[]
for i in str1:
    i=int(i)
    list1.append(i)
avgm(*list)

2、编写一个实现冒泡排序的函数,并用该函数对列表中的元素按升序排列。

def mp(*a):
    list_avgm=list(a)
    count=0
    a=list(a)
    print("冒泡的过程为:")
    for i in a:
        count+=1
        n=count-1
        print(*a)
        for j in range(n,len(a),1):
            if int(a[j])<int(a[n]):
                t=a[j]
                a[j]=a[n]
                a[n]=t
    print("冒泡排序后结果为:")
    print(*a)
    
a=input("please enter some number:")
str1=a.split()
list1=[]
for i in str1:
    i=int(i)
    list1.append(i)
mp(*list1)

3、输出如下数列在1000以内的值,以逗号分隔:k(0)=1,k(1)=2,k(n)=k(n-1)2+ k(n-2)2,其中k(n)表示该数列。

def fib(a,b):
    while(a<=1000):  
        k1=a
        k2=b
        kn=k1**2+k2**2
        print(k1,end=",")
        fib(k2,kn)
        break
fib(1,2)

4、编写一个接收年月日作为输入参数的函数,输出参数所指定的日期是一年中的第几天。例如每年的1月1日都是本年度的第1天, 2023年的3月1日是本年的第60天,而2024年(闰年)的3月1日则是本年的第61天。

def count(y,m,d):
    ##求是否为闰年
    count=0;
    for i in range(0,m,1):
        while(i==2):
            if y%4==0 and y%100!=0:
                count=count+29
                break
            elif y%400==0:
                count=count+29
                break
            else:
                count=count+28
                break
        if {i}<{1,3,5,7,8,10,12}:
            count=count+31
        if {i}<{4,6,9,11}:
            count=count+30
    count=count+d
    print(count)

a=input("please enter some number:")
str1=a.split()
list1=[]
for i in str1:
    i=int(i)
    list1.append(i)
count(*list1)

5、多项式求和问题。一个多项式可以用字典来存储其指数和系数,例如2x5-3x+1可以用字典{5:2,1:-3,0:1}来表示,其中的键表示项的指数,而值表示项的系数。请从键盘分别输入两个多项式的指数和系数,并存储在字典dt1和dt2中,然后编写一个名为add_poly的函数,返回对两个多项式求和后的多项式的指数和系数。

def add_poly(*kw1):
    kw1=list(kw1)
    a=kw1[0]
    b=kw1[1]
    print(a)
    print(b)
    for i in a:
        for j in b:
            if i==j:
                a[i]=a[i]+b[j]
    c={**b,**a}
    print(c)
dic={5:2,1:-3,0:1}
dic2={5:2,2:-3,0:2}
add_poly(dic,dic2)

6、分别使用map函数/lambda表达式和列表推导式两种方法把一个列表中的偶数变成它的平方,而奇数保持不变。

def map1(*args):
    list1=list(args)
    list3=list1.copy()
    list2=list(map(lambda x:x**2,list1))  
    count=0
    for i in list3:
        if i%2!=0:
            list2[count]=list3[count]
        count+=1
    print(list2)
    
def list_1(*args):
    list1=list(args)
    list3=list1.copy()
    count=0
    for i in list1:
        i=i**2
        list1[count]=i
        count+=1
    count=0
    for i in list3:
        if i%2!=0:
            list1[count]=list3[count]
        count+=1
    print(list1)
a=input("please enter some number:")
str1=a.split()
list1=[]
for i in str1:
    i=int(i)
    list1.append(i)
map1(*list1)
list_1(*list1)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值