Advertisement

python期末题库

阅读量:

题库

一、简答题(共33****题,165分)********

1**、要求:**一个内容为0,88,ac,ff,abc,ss的元组。

tuple=(0,88,"ac","ff","abc","ss")

2、删除元素ff

3、并在位置4添加新的元素h

4、返回新的元组。

(5.0)

正确答案:

解析:

2**、1、创建一个列表:colors,内部元素为:red,yellow,blue,white,black,green,gray** ,

2、在black 前面插入一个元素:orange

3、把orange改为橙色。

4、在blue后面插入一个子表:[“pink”,”purple”]

5、返回white的索引值。

6、创建一个新列表11,22,33,44,并合并到colors中。

7、取出索引值4-8的所有元素。

8、取出最后2个元素。

9、使用循环,遍历列表所有元素,并输出元素值和对应的索引值。

10、删除gray元素。

(5.0)

正确答案:# 1、创建一个列表:colors,内部元素为:red,yellow,blue,white,black,green,gray

colors = ['red','yellow','blue','white','black','green','gray']

print('第一题:',colors)

2、在black前面插入一个元素:orange

colors.insert(4,'orange')

print('第二题:',colors)

3、把orange改为橙色。

colors[4] = '橙色'

print('第三题:',colors)

4、在blue后面插入一个子表:[“pink”,”purple”]

list = ['pink','purple']

colors.insert(3,list)

print('第四题:',colors)

5、返回white的索引值。

print('第五题:',colors.index('white'))

6、创建一个新列表11,22,33,44,并合并到colors中。

newlist= [11,22,33,44,]

print('第六题:',colors + nub)

7、取出索引值4-8的所有元素。

print('第七题:',colors[4:8])

8、取出最后2个元素。

print('第八题:',colors[-2:])

9、使用循环,遍历列表所有元素,并输出元素值和对应的索引值。

for i in colors:

print('第九题:','元素值是:',i,'索引值是:',colors.index(i))

#10、删除gray元素。

del colors[8] # 方法1

colors.pop(8) # 方法2

colors.remove("gray") # 方法3

#11、删除colors。

del colors

解析:

3**、 使用列表推导式生成一个存放1-100中个位数为3的数据列表。**

(5.0)

正确答案: result = [x for x in range(3, 101, 10)]

print(result)

解析:

4**、补充下列代码,实现输入一个8位数表示的年月日,读出月份数字并输出该月有多少天。**

def is_leap(year):

"""判断year是否为闰年,闰年返回True,非闰年返回False"""

#####

def days_of_month(date_str):

"""根据输入的年月日,返回该月的天数"""

#####

date_in = input() # 输入一个年月日

print(days_of_month(date_in))

(5.0)

正确答案:

解析:

5**、使用递归法计算自然数各位数字之和。**

比如:输入151,经递归函数计算后输出1+5+1计算结果:7

通常要获得数字的最后一位数,可以取模:

last= n % 10

该数字的其余部分(不包括最后一个地方)是:

rest = n // 10

(5.0)

正确答案:def func(num):

if num < 10:

return num

else:

