大家好!欢迎收听你的月亮我的心!我是肖老师!好久不见!
目录
1.已知列表li_one=[1,2,1,2,3,5,4,3,5,7,4,7,8],删除列表中重复数据
2.已知列表li_num1=[5,5,2,7]和li_num2=[3,6], 将这两个列表合并为一个列表,并将合并后的列表中的元素按降序排列
3.学校招聘了8名新教师,学校有3个空闲办公室,编写程序实现将8名教师随机分配办公室的功能。如下图:
一、实验目的:
1.已知列表li_one=[1,2,1,2,3,5,4,3,5,7,4,7,8],删除列表中重复数据
2.已知列表li_num1=[5,5,2,7]和li_num2=[3,6], 将这两个列表合并为一个列表,并将合并后的列表中的元素按降序排列
3.学校招聘了8名新教师,学校有3个空闲办公室,编写程序实现将8名教师随机分配办公室的功能。如下图:
4.十大歌手评选(page64)
5.分类统计字符个数
编写程序,用户输入一个字符串,以回车结束,利用字典统计其中字母和数字出现的次数(回车符代表结束)。输入格式是一个以回车结束的字符串,例如输入abc1ab,输出{'a': 2, 'b': 2, 'c': 1, '1': 1}。
6.计票机制(page68)
7.完成斗地主发牌看牌操作(要求看牌时排序展示)
二、实验环境:
安装pycharm2023.3.4
安装适配的jdk
三、实验步骤:
1.已知列表li_one=[1,2,1,2,3,5,4,3,5,7,4,7,8],删除列表中重复数据
- 使用列表的set函数,删除重复数据
- 输出重新筛选后的列表
2.已知列表li_num1=[5,5,2,7]和li_num2=[3,6], 将这两个列表合并为一个列表,并将合并后的列表中的元素按降序排列
- 创一个新列表=两个列表相加
- Reverse这个新列表
- 输出结果
3.学校招聘了8名新教师,学校有3个空闲办公室,编写程序实现将8名教师随机分配办公室的功能。如下图:
- 先创建老师对象
- 再创建教室
- 随机分配需要调用random函数
- 将随机分配的老师加入教室列表
- 输出结果
4.十大歌手评选(page64)
- 使用列表接收评委的分数
- 减去一个最高分,减去一个最低分
- 总分除以8得到的就是选手的平均分
- 输出结果
- 分类统计字符个数
5.编写程序,用户输入一个字符串,以回车结束,利用字典统计其中字母和数字出现的次数(回车符代表结束)。输入格式是一个以回车结束的字符串,例如输入abc1ab,输出{'a': 2, 'b': 2, 'c': 1, '1': 1}。
- 创建一个空字典,用于存储字母和数字的出现次数
- 使用input函数获取用户输入的字符串,并将其保存到一个变量中
- 使用for循环遍历字符串中的每个字符
- 在循环中,使用isalpha()函数判断字符是否为字母,使用isdigit()函数判断字符是否为数字
- 如果字符是字母或数字,则在字典中对应的键的值加1。如果字典中不存在该键,则将该键添加到字典中,并将值初始化为1
- 循环结束后,输出最终的字典结果
6.计票机制(page68)
- 创建一个空字典,用来记录票数
- 输入候选人的名字
- 进行计票排序
- 输出结果
7.完成斗地主发牌看牌操作(要求看牌时排序展示)
- 副牌(52+2=54张)
- 有大小王,用提供的国王和皇后的符号表示大小王
- 54张牌发给3个玩家,每人17张牌,并有3张底牌。
- 输出3个玩家的牌,按照由小到大,黑红梅方的顺序。
- 输出3张底牌
- 输出每个玩家有几个炸弹(4张面值一样的牌,或者大小王在一起,为一个炸弹)
四、实验结果:
1.已知列表li_one=[1,2,1,2,3,5,4,3,5,7,4,7,8],删除列表中重复数据
#1.已知列表li_one=[1,2,1,2,3,5,4,3,5,7,4,7,8],删除列表中重复数据
# set()函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。
s = [1,2,1,2,3,5,4,3,5,7,4,7,8]
print(set(s))
2.已知列表li_num1=[5,5,2,7]和li_num2=[3,6], 将这两个列表合并为一个列表,并将合并后的列表中的元素按降序排列
# 2.已知列表li_num1=[5,5,2,7]和li_num2=[3,6], 将这两个列表合并为一个列表,并将合并后的列表中的元素按降序排列
li_num1=[5,5,2,7]
li_num2=[3,6]
li_num3 = li_num1 + li_num2
li_num4 =sorted(li_num3)
li_num4.reverse()
print(li_num4)
3.学校招聘了8名新教师,学校有3个空闲办公室,编写程序实现将8名教师随机分配办公室的功能。如下图:
# 学校招聘了8名新教师,学校有3个空闲办公室,编写程序实现将8名教师随机分配办公室的功能。
import random
teachers = ['孙老师','何老师','黄老师','肖老师','林老师','汤老师','陈老师','杨老师']
offices = [[], [], []]
for name in teachers:
num = random.randint(0, 2)
offices[num].append(name)
print(f"三个办公室的随机分配情况是;", offices)
i = 1
for office in offices:
print(f"办公室{i}的人数是{len(office)},老师分别是: ", end='')
for name in office:
print(name.center(5), end='\t')
i += 1
print()
print('_' * 100)
4.十大歌手评选(page64)
# 4.十大歌手评选(page64)
list = []
sum = 0
for i in range(1, 11):
score = (int(input(f"第{i}位评委评分:")))
list.append(score)
list.sort()
print('去掉最低分:', list[0])
print('去掉最高分:', list[-1])
list.remove(list[0])
list.remove(list[-1])
for j in list:
sum = sum + j
average = sum / 8
print('选手最终得分为:', average)
5.分类统计字符个数
编写程序,用户输入一个字符串,以回车结束,利用字典统计其中字母和数字出现的次数(回车符代表结束)。输入格式是一个以回车结束的字符串,例如输入abc1ab,输出{'a': 2, 'b': 2, 'c': 1, '1': 1}。
def count_chars_and_digits(string):
count_dict = {}
for char in string:
if char.isalpha() or char.isdigit():
count_dict[char] = count_dict.get(char, 0) + 1
return count_dict
input_string = input("请输入一个字符串:")
result = count_chars_and_digits(input_string)
print(result)
6.计票机制(page68)
#计票程序
dic = {}
s = input('请输入候选人的姓名(输入“#”结束):')
while s != '#':
dic[s] = dic.get(s, 0) + 1 # 统计出现的次数
s = input('请输入候选人的姓名(输入“#”结束):')
print('候选人及得票数如下:')
for key in dic.keys():
print(key, str(dic.get(key)) + '票')
7.完成斗地主发牌看牌操作(要求看牌时排序展示)
#斗地主发牌
import random
player_one = []
player_two = []
player_three = [] # 三个用户
under_card = [] # 底牌
card = [] # 新牌
for i in range(1, 14):
if i == 1:
i = "A"
elif i == 11:
i = "J"
elif i == 12:
i = "Q"
elif i == 13:
i = "K"
card.append(str(i) + "♠")
card.append(str(i) + "♣")
card.append(str(i) + "♦")
card.append(str(i) + "♥") # 生成牌
card.append("red_King")
card.append("black_King") # 添加大小王
# 洗牌,多洗几次
for i in range(3):
random.shuffle(card)
k = 0
while k < 51:
player_one.append(card[k])
player_two.append(card[k + 1])
player_three.append(card[k + 2])
k = k + 3
print("底牌是: ")
under_card = card[51: 54]
print(under_card)
# 把牌给地主!
dz = eval(input("请输入地主是几号玩家?"))
if dz == 1:
player_one = player_one + under_card
elif dz == 2:
player_two = player_two + under_card
elif dz == 3:
player_three = player_three + under_card
print("一号玩家的牌是:")
print(sorted(player_one))
print("二号玩家的牌是:")
print(sorted(player_two))
print("三号玩家的牌是:")
print(sorted(player_three))
自己截图放结果!!!!!
五、实验心得:
- 要迎难而上,不能有畏难心理
- 代码要多敲
- 敲到实在想不出也不要放弃,说不定离成功就差一步