程序设计基础实验破解(7)

一.前言

我上大一时接触到程序设计基础这门课,这门课有时会有实验,我便常常摸鱼,利用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)

  • 30
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值