return func(num // 10) + func(num % 10)

num = int(input("请输入任意数字: "))

res = func(num)

print(res)

解析:

6**、使用map()函数计算自然数各位数字之和。**

(5.0)

正确答案:

n=input()

l=list(map(int,n))

print(sum(l))

解析:

7**、使用三种方法调用math库中的pow(底数,指数)函数,计算2的100次方。**

(5.0)

正确答案:

解析:

8**、新建一个.py文件,命名为module.py,在新文件中调用自定义模块date中的is_leap函数,实现输入一个4位数的年时,如果是闰年则输出该年为闰年,如果不是闰年则输出该年不是闰年。**

(5.0)

正确答案:

#module.py

import date

n=int(input('请输入年:'))

if date.is_leap(n):

print('该年为闰年')

else:

print('该年不是闰年')

解析:

9**、1.新建一个 hm_message的包**

2.在目录下,新建两个文件 send_message和receive_message

3.在send_message文件中定义一个send函数

4.在receive_message文件中定义一个receive函数

5.在外部直接导入hm_message的包

注意:包的路径不能做为默认路径。


(5.0)

正确答案:

解析:

10**、新建字典如下:**

one_dict = {"name": "xp", "gender": "woman", "age": 15, "height": 165}

two_list = {"character": "活泼", "hobby": "吃", "motto": "开心"}

2、将两个字典合并到ond_dict中去。

3、修改字典中age的值为20.

4、删除字典中hobby的值。

5、增加一对数据 “tel”:”123”

6、遍历字典所有的键值。

7、遍历字典所有的值。

8、遍历字典所有的键值对。

(5.0)

正确答案: 正确答案:

1、新建字典如下:

one_dict = {"name": "xp", "gender": "woman", "age": 15, "height": 165}

two_list = {"character": "活泼", "hobby": "吃", "motto": "开心"}

2、将两个字典合并到ond_dict中去。

ond_dict = {}

ond_dict.update(one_dict)

ond_dict.update(two_list)

print('第二题:',ond_dict)

3、修改字典中age的值为20.

ond_dict.update({'age':20})

print('第三题:',ond_dict)

4、删除字典中hobby的值。

ond_dict.pop('hobby')

print('第四题:',ond_dict)

5、增加一对数据 “tel”:”123”

ond_dict["tel"] = 123

print('第五题:',ond_dict)

6、遍历字典所有的键值。

for item in ond_dict.items():

key = item[0]

print('第六题:','键',key,)

print('------------------------------')

7、遍历字典所有的值。

for item in ond_dict.items():

value = item[1]

print('第七题:','值',value)

print('------------------------------')

8、遍历字典所有的键值对。

for item in ond_dict.items():

key = item[0] value = item[1]

print('第八题:','键',key,'值',value)

解析:

11**、一、创建一个字典,键为1, 2,3.值分别为one ,two three.**

通过查找1,找到其对应的值one。

添加键4对应值为four.

删除2对应的元素。

二、创建由1-7共7个键对应的‘Monday’~’Sunday’7个值组成的字典。

输出键列表,值列表以及键值列表

修改2对应的值为中文‘星期二’。

删除并返回5对应的元素。

将该字典清空。

三、定义两个集合,求其交集、并集、差集。

(5.0)

正确答案:

第一题:

dict1={1:'one',2:'two',3:'three'}

dict1[1]

'one'

dict1[4]='four'

dict1

{1: 'one', 2: 'two', 3: 'three', 4: 'four'}

del dict1[2]

dict1

{1: 'one', 3: 'three', 4: 'four'}

第二题:

dict2={1:'Monday',2:'Tuesday',3:'Wednesday',4:'Thusday',5:'Friday',6:'Saturday',7:'Sunday'}

dict2.items()

dict_items([(1, 'Monday'), (2, 'Tuesday'), (3, 'Wednesday'), (4, 'Thusday'), (5, 'Friday'), (6, 'Saturday'), (7, 'Sunday')])

dict2.keys()

dict_keys([1, 2, 3, 4, 5, 6, 7])

dict2.values()

dict_values(['Monday', 'Tuesday', 'Wednesday', 'Thusday', 'Friday', 'Saturday', 'Sunday'])

dict2[2]='星期二'

dict2

{1: 'Monday', 2: '星期二', 3: 'Wednesday', 4: 'Thusday', 5: 'Friday', 6: 'Saturday', 7: 'Sunday'}

dict2.pop(5)

'Friday'

dict2.clear()

dict2

{}

第三题:

a_set = set([8, 9, 10, 11, 12, 13])

b_set = {0, 1, 2, 3, 7, 8}

a_set | b_set #并集

{0, 1, 2, 3, 7, 8, 9, 10, 11, 12, 13}

a_set.union(b_set) #并集

{0, 1, 2, 3, 7, 8, 9, 10, 11, 12, 13}

a_set & b_set #交集

{8}

a_set.intersection(b_set) #交集

{8}

a_set.difference(b_set) #差集

{9, 10, 11, 12, 13}

a_set - b_set

{9, 10, 11, 12, 13}

解析:

12**、英文中有一种句子,句子中所有英文每个字母至少出现一次,例如The quick brown fox jumps over the lazy dog.**

编写一个程序,用来检查一个英文句子是否是符合这个条件.是则显示True 否则显示False

知识准备:

设置集合为空集合 jh=set()

集合jh增加一个元素x jh.add(x)

集合元素的个数 len(jh)

(5.0)

正确答案:

解析:

13**、定义两个集合,求其交集、并集、差集、补集。**

(5.0)

正确答案:

解析:

14**、1、创建一个TXT文件,命名为t.txt,内容为:好好学习,**

2、在文件的末尾追加写入”天天向上!“。

3、在文件的开头追加写入”我会“

(5.0)

正确答案:

解析:

15**、要求:单文件拆分为多个文件**

将唐诗十首.txt中的诗逐首写入文件,诗名做为文件名。

(5.0)

正确答案:

import os

def read_poem(file, path):

"""读唐诗10首,将每首诗切分开保存在一个字符串中,返回这个字符串"""

with open(file, 'r', encoding='utf-8') as file:

poem = '' # 空字符串,准备接收一首诗的内容

for line in file: # 遍历文件对象

if line[:3].isdigit(): # 若前3个字符是数字,如010杜甫:佳人

write_poem(poem, path) # 调用函数,将一首完整的诗写入文件

poem = line # 用当前行构建新一首诗的字符串

else:

poem = poem + line # 不是数字开头的行拼接到当前诗的字符串上

write_poem(poem, path) # 调用函数,将最后一首完整的诗写入文件

def write_poem(poem, path):

"""传入一首诗内容的字符串,提取诗名做文件名,将诗写入文件,无返回值"""

title = poem.split('\n',maxsplit=1)[0] # 根据换行切分一次,序号0的元素做为诗名,如010杜甫:佳人

print(title)

with open(path + title + '.txt', 'w', encoding='utf-8') as file:

file.write(poem) # 字符串写入文件

def check_list(pathname):

"""接收路径名为参数,返回路径下的文件名列表"""

return os.listdir(pathname)

if name == 'main':

filename = '/cyf/唐诗十首.txt' # 源文件路径

pathname = './' # 存放切分后文件的路径为当前路径

read_poem(filename, pathname)

print(check_list(pathname))

解析:

16**、输入几名学生的通讯录,保存到文件中以备将来使用。**

分析:通讯录包括姓名,性别,电话,地址,从键盘输入之后,只有存入文件中才能在关机之后仍能保存数据。 需要以写方式打开文件(新建文件),然后用write方法把数据写入文件中。

(5.0)

正确答案:

解析:

17**、遍历test文件夹,如果是文件就直接输出当前文件绝对路径,**

如果是文件夹,就输出当前文件夹路径,

然后接着遍历该子文件夹,直到指定文件夹被全部遍历完。

(5.0)

正确答案:

解析:

18**、某幼儿园的小朋友分发梨子,输入梨子数量和小朋友数量,计算每个人平均分配得到的梨子数量及剩余梨子数量,输出分配结果。请编程模拟这一过程,要求程序能处理数据输入异常及计算中出现的异常。**

根据提示,已给出正常运行时的模拟分梨程序。

# -- coding: utf-8 --

pear = int(input())

children = int(input())

result = pear // children

remain = pear % children

print('每个小朋友分得{}个梨,剩余{}个梨'.format(result,remain))

在不改变原有语句,补充代码,使其完成以下功能:

1.在输入数据正确时,正常执行,输出结果,并显示分梨工作顺利完成。

2.在发生输入的梨子数为0时,捕获raise,显示梨子数不能为0

3.在发生输入的小朋友人数为0时,捕获ZeroDivisionError,显示小朋友人数不能为0

4.在发生输入的梨子数或者小朋友人数为非整数值时,捕获ValueError,显示输入梨子或人数必须是整数

5.不管是否发生异常时,最后都显示进行了一次分梨工作

(5.0)

正确答案:

try:

pear = int(input())

children = int(input())

if pear == 0:

raise

result = pear // children

remain = pear % children

print('每个小朋友分得{}个梨,剩余{}个梨'.format(result,remain))

except ZeroDivisionError:

print("小朋友人数不能为0")

except ValueError:

print('输入梨子或人数必须是整数')

except:

print('梨子数不能为0')

else:

print('分梨工作顺利完成')

finally:

print('进行了一次分梨工作')

解析:

19**、1.爬取我校招聘信息网https://xgc.gxvnu.edu.cn/zpxx.htm内容,保存到本地磁盘,命名为zp.html。**

2.提取出招聘信息网中‘a'标签的文字内容。

(5.0)

正确答案:

解析:

20**、爬取我校招聘信息网https://xgc.gxvnu.edu.cn/zpxx.htm内容**

(5.0)

正确答案:

解析:

21**、将爬取到的我校招聘信息网https://xgc.gxvnu.edu.cn/zpxx.htm内容,保存到本地磁盘,命名为zp.html。**

(5.0)

正确答案:

解析:

22**、提取出招聘信息网中‘a'标签的文字内容。**

(5.0)

正确答案:

解析:

23**、使用正则表达式在爬虫作业3的基础上筛选出招聘信息中非广西的单位。**

(5.0)

正确答案:

解析:

24**、请将招聘信息网中的各个招聘信息抓取并保存为相应的公司名称的.txt文件。**

(5.0)

正确答案:

解析:

25**、下载故宫壁纸网页的多张图片,**

网页地址为https://www.dpm.org.cn/lights/royal/p/1.html

将图片文件命名为序号标题名,扩展名为jpg,将图片保存在image文件夹下。

(5.0)

正确答案:

解析:

26**、**请将招聘信息网中的各个招聘信息抓取并保存为相应的公司名称的.txt文件。

(5.0)

正确答案:

解析:

27**、下载故宫壁纸网页的多张图片,**

网页地址为https://www.dpm.org.cn/lights/royal/p/1.html

将图片文件命名为序号标题名,扩展名为jpg,将图片保存在image文件夹下。

(5.0)

正确答案:

import requests

from bs4 import BeautifulSoup

req=requests.get('https://www.dpm.org.cn/lights/royal/p/1.html')

req.encoding='utf-8'

soup=BeautifulSoup(req.text,'lxml')

img=soup.find('div',class_="list clearfix").find_all('img')

#print(img)

for imgs in img:

imgsrc=imgs.attrs['src']

r=requests.get(imgsrc)

imgname=imgs.attrs['title'].strip()

with open(imgname+'.jpg','wb') as p1:

p1.write(r.content)

解析:

28**、请按照以下图片样式,使用tkinter库完成界面设计。将代码截图上传。**

(5.0)

正确答案:

from tkinter import *

win=Tk()

win.title("单词翻译器")

win.geometry("300x120")

Label(win,text='输入要翻译的内容:',width=15).place(x=15,y=10)

Entry(win,width=20).place(x=130,y=10)

Label(win,text='翻译的结果:',width=15).place(x=15,y=40)

s=StringVar()#StringVar是Tk库内部定义的字符串变量类型,在这里用于管理部件上面的字符

s.set('我是个教师')

Entry(win,width=20,textvariable=s).place(x=130,y=40)

Button(win,text='翻译',width=8).place(x=50,y=70)

Button(win,text='清空',width=8).place(x=150,y=70)

win.mainloop()

解析:

29**、完善tkinter库翻译软件界面设计后,实现“清空”按钮功能**

(5.0)

正确答案:

from tkinter import *

def qkclick(event):

s.set('')

entry2.insert(0,'')

win=Tk()

win.title("单词翻译器")

win.geometry("300x120")

Label(win,text='输入要翻译的内容:',width=15).place(x=15,y=10)

entry1=Entry(win,width=20).place(x=130,y=10)

Label(win,text='翻译的结果:',width=15).place(x=15,y=40)

s=StringVar()#StringVar是Tk库内部定义的字符串变量类型,在这里用于管理部件上面的字符

s.set('我是个教师')

entry2=Entry(win,width=20,textvariable=s)

entry2.place(x=130,y=40)

b1=Button(win,text='翻译',width=8).place(x=50,y=70)

b2=Button(win,text='清空',width=8)

b2.place(x=150,y=70)

b2.bind("",qkclick)

win.mainloop()

解析:

30**、调用百度翻译API**

**开发者文档:百度翻译开放平台 **

通用翻译API HTTPS 地址:https://fanyi-api.baidu.com/api/trans/vip/translate

APP ID:20221123001465846

密钥:OC1nhlqyWAWnILZKs72o

(5.0)

正确答案:

from tkinter import *

from urllib import request

from urllib import parse

import json

import hashlib

def t_word(en_str):

Url='https://fanyi-api.baidu.com/api/trans/vip/translate'

f_data={'from':'en','to':'zh','q':en_str,'appid':'20221123001465846','salt':'15670288'}

key='OC1nhlqyWAWnILZKs72o'

m=f_data['appid']+en_str+f_data['salt']+key

m_md5=hashlib.md5(m.encode('utf-8'))

f_data['sign']=m_md5.hexdigest()

data=parse.urlencode(f_data).encode('utf-8')

response=request.urlopen(Url,data)

html=response.read().decode('utf-8')

tr=json.loads(html)

print(tr)

tr=tr['trans_result'][0]['dst']

print(tr)

return tr

en_str=input('en:')

t_word(en_str)

解析:

31**、将在百度翻译API中获得的翻译结果显示在翻译结果框中。**

(5.0)

正确答案:

def fyclick(event):

en_srt=entry1.get()

vtext=t_word(en_srt)

s.set(vtext)

32**、猜数游戏。在程序中预设一个0-9之间的随机整数,让用户通过键盘输入所猜的数,如果大于预设的数,显示“遗憾,太大了”;小于预设的数,显示“遗憾,太小了”,如此循环,直至猜中该数,显示“预测N次,你猜中了!”其中N是用户输入数字的次数。**

(5.0)

正确答案:

解析:

33**、**

使用Tkinter编辑以上界面,实现确定按钮的功能:要猜的数字从第一个文本框中获取,并将猜数游戏中的结果显示在对应文本框中。

(5.0)

正确答案:

from tkinter import *

win=Tk()

win.title("猜数字游戏")

win.geometry("300x140")

Label(win,text='输入要猜的数字:',width=15).place(x=15,y=10)

z=StringVar()#StringVar是Tk库内部定义的字符串变量类型,在这里用于管理部件上面的字符

z.set('')

entry1=Entry(win,width=20,textvariable=z)

entry1.place(x=130,y=10)

Label(win,text='猜的结果:',width=15).place(x=15,y=40)

s=StringVar()#StringVar是Tk库内部定义的字符串变量类型,在这里用于管理部件上面的字符

entry2=Entry(win,width=20,textvariable=s)

entry2.place(x=130,y=40)

Label(win,text='你猜了?次:',width=15).place(x=15,y=70)

s=StringVar()#StringVar是Tk库内部定义的字符串变量类型,在这里用于管理部件上面的字符

entry2=Entry(win,width=20,textvariable=s)

entry2.place(x=130,y=70)

b1=Button(win,text='确定',width=8)

b1.place(x=50,y=100)

b2=Button(win,text='清空',width=8)

b2.place(x=150,y=100)

全部评论 (0)

还没有任何评论哟~