文章目录[隐藏]
7-1 jmu-python-随机生成密码
新建一个字符列表,这个列表中的内容从前到后依次包含小写字母、大写字母、数字。 形如['a',...,'z','A',...,'Z','0',...'9']
建议:使用代码生成该字符列表。
分别输入随机数的种子x
(整型),随机生成的密码个数n,每个密码长度m。
每个密码包含的m个字符是从上述字符列表中随机抽取 。
注意:本题不要用sample
函数,否则答案错误。
输入格式:
种子x (注意:需将x转换为整数型再进行设置)
密码个数n
每个密码的长度m
输出格式:
n行密码、每行m位。
输入样例:
1
10
8
输出样例:
iK2ZWeqh
FWCEPyYn
gFb51yBM
WXaSCrUZ
oL8g5ubb
bPIa84yR
nBUbHoWC
8FJowoRo
WD8s7bA1
6J7PglOU
import random
lowercaseLetters = [chr(i) for i in range(ord('a'), ord('z') + 1)]
capitalLetters = [chr(i) for i in range(ord('A'), ord('Z') + 1)]
numbers = [i for i in range(10)]
x = int(input())#随机数的种子x
n = int(input())#随机生成的密码个数
m = int(input())#每个密码长度
def random_password(m):
password = []
for j in range(m):
password.append(random.choice(lowercaseLetters + capitalLetters + numbers))
out = ""
for i in password:
out = f"{out}{i}"
print(out)
random.seed(x)
for i in range(n):
random_password(m)
7-2 jmu-python-字符串异常处理
输入一行字符串及下标,能取出相应字符。程序能对不合法数据做相应异常处理。
输入格式:
- 行1:输入一字符串
- 行2:输入字符下标
输出格式:
- 下标非数值异常,输出
下标要整数
- 下标越界,输出
下标越界
- 数据正确,输出下标对应的字符
输入样例:
python
1
输出样例:
y
输入样例:
python
a
输出样例:
下标要整数
输入样例:
python 10
输出样例:
下标越界
strA = input()
subscript = input()
try:
subscript = int(subscript)
except ValueError:
print("下标要整数")
exit()
try:
print(strA[subscript])
except IndexError:
print("下标越界")
exit()
7-3 鸡兔同笼(高教社,《Python编程基础及应用》习题3-7)
鸡兔同笼问题,从键盘读取脚数,头数,输出鸡数和兔数。
输入格式:
脚数
头数
输出格式:
鸡数
兔数
输入样例:
在这里给出一组输入。例如:
94
35
输出样例:
23
12
footNum = int(input())
headNum = int(input())
footNum,headNum = headNum ,footNum
rabbits = headNum/2 - footNum #兔子
chiken = footNum - rabbits
print(int(chiken))
print(int(rabbits))
7-4 统计输入字符串中的单词个数及单词的平均长度(高教社,《Python编程基础及应用》习题7-7)
编写一个程序,接受用户输入的一行英文句子(假设该句子仅由英文单词及空格构成,不包括逗号等符号),统计并输出该行句子包含的单词个数及单词的平均长度。
输入格式:
单词1 单词2 .... 单词n
输出格式:
单词个数,单词平均长度(保留两位小数)
输入样例:
aaa bbb ccccccccccc
输出样例:
3,5.67
strA = input()
listA = strA.split()
ave = sum(len(i) for i in listA) / len(listA)
print(f"{len(listA)},{ave:.2f}")
7-5 象限判定 - 实验6 条件与分支 -《Python编程基础及应用实验教程》(高等教育出版社)
[平面坐标系象限图]
请编程实现下述功能:
- 使用代码x,y = eval(input())从键盘读入不为零的两个坐标值(浮点数);注意两个坐标值应使用英文逗号分隔;
- 结合上图,判定点(x,y)所在的象限。
说明:程序约定x和y值不为0。
输入格式:
x,y
输出格式:
第1象限 或 第2象限 或 第3象限 或 第4象限
输入样例:
15.2,-11.3
输出样例:
第4象限
解题思路: 请参考《Python编程基础及应用实验教程》。
该书是高等教育出版社《Python编程基础及应用》教材的配套实验指导书。
x,y = eval(input())
if x > 0 and y > 0:
print("第1象限")
elif x < 0 and y > 0:
print("第2象限")
elif x < 0 and y < 0:
print("第3象限")
elif x > 0 and y < 0:
print("第4象限")
7-6 设计一个句子Sentence类
class Sentence:
def __init__(self, sentence):
self.sentence = sentence
def getSectence(self):
return self.sentence
def getWords(self):
return self.sentence.split()
def getLength(self):
return len(self.sentence)
def getNumWords(self):
return len(self.sentence.split())
def setSentence(self):
new = ""
for i in self.sentence:
if ord(i) >= ord("a") and ord(i) <= ord("z"):
new = f"{new}{chr(ord(i) - 32)}"
else:
new = f"{new}{i}"
self.sentence = new
return self.sentence
def __str__(self):
return f"输入的字符串是:{self.sentence},共有{self.getLength()}个字符。\n其中有单词:{self.getWords()},共有{self.getNumWords()}个单词。"
strObj = Sentence(input())
print(strObj)
strObj.setSentence()
print(strObj)
7-7 Python字典-学生成绩统计
有一个班若干个学生考试的成绩表,由学号和成绩组成,将其组成一个字典如: {'1001':85,'1002':70,'1003':100,'1005':60,'1008':100}。
输出内容:
1. 按成绩从高到低输出成绩表字典;
2. 计算全班的平均分(精确到小数后两位);
3. 输出最高分的同学:学号:成绩。
输入格式:
按字典格式输入
输出格式:
输出成绩表字典、输出平均分、输出最高分。
输入样例:
{'1001':85,'1002':70,'1003':100,'1005':60,'1008':100}
输出样例:
{'1003': 100, '1008': 100, '1001': 85, '1002': 70, '1005': 60}
平均分=83.00
最高分:
1003:100
1008:100
dicA = dict(eval(input()))
dicB = sorted(dicA.items(), key=lambda x: x[1], reverse=True)
dictB = dict(dicB)
print(dictB)
print(f"平均分={sum(dicA.values()) / len(dicA):.2f}")
print("最高分:")
for i in dicB:
if i[1] == dicB[0][1]:
print(f"{i[0]}:{i[1]}")
7-8 python-评委评分
在某个演讲比赛中,若干评委要给选手评分,评分规则是去掉一个最高分和一个最低分,求出剩下分数的平均分。
输入格式:
若干个评委的打分,分数之间有一个空格,打分是可以带有小数部分的。
输出格式:
最高分、最低分、平均分均保留两位小数,具体见输出样例。
输入样例:
在这里给出一组输入。例如:
10 9 8 7.9 9 9.5
输出样例:
在这里给出相应的输出。例如:
最高分:10.00
最低分:7.90
平均分:8.88
listA = input().split()
listA = [float(i) for i in listA]
print("最高分:{:.2f}".format(max(listA)))
print("最低分:{:.2f}".format(min(listA)))
print("平均分:{:.2f}".format((sum(listA) - max(listA) - min(listA)) / (len(listA)-2)))
7-9 jmu-python-班级人员信息统计
输入a,b班的名单,并进行如下统计。
输入格式:
第1行::a班名单,一串字符串,每个字符代表一个学生,无空格,可能有重复字符。
第2行::b班名单,一串字符串,每个学生名称以1个或多个空格分隔,可能有重复学生。
第3行::参加acm竞赛的学生,一串字符串,每个学生名称以1个或多个空格分隔。
第4行:参加英语竞赛的学生,一串字符串,每个学生名称以1个或多个空格分隔。
第5行:转学的人(只有1个人)。
输出格式
特别注意:输出人员名单的时候需调用sorted函数,如集合为x,则print(sorted(x))
输出两个班级的所有人员数量
输出两个班级中既没有参加ACM,也没有参加English的名单和数量
输出所有参加竞赛的人员的名单和数量
输出既参加了ACM,又参加了英语竞赛的所有人员及数量
输出参加了ACM,未参加英语竞赛的所有人员名单
输出参加英语竞赛,未参加ACM的所有人员名单
输出参加只参加ACM或只参加英语竞赛的人员名单
最后一行:一个同学要转学,首先需要判断该学生在哪个班级,然后更新该班级名单,并输出。如果没有在任何一班级,什么也不做。
输入样例:
abcdefghijab
1 2 3 4 5 6 7 8 9 10
1 2 3 a b c
1 5 10 a d e f
a
输出样例:
Total: 20
Not in race: ['4', '6', '7', '8', '9', 'g', 'h', 'i', 'j'], num: 9
All racers: ['1', '10', '2', '3', '5', 'a', 'b', 'c', 'd', 'e', 'f'], num: 11
ACM + English: ['1', 'a'], num: 2
Only ACM: ['2', '3', 'b', 'c']
Only English: ['10', '5', 'd', 'e', 'f']
ACM Or English: ['10', '2', '3', '5', 'b', 'c', 'd', 'e', 'f']
['b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
#没来得及写
7-10 list 存储动物对象
本题要求在列表中存储动物,包括鸟和狗,请写代码完成下列内容:
1.定义抽象类Animal,包含私有属性name和age,为其完成setter、getter,带参构造方法,以及eclipse生成ToString方法
2.定义子类Bird继承Animal,完成带参构造方法,重写Tostring方法。
3.定义子类Dog继承Animal,添加属性leg,为其完成setter,getter,完成带参构造方法,重写ToString方法
4.在Main类的main方法中,定义列表list,在列表中规定只能放Dog和Bird,完成下列操作:
1.输入整数n,表示向列表中加入的对象的个数,然后向list中加入n个Animal
2.在加入每一个对象之前,若输入整数1,表示加入Dog对象,输入其他整数,加入Bird对象,然后通过键盘输入相关属性,创建对应对象,加入list中。
3.一次输出所有的list对象
4.键盘输入一个name,然后判断在列表中是否存在对象属性name与此相同,如果相同,输出其对象的类名,并输出对象的信息,
如果不存在对象name与键盘输入相同,显示“no this one"
输入格式:
请在这里写输入格式。例如:输入在一行中给出2个绝对值不超过1000的整数A和B。
输出格式:
请在这里描述输出格式。例如:对每一组输入,在一行中输出A+B的值。
输入样例:
在这里给出一组输入。例如:
4
1
tom 3 3
2
bir 2
1
may 3 5
2
baby 3
may
3
1
tom 3 2
2
may 4
1
jerry 3 1
tina
输出样例:
在这里给出相应的输出。例如:
[Dog[leg=3, name=tom, age=3], Bird[name=bir, age=2], Dog[leg=5, name=may, age=3], Bird[name=baby, age=3]]
Dog
Dog[leg=5, name=may, age=3]
[Dog[leg=2, name=tom, age=3], Bird[name=may, age=4], Dog[leg=1, name=jerry, age=3]]
no this one
#没来得及写