当前位置:   article > 正文

python期末题库_python期末考题库

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("<Button-1>",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)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/540150
推荐阅读
相关标签
  

闽ICP备14008679号