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)