一、完美素数
输入输出示例:
输入区间起点值与终点值
6
30
输出区间内幸运素数
7
23
29
def is_prime(num):#判断是否是素数
if num < 2:
return False
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
return False
return True
def lucky_prime(start, end):#判断是否是完美素数(注意2个参数)
lucky_nums = []
for num in range(start, end + 1):
if not is_prime(num):
continue
str_num = str(num)
is_lucky = True
while len(str_num) > 1:
str_num = str_num[:-1]
if not is_prime(int(str_num)):
is_lucky = False
break
if is_lucky:
lucky_nums.append(num)
return lucky_nums
start = int(input())
end = int(input())
result = lucky_prime(start, end)
for num in result:
print(num)
二、用字典输出成绩、考试人数、科目
输入一个字典,字典中存放了三门课程参加考试的学生的分数,
要求将每门课程的平均分添加到分数列表的最后并按样例输出结果,平均分使用round函数保留一位小数。
【提示:输入字典使用d=eval(input())】
输入输出样例如下:
输入:
{'语文':[85,89,76,88],'数学':[88,92,96],'英语':[98,90,95,99,92]}
输出:
语文科目参加考试人数为4均分为84.5
数学科目参加考试人数为3均分为92.0
英语科目参加考试人数为5均分为94.8
{'语文': [85, 89, 76, 88, 84.5], '数学': [88, 92, 96, 92.0], '英语': [98, 90, 95, 99, 92, 94.8]}
d=eval(input())
dic={}
for k,v in d.items(): #用items遍历字典
s=0
l=len(v)
for i in v:
s=s+i
avg=round(s/l,1)
print("{}科目参加考试人数为{}均分为{}".format(k,l,avg))
v.append(avg)
dic[k]=v
print(dic)
三、改变列表,计算方差
ls=eval(input())
m=eval(input())
for i in range(0,len(ls)):
if ls[i]<m:
ls[i]=3*ls[i]
elif ls[i]>m:
ls[i]=2*ls[i]
print(ls)
avg=sum(ls)/len(ls)
var1=0
for i in ls:
var1+=(i-avg)**2
var=1/(len(ls)-1)*var1
print("{:.2f}".format(var))
四、计算天数
编写一程序,输入年月日,输出这一天是该年的第几天。
输入的年月日格式为:2023-02-09,其中年份为4字符,月份和日期均为2字符。
输入输出样例1:
输入:
2023-02-01
输出
32
输入输出样例2:
输入:
2020-03-01
输出
61
a=input()
ls=a.split('-')
y=int(ls[0])
m=int(ls[1])
d=int(ls[2])
days=[31,28,31,30,31,30,31,31,30,31,30,31]
if y%4==0 and y%100!=0 or y%400==0: #判断是否是闰年,推出2月的天数
days[1]=29
count=0
for i in range(0,int(m)-1):
count+=days[i]
result=int(d)+count
print(result)