任务描述
本关任务:编写一个欧拉筛法求素数的小程序。
n=eval(input())
#代码开始
s = list(range(2,n+1))
for i in s:
for j in s:
if j%i==0 and j!=i:
s.remove(j)
#代码结束
print(s)
任务描述
本关任务:编写一个程序,将文档《中学诗词》中作者的姓名加入一个列表,按作者的姓名排序。显示列表中作者的序号和姓名。
如图所示,标题行显示诗名(或词名空格词牌名)、空格、作者
注意:其他行也可能包含空格,但标题行不包含逗号、句号、感叹号
def extract_authors(file_path):
with open(file_path, 'r', encoding='utf-8') as file:
authors = set() # 使用集合来存储作者名,自动去重
for line in file:
line = line.strip()
if not line: # 跳过空行
continue
# 检查行是否包含诗句或其他非诗人名字的内容
if any(char in line for char in ['。', ',', '!', '?']):
continue
# 分割行,提取作者名
parts = line.split(' ')
if len(parts) >= 2: # 至少有两个部分(标题和作者)
author = parts[-1].strip() # 假设作者名是最后一部分
if 2 <= len(author) <= 10: # 只保留长度合理的作者名
authors.add(author)
return sorted(list(authors))
def main():
file_path = "sy8//中学诗词.txt"
authors = extract_authors(file_path)
for i, author in enumerate(authors, start=1):
print(f"{i} {author}")
if __name__ == "__main__":
main()
任务描述
本关任务:编写一个使用列表求解约瑟夫环的问题
约瑟夫问题可以这样描述:n个人按1,2,3,… ,n编号,并顺序围坐一圈。开始按照1,2,3,… ,m 报数,凡报到 m 的出列。直到所有人出列为止。下图模拟n为8m为4的出列顺序
n=eval(input("输入人数"))
m=eval(input("输入序号"))
#代码开始
l,k,x=[],[],0
for i in range (1,n+1):
l.append(i)
while len(k)
任务描述
本关任务:
对于一个不包含重复数字的有序列表
[1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 18, 19, 20, 21, 29, 34, 54, 65]
从键盘输入n,查找是否有两数之和等于n,若有则返回两数的下标(找到一组即可且要求其中的一个数尽量小),若所有数均不满足条件则输出“not found”。
lst1=[1,4,5,6,7,8,9,10,11,12,13,15,18,19,20,21,29,34,54,65]
n=eval(input("请输入n"))
#代码开始
a , x=-1,0
for i in lst1:
a+=1
b=-1
for j in lst1:
b+=1
if i+j==n:
print(a,b)
x=1
if x==1:
break
if x==0:
print('not found')
#代码结束
任务描述
用户列表和密码列表如下所示
yhlb=["mary","harry","mike","tom","rose"]
mmlb=["123456","888888","999999","765432","678901"]
补充程序,实现对用户和密码列表进行增加、删除、查询。
程序显示菜单如下
请选择
1 用户增加
2 用户删除
3 用户查询
4 退出系统
yhlb=["mary","harry","mike","tom","rose"]
mmlb=["123456","888888","999999","765432","678901"]
print("""请选择
1 用户增加
2 用户删除
3 用户查询
4 查看数据,退出系统""")
#代码开始
while True:
x=eval(input('请输入'))
if x==1:
n=input('请输入用户名')
s=input('请输入密码')
if n in yhlb:
print('用户已经存在 无法增加')
else:
yhlb.append(n)
mmlb.append(s)
print('用户已增加')
elif x==2:
n=input('请输入用户名')
if n not in yhlb:
print('用户不存在 无法删除')
else:
yhlb.remove(n)
k=-1
for i in yhlb:
k+=1
if i==n:
mmlb.remove(mmlb[k])
print('用户已删除')
elif x==3:
n=input('请输入用户名')
if n not in yhlb:
print('用户不存在')
else:
k = -1
for i in yhlb:
k+=1
if i==n:
print('密码'+str(mmlb[k]))
else:
break
#代码结束
for i in range(0,len(yhlb)):
print("用户名{:6}密码{:6}".format(yhlb[i],mmlb[i]))