当前位置: 首页 > news >正文

2024年北理工Python123第六章测验题整理

测验题一般不会太难,但是这次的题目,未免太多了,有的还很难

一、选择题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、编程题

1-10 列表和字符串

1-10都是和列表、字符串有关的题目,都很简单,我直接给出代码了

1.列表排序输出

import random
random.seed(int(input()))
lis = [random.randint(1,100) for _ in range(10)]lis1=[]
while len(lis) > 0:m = min(lis)lis.remove(m)lis1.append(m)
print(lis1)

2.列表排序

s=input()
lis=[]
for i in range(len(s)):lis.append(s[i])
lis.sort()
print(lis)

3.列表插入

ls = ['2', '3', '0', '1', '5']
s=input()
i=eval(input())
ls.insert(i,s)
ls.append(s)
print(ls)

4.列表删除

s='我有一所房子面朝大海春暖花开'
ls=[]
for i in s:ls.append(i)
m,n=input().split(",")
m=int(m)
n=int(n)
del ls[m:n]
print(ls)

5.列表的基本操作

a = list(input())
b = list(input())
print(a + b)
print(a * 3)
print(b[2],b[-1],sep = ' ')
print(a[1:4])
print(len(a),len(b),sep = ',')
print(min(a),max(b))

6.列表的合并与排序

list1 = list(map(int,input().split()))
list2 = list(map(int,input().split()))
lis=list1+list2
lis.sort(reverse=True)
print(lis)

7.列表元素的查找和添加

aList = input().split()
if 'and' in aList:ind = aList.index('and')aList.insert(ind,'Anna')
print(' '.join(aList))

8.字符串的去重操作

在这里插入图片描述
这题有些意思,贴出了题目

s=input()
new_s=""
for i in s:if i not in new_s:new_s+=i
lis=list(new_s)
lis.sort(key=new_s.index) #字符串s的顺序
lis.sort()
print(''.join(lis))

9.列表去重

name_lst = input().split(',')  # 输入的字符串节分为列表
name_no_duplicate = list(set(name_lst))  # 去除重复的元素
print(sorted(name_no_duplicate, key=name_lst.index))

10.删除列表中的重复元素

import random
# 输入m和n
m=int(input())
n=int(input())
# 以m作为随机数种子
random.seed(m)
# 随机生成n个0-9的整数
nums = [str(random.randint(0, 9)) for i in range(n)]
# 输出原始列表
print(nums)
# 去重排序
result = sorted(list(set(nums)))
# 输出去重排序后的列表
print(result)

11.集合添加元素

N=int(input())
result=set()
for i in range(N):result.add(input())
print(len(result))

这题。。也很简单,没必要贴的题目

12.列表嵌套字典的排序

在这里插入图片描述
这题就有点意思了
我的代码:

n = int(input())
ls = []
for i in range(n):a, b = input().split()dicts = {"name": a, "age": int(b)}ls.append(dicts)
list_age = sorted(ls, key=lambda x: x['age'])
list_name = sorted(ls, key=lambda x: x['name'])
print(list_age)
print(list_name)

参考代码:


n = int(input())
ls = []
for i in range(n):x = input().split()ls.append({"name":x[0],"age":int(x[1])})print(sorted(ls,key=lambda x: x['age']))
print(sorted(ls,key=lambda x: x['name']))

思路都相同,这个更精简

13.字典查询

这个也很简单

# 字典数据
phone_book = {"赵广辉": "13299887777","特朗普": "814666888","普京": "522888666","吴京": "13999887777"
}def search_phone(name):# 查询电话号码phone_number = phone_book.get(name)if phone_number:print(f"{name}:{phone_number}")else:print("数据不存在")# 用户输入姓名
input_name = input()
search_phone(input_name)

14.字典增加元素

也很简单,和1-10一样还是连续题目(乐)

