一.前言
我上大一时接触到程序设计基础这门课,这门课有时会有实验,我便常常摸鱼,利用CSDN来做,
虽然有时搜不到,但每次搜到时我想:爽!!!
于是我也开始写,写下我们这个时期的答案与青春
二.实验与答案
1. 模拟用户登录过程,输入账号及密码,验证包括账号是否存在,账号密码是否匹配等情况。 账号不存在,输出提示信息“Wrong User”;账号密码不匹配,输出“Fail”;登录成功输出“Success”。
预设账号与密码对应如下:
"aaa" "123456"
"bbb" "888888"
"ccc" "333333"
【程序演示】
【程序提示】
先定义两个列表user_lst和pass_lst分别用以存放账户和密码,从键盘上输入账户和密码,当输入账户不在user中时,输出“Wrong User”,如果账户存在,则要考虑输入的密码是否与对应的账户匹配,如果匹配输出“Success”,否则输出“Fail”。两个列表定义如下:
user_lst = ["aaa", "bbb", "ccc"] # 用户名列表
pass_lst = ["123456", "888888", "333333"] # 密码列表,用户与对应密码的序号相同
在列表user_lst中计算元素“aaa“的索引的代码为:i=user_lst.index(“aaa”)
【程序代码】
user_lst = ["aaa", "bbb", "ccc"] # 用户名列表
pass_lst = ["123456", "888888", "333333"] # 密码列表,用户与对应密码的序号相同
user = input() # 输入用户名
password = input() # 输入密码
if user in user_lst: # 若用户名在用户列表中存在时,判断输入的密码是否存在和序号是否与用户序号相同
if password in pass_lst and pass_lst.index(password) == user_lst.index(user):
print("Success")
else: # 若用户名在用户列表中不存在,或密码序号与用户序号不同
print("Fail")
else: # 若用户名在用户列表中不存在时输出"Wrong User"
print("Wrong User")
2. 假设有字符串s=”语文:80,数学:82,英语:90,物理:85,化学:88,美术:80”,存放了某个学生各科的期末考试成绩。试编写程序,计算该学生所有科目的总分和平均分(保留一位小数)。
【提示】
- 可使用split()方法提取字符串s中每门课程的信息(包括课程名和分数)。关键看用什么符号分隔。
- 对提取的结果列表进行遍历,提取每门课程的分数,放在一个成绩列表中。
- 对成绩列表排序。排序后,找出最高成绩和最低成绩,然后再计算总分和平均分。
【程序演示】
【程序代码】
s="语文:80,数学:82,英语:90,物理:85,化学:88,美术:80"
lst_score=[] #存放成绩
ls=s.split(",") #分理出的列表
for x in ls:
score=int(x[3:5]) #直接切片[3:5]出成绩
lst_score.append(score)
lst_score.sort() #进行排序
print(f"最低成绩:{lst_score[0]}")
print(f"最高成绩:{lst_score[-1]}")
zf=sum(lst_score) #用sum函数求出总分
print("总 分:{}\n平均分:{:.1f}".format(zf,zf/len(lst_score)))
3、学校举办朗诵比赛,邀请了10位评委位每一名参赛选手的表现打分。假设列表lst_score=[9,10,8,9,10,7,6,8,7,8],存放了某一位参赛选手的所有评委评分。试编写程序,根据以下规则计算该参赛选手的最终得分;
(1)去掉一个最高分
(2)去掉一个最低分
(3)最终得分为剩下的8个分数的平均值
【提示】
- 使用sort()函数对列表进行升序或降序排列
- 使用pop()方法或del命令删除一个最高分
- 使用pop()方法或del命令删除一个最低分
- 使用内置的sum()函数计算列表剩余元素之和。
【程序代码】
lst_score=[9, 10, 8, 9, 10, 7, 6, 8, 7, 8]
lst_score.sort()
lst_score.pop()
lst_score.pop(0)
print("该选手的最终得分{}".format(sum(lst_score)/len(lst_score)))