Python随堂测验
本文最后更新于 498 天前,其中的信息可能已经有所发展或是发生改变。

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编程基础及应用实验教程》(高等教育出版社)

[平面坐标系象限图]

请编程实现下述功能:

  1. 使用代码x,y = eval(input())从键盘读入不为零的两个坐标值(浮点数);注意两个坐标值应使用英文逗号分隔;
  2. 结合上图,判定点(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类

设计一个句子Sentence类。要求构造方法接受一个字符串参数。创建一个实例变量,用于将句子存储为字符串。假设句子中没有标点符号,每个单词之间有空格。编写以下方法:(1)getSectence:将句子以字符串的形式返回(2)getWords:返回句子中包含的单词列表(3)getLength:返回句子中包含的字符数(4)getNumWords:返回句子中包含的单词数(5)setSentence:将句子中的所有字母更改为大写字母(6)

__str__():返回句子的描述信息字符串。返回两行信息,第一行为句子及字符数,第二行为单词列表和单词数。 例如:假设输入的句子为是Starting Out with Python,则返回的字符串为: 输入的字符串是:Starting Out with Python,共有24个字符。 其中有单词:['Starting', 'Out', 'with', 'Python'],共有4个单词。

编写一个测试程序,输入一个句子,然后输出两行句子信息,之后将句子更改为大写字母,再输出两行句子信息

输入格式:

输入一个英文句子,单词间用空格隔开,句子中不包括标点符号

输出格式:

输出句子的描述信息,共4行第一行输出句子及字符数第二行输出句子中的单词列表和单词数第三行输出转换为大写的句子及字符数第三行输出大写的单词列表和单词数

输入样例:

在这里给出一组输入。例如:

Starting Out with Python输出样例:

在这里给出相应的输出。例如:

输入的字符串是:Starting Out with Python,共有24个字符。 其中有单词:['Starting', 'Out', 'with', 'Python'],共有4个单词。 输入的字符串是:STARTING OUT WITH PYTHON,共有24个字符。 其中有单词:['STARTING', 'OUT', 'WITH', 'PYTHON'],共有4个单词。

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
#没来得及写
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