文章目录
一、编程通过键盘输入每一位运动员
1、程序简介
- 体操比赛成绩统计。多名运动员,多个评委打分,去掉一个最高分和去掉一个最低分,对其余分数求平均分作为一个运动员成绩。
- 编程通过键盘输入每位运动员编号和每个评委的成绩,求出运动员的最终成绩,并将运动员编号和最终成绩保存在一个字典中。
- 形如{编号1:最终成绩1,学号2:最终成绩2…,并将结果输出。
2、程序代码
# -*- coding: utf-8 -*-
"""
Created on Tue Nov 30 14:45:59 2021
Function: 编程通过键盘输入每一位运动员
@author: 小梁aixj
"""
t=int(input('请输入评委人数(不少于三人):'))
s=int(input('请输入学生人数(不少于一人):'))
stus=[]
for i in range(s):
stu={'score':[]}
stu.update({'sn':str(input('----\n请输入学生学号:'))})
for j in range(t):
stu['score'].append(input('请输入评委'+str(j+1)+'的评分:'))
stu['score'].sort()
stu.update({'min':stu['score'].pop(0)})
stu.update({'max':stu['score'].pop()})
stu.update({'avg':eval('+'.join(stu['score']))/len(stu['score'])})
stus.append(stu)
r={n['sn']:n['avg'] for n in stus}
print(r)
3、运行结果,如下图
二、求列表(整数列表)的平衡点
1、程序简介
对于一个整数列表,如果有一个切分位置使其前面的元素之和等于后面的元素之和,就称该位置是平衡点
请编写程序求列表(整数列表)的平衡点,不存在时给出提示。
思路:
-
1 确定一个位置
-
2 求在这个位置前面的元素之和,与在这个位置后面的元素之和,做比较,判断是否相等
-
2.1 怎么求前面元素之和:
假设这个位置是[i],那么前面元素就是[0]~[i-1], 后面元素为[i+1]~[len(list)-1] -
进行求和:累加求和
-
2.2判断是否相等:相等,给出这个平衡位置;不相等,输出“该列表不存在平衡点”
2、程序代码
# -*- coding: utf-8 -*-
"""
Created on Tue Nov 30 14:47:20 2021
Function: 求列表(整数列表)的平衡点
@author: 小梁aixj
"""
a=input('请输入一个整数列表:').split(' ')
flag=0
for i in range(0, len(a)-1):
s1=0
for m in range(0,i):
s1 += int(a[m])
s2=0
for n in range(i+1, len(a)):
s2+=int(a[n])
if s1==s2:
print('该整数列表存在平衡点,且平衡点为:',a[i])
flag=1
break
if flag==0:
print('该整数列表不存在平衡点')
3、运行结果,如下图
注:输入整数列表时应使用空格相隔。
三、检查密码强度
1、程序简介
定义一个名为“isStrongPassword”的函数,该函数将字符串作为参数。功能然后将检查所提供的字符串是否满足以下条件,以检查是否为强密码:
- 1.必须至少包含1个大写和小写字母的组合
- 2.必须至少包含3位数字
- 3.必须至少包含3个特殊字符(包括空格)
- 4.密码长度必须至少12个字符
- 该函数将返回一个布尔值,即如果满足所有条件则返回True或返回False 确保使用可能返回False值的每个可能的输入来测试函数也一样
2、程序代码
# -*- coding: utf-8 -*-
"""
Created on Tue Nov 30 14:48:02 2021
Function: 检查密码强度
@author: 小梁aixj
"""
def isStrongPassword(pwd):
chars = list(pwd)
upper = [c for c in chars if 'A'<=c and c<='Z']
lower = [c for c in chars if 'a'<=c and c<='z']
digit = [c for c in chars if '0'<=c and c<='9']
symbol = [c for c in chars if not ('A'<=c and c<='Z' or 'a'<=c and c<='z' or '0'<=c and c<='9')]
strong = len(upper)>=1 and len(lower)>=1 and len(digit)>=3 and len(symbol)>=3 and len(pwd)>=12
return strong
print(isStrongPassword('Str0n9P@$w0rd$'))#1
print(isStrongPassword('StrongPassword'))#2
print(isStrongPassword('Stron9P@$$0rd'))#3
print(isStrongPassword('Str0n9Pass0rd'))#4
print(isStrongPassword('Str0n9P@$$w0rd'))#5
print(isStrongPassword('Str0n9P@$$'))#6
print(isStrongPassword('12345678'))#7
print(isStrongPassword('~!@#$%^&*()_+'))#8
print(isStrongPassword('STRONGPASSWORD'))#9