打卡考勤
大明是学校Python编程社团的管理员,他用Python写了一个打卡考勤的程序,统计不同学生到信息技术教室编程打卡的次数以及未打卡的学生名单。这个程序可以一次输入已打卡学生姓名,用空格隔开,然后程序就会自动统计已打卡学生的名单和次数。如果有未打卡的学生,就输出未打卡的学生的名单,否则输出所有学生都已打卡。请你补全代码,实现上述功能。
# 创建一个空列表来存储打卡的学生姓名
checked_in_list = []
students_input = input("请输入已打卡学生姓名,用空格隔开: ")
# 将输入的学生姓名分割并添加到列表中
students = students_input.split()
checked_in_list. ①
# 将列表转换为集合
checked_in_students = ②
# 创建一个集合存储所有学生总名单
all_students = {"唐僧", "孙悟空", "猪八戒", "沙和尚"}
# 统计打卡的名单和次数
checked_count = {}
for student in checked_in_students:
checked_count[student]=checked_in_list.count(student)
# 输出打卡的学生名单和次数
print("打卡的学生名单和次数:")
for ③ in checked_count.items():
print(f"{student}: {count}次")
# 找出未打卡的学生名单
not_checked_students = list( ④ )
# 输出未打卡的学生名单
if not_checked_students:
print("未打卡的学生名单:")
for student in not_checked_students:
print(student)
else:
print("所有学生都已打卡。")————————示例运行结果——————————
请输入已打卡学生姓名,用空格隔开: 孙悟空 沙和尚 唐僧 唐僧 孙悟空 孙悟空
打卡的学生名单和次数:
唐僧: 2次
孙悟空: 3次
沙和尚: 1次
未打卡的学生名单:
猪八戒
相似题推荐
已知列表my_list = [10,[20,30],40] ,关于print(my_list[1][0])的描述,正确的是?( )
| A. 会引发索引错误 |
B. 表示获取列表my_list中索引为 1 的元素 |
| C. 输出结果为20 |
D. 输出结果为[20, 30] |
统计单词
统计英文文本中出现的不同单词个数:输入一段英文文本,要求单词和单词之间用1个空格或标点符号隔开,文末以标点符号结尾,在区分单词大小写的情况下,输出该文本中所出现的不同单词个数。Python程序运行界面如下所示:
请输入英文文本:Where there is life,there is hope.
出现的不同单词个数为: 5
实现上述功能的 Python 程序如下,请在划线处填入合适的代码。
text=input("请输入英文文本:")
lst=[]
s=""
def judge(st):
if ① :
return False
else:
return True
for i in range(len(text)):
②
if "a"<=c<="z" or "A"<=c<="Z":
③
else:
if judge(s):
lst.append(s)
s=""
print("出现的不同单词个数为:", ④ ) 将某次比赛最后得分用字典存储:dict={"第1名":50,"第2名":48,"第3名":47,"第4名":45,"第5名":44,"第6名":42 }。现需要查询第3名成绩,下列表达式正确的是?( )
| A. dict{2} |
B. dict[2] |
| C. dict{"第3名" } |
D. dict["第3名"] |
想要从列表 ['A', 'B', 'C', 'D'] 中随机选择一个元素,应该使用 random 模块的哪个函数?( )
| A. random.randint(0, 3) |
B. random.uniform(0, 3) |
| C. random.choice(['A', 'B', 'C', 'D']) |
D. random.shuffle(['A', 'B', 'C', 'D']) |
阅读积分分享
社团组织开展阅读积分分享活动。每位成员都准备了一些积分赠送其他成员,这些积分平均分给对应的受赠予的人。给出社团成员姓名以及对应的现有积分、准备赠送的积分、接收赠送的社团成员信息,请计算每位社团成员的当前积分。
输入格式:
第1行:人数n,2≤ n≤10
第2到n+1行:每行包含一个字符串,表示每个人的姓名;一个整数,表示现有的积分。互相之间用空格隔开。
第n+2到最后,描述某个人赠送积分的信息:
某个人的第(1)行是赠送积分的同学姓名。
某个人的第(2)行包含2个数字:分别表示准备赠送积分数值v(0<=v<=2000),接受赠予的同学人数x ,互相之间用空格隔开。
如果x是非零的, 在接下来x行,列出每位接受赠予的同学姓名,一个姓名一行。
输入样例:
3 alien 5267 mars 3098 moon 2761 mars 1500 2 alien moon alien 500 1 mars moon 0 0
输出格式:
输出共n行,
每行包含一个字符串表示社团成员的姓名,和现有的积分值。互相之间用空格隔开。
输出样例:
alien 5517 mars 2098 moon 3511
#代码如下:
n=int(input())
name=[];score= ①
for i in range(1,n+1):
a,b = input().split(' ',1)
score[a]=int(b)
for i in range(1,n+1):
s=input()
v,x= map(int, input().split())
if (x>0):
w= ②
score[s]-=w*x
for j in range(1,x+1):
t=input()
score[t]+= ③
for i in score.keys():
print(i, ④ ) 