dict1 = {'赵小明': '13299887777', '特明朗': '814666888', '普希京': '522888666', '吴小京': '13999887777'}
def search_phone(name):# 查询电话号码phone_number = dict1.get(name)if phone_number:print("您输入的姓名在通讯录中已存在")else:dict1[name]=phfor name in list(dict1.keys()):print(name+':'+dict1[name])# 用户输入姓名
name = input()
ph=input()
search_phone(name)

15.字典更新

又是连续

dict1={'赵广辉': '13299887777', '特朗普': '814666888', '普京': '522888666', '吴京': '13999887777'} 
updateName = input()
newvalue = input()
if (updateName in dict1):dict1[updateName] = newvalue
else:print('数据不存在')
for key in dict1:print(key + ':' + dict1.get(key))

16.双一流高校及所在省份统计

很无趣的题目
在这里插入图片描述

d = {"北京大学":"北京", "中国人民大学":"北京","清华大学":"北京",\
"北京航空航天大学":"北京","北京理工大学":"北京","中国农业大学":"北京",\
"北京师范大学":"北京","中央民族大学":"北京","南开大学":"天津",\
"天津大学":"天津","大连理工大学":"辽宁","吉林大学":"吉林",\
"哈尔滨工业大学":"黑龙江","复旦大学":"上海", "同济大学":"上海",\
"上海交通大学":"上海","华东师范大学":"上海", "南京大学":"江苏",\
"东南大学":"江苏","浙江大学":"浙江","中国科学技术大学":"安徽",\
"厦门大学":"福建","山东大学":"山东", "中国海洋大学":"山东",\
"武汉大学":"湖北","华中科技大学":"湖北", "中南大学":"湖南",\
"中山大学":"广东","华南理工大学":"广东", "四川大学":"四川",\
"电子科技大学":"四川","重庆大学":"重庆","西安交通大学":"陕西",\
"西北工业大学":"陕西","兰州大学":"甘肃", "国防科技大学":"湖南",\
"东北大学":"辽宁","郑州大学":"河南", "湖南大学":"湖南", "云南大学":"云南", \
"西北农林科技大学":"陕西", "新疆大学":"新疆"}ls = list(d.values())
dc = {}
for word in ls:dc[word] = dc.get(word, 0) + 1
for k in dc:print("{}:{}".format(k, dc[k]))

17.用字典来统计词频

无需多盐,味大

dict1 = eval(input())
for word in input().split():dict1[word] = dict1.get(word,0) + 1
print(dict1)

18.多用户登录(列表)

在这里插入图片描述

user_lst = ["aaa", "bbb", "ccc"]           # 用户名列表
pass_lst = ["123456", "888888", "333333"]  # 密码列表,用户与对应密码的序号相同
user = input()                             # 输入用户名
password = input()                         # 输入密码
if user in user_lst:     # 若用户名在用户列表中存在时,判断输入的密码是否存在和序号是否与用户序号相同if password in pass_lst and pass_lst.index(password) == user_lst.index(user):print("Success")else:             print("Fail")
else:        # 若用户名在用户列表中不存在print("Wrong User")

19.约瑟夫环问题

太激动了当时看到这个题目,因为非常经典,用C语言写过,写了很长的代码,转化成python不过12行
在这里插入图片描述

def Josephus(n,k):ls_n = list(range(1,n+1))while len(ls_n) > k-1:ls_n = ls_n[k:] + ls_n[:k-1]return ls_nn,k = map(int,input().split())
if k >= 2 and n >= k:print(Josephus(n,k))
else:print('Data Error!')

20.扑克牌游戏

很长的题目,但是捋清逻辑就很简单
在这里插入图片描述
在这里插入图片描述

