一.前言
我上大一时接触到程序设计基础这门课,这门课有时会有实验,我便常常摸鱼,利用CSDN来做,
虽然有时搜不到,但每次搜到时我想:爽!!!
于是我也开始写,写下我们这个时期的答案与青春
二.实验与答案
1、用户登陆系统时需要首先输入账号,如果账号不存在,输出“Wrong User”并结束程序;
账号正确时,再输入密码,验证账号密码与已给定的账号密码是否一致,如果一致,输出“Success”,否则输出“Fail”以及剩余尝试次数。
总尝试次数为3次,如果3次均输入错误,输出“Login Denied”。
给定账户及密码如下:
账号 密码
aaa 123456
bbb 888888
ccc 333333
【程序展示】
【程序代码】
pass_dic = {"aaa": "123456", "bbb": "888888", "ccc": "333333"} # 密码字典
user_name = input("请输入用户名:") # 输入用户名
if user_name in pass_dic: # 检查用户名在密码字典中是否存在,若存在:
for i in range(0, 3): # 限定只能输入3次
pwd = input("请输入密码:") # 输入密码
if pwd == pass_dic[user_name]: # 检查密码是否与密码字典中对应用户的密码相等,若相等:
print("Success") # 输出"Success"并提前终止循环
break
else: # 检查密码是否与密码字典中对应用户的密码相等,若不相等:
if i < 2:
print("Fail,{} Times Left".format(2 - i)) # 提醒剩余次数
else:
print("Login Denied") # 超过3次时输出"Login Denied"
else: # 检查用户名在密码字典中是否存在,若不存在:
print("Wrong User") # 输出"Wrong User"
2、输入一个非空字符串,去除重复的字符后,从小到大排序输出为一个新字符串。
【提示】可以把字符串转换为集合,去重后转换为列表,对列表进行排序,然后再将字符串进行连接(可以考虑join())。
【程序展示】
【程序代码】
s=input("请输入字符串:")
ls=list(set(s)) #转换为集合去重后再转换为列表
ls.sort() #进行默认排序
s=''.join(ls) #连接为字符串
print("去重排序后的字符串为:"+s)#列表中的字符串元素连接为一个字符串
3、一年一度的校园好声音进行了激烈的决赛环节,8位评委对入围的6名选手给出了最终的评分(见下表)。根据评分表,将每位选手的得分去掉一个最高分和一个最低分后求平均分,并按照平均分由高到低的顺序输出选手编号和最后得分。
编号 | 评分1 | 评分2 | 评分3 | 评分4 | 评分5 | 评分6 | 评分7 | 评分8 |
012 | 90 | 94 | 97 | 86 | 85 | 89 | 88 | 85 |
005 | 91 | 91 | 92 | 98 | 90 | 96 | 90 | 95 |
108 | 96 | 86 | 97 | 96 | 87 | 86 | 86 | 96 |
037 | 95 | 95 | 94 | 93 | 97 | 98 | 99 | 95 |
066 | 95 | 87 | 94 | 94 | 93 | 99 | 96 | 97 |
020 | 89 | 97 | 91 | 95 | 89 | 94 | 97 | 92 |
【提示】
(1)评分表存储,可以考虑字典存储,存储形式:dict={编号: (用元组存放各个评分)}
(2)操作字典时,可以考虑items()函数;
比如:for k,v in dict.items()
(3)求平均分时,考虑使用sum(),max(),min()函数。保留两位小数,考虑使用round()函数。
(4)排序时,考虑sort()函数对列表进行排序。
(5)此题可以考虑使用列表推导式
【程序展示】
【程序代码】
scores={"012":(90,94,97,86,85,89,88,85),
"005":(91,91,92,98,90,96,90,95),
"108":(96,86,97,96,87,86,86,96),
"037":(95,95,94,93,97,98,99,95),
"066":(95,87,94,94,93,99,96,97),
"020":(89,97,91,95,89,94,97,92)} #用字典存储
ls=[] #用以存放最后的选手序号和对应成绩
for k,v in scores.items():
s=round((sum(v)-max(v)-min(v))/(len(v)-2),2)#每个选手的最后成绩
ls.append((k,s))
print(ls) #输出测试
ls.sort(key=lambda x:x[1],reverse=True)#排序
for k,v in ls:
print(k,v)