import randomdef start():"""初始顺序,返回元素为字符串的列表"""cards_start = [i + j for i in desigh for j in num] + ghostreturn cards_startdef shuffle_cards(cards_start):"""打乱顺序,返回元素为字符串的列表"""random.shuffle(cards_start)return cards_startdef traver(cards_shuffle, m):"""发牌给m个人,返回二维列表"""person = []for i in range(m):person.append(cards_shuffle[i::m])return persondef sort_cards(person, m):"""对m个人手上的牌进行升序排序,花色按黑红梅方,牌面按点数,大王最大,小王第二大"""person_sort = []for i in range(m):if ('jokers' in person[i]) and ('JOKERS' in person[i]):person[i].remove('jokers')person[i].remove('JOKERS')person_sort.append(sorted(person[i], key=lambda x: (desigh.index(x[0]), num.index(x[1:])))+['jokers', 'JOKERS'])elif 'jokers' in person[i]:person[i].remove('jokers')person_sort.append(sorted(person[i], key=lambda x: (desigh.index(x[0]), num.index(x[1:])))+['jokers'])elif 'JOKERS' in person[i]:person[i].remove('JOKERS')person_sort.append(sorted(person[i], key=lambda x: (desigh.index(x[0]), num.index(x[1:])))+['JOKERS'])else:person_sort.append(sorted(person[i], key=lambda x: (desigh.index(x[0]), num.index(x[1:]))))return person_sortif __name__ == '__main__':desigh = ['♠', '♥', '♣', '♦']  # 表示黑桃、红桃、梅花、方块num = ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A']ghost = ['jokers', 'JOKERS']n = int(input())  # 输入参与游戏的人数s = int(input())random.seed(s)print(f'参与游戏的人数:{n}')cards = start()print('新牌顺序')print(*cards)cards_after = shuffle_cards(cards)print('洗牌顺序')print(*cards_after)cards_n = traver(cards_after, n)print('每个人手上分到的牌')for i in range(n):print(*cards_n[i])cards_sort = sort_cards(cards_n, n)print('每个人手上排序的牌')for i in range(n):print(*cards_sort[i])

结束了~
我的gitcode中有我自学python整理的笔记,可以看看
https://gitee.com/li_fjyr/disposal_python

相关文章:

  • React 播客专栏 Vol.9|React + TypeScript 项目该怎么起步?从 CRA 到配置全流程
  • 2025年Energy SCI1区TOP,改进雪消融优化算法ISAO+电池健康状态估计,深度解析+性能实测
  • UE RPG游戏开发练手 第二十一课 使用C++代码实现装备武器
  • C/C++ 内存管理深度解析:从内存分布到实践应用(malloc和new,free和delete的对比与使用,定位 new )
  • 如何使用 WebBrowserPassView 查看所有浏览器密码?
  • 用户态到内核态:Linux信号传递的九重门(二)
  • 动手学深度学习12.4.硬件-笔记练习(PyTorch)
  • 应急响应靶机——WhereIS?
  • C# 中 static的使用
  • Mysql的索引,慢查询和数据库表的设计以及乐观锁和悲观锁
  • DeepSeek | AI需求分析
  • 从零开始的python学习(七)P89+P90+P91+P92+P93+P94
  • Tauri(2.5.1)+Leptos(0.7.8)开发桌面应用--程序启动界面
  • Python基础:类的深拷贝与浅拷贝-->with语句的使用及三个库:matplotlib基本画图-->pandas之Series创建
  • HDFS概述
  • 杰理强制烧录拨码开关
  • cursor 30.Our servers are currently........
  • 网络层:ICMP协议
  • javascript万字全解知识宝库
  • Unity ML-Agents实战指南:构建多技能游戏AI训练系统
  • 首映|奥斯卡最佳国际影片《我仍在此》即将公映
  • 周启鸣加盟同济大学,曾任香港浸会大学深圳研究院院长
  • 山东鄄城发生一起交通事故,造成4人死亡、2人受伤
  • 训练孩子的科学思维,上海虹口推出“六个一百”旗舰工程
  • 最美西游、三星堆遗址等入选“2025十大年度IP”
  • 青海规范旅游包车行为:不得引导外省籍旅游包车违规驻地运营