python基础语法、数据结构、字符编码、文件处理 练习题

时间:2021-08-18 06:45:05

考试范围

'''
1、python入门:编程语言相关概念
2、python基础语法:变量、运算符、流程控制
3、数据结构:数字、字符串、列表、元组、字典、集合
4、字符编码
5、文件处理
'''

考试内容

1、简述什么是编程

编写控制计算机的指令,奴役计算机完成我们想让计算机完成的事

2、简述什么是编程语言

按照某种规范编写出来的计算机指令,根据不同规范诞生了不同的编程语言

3、编程语言的分类与特点描述

机器语言 - 运行效率高
汇编语言 - 增加可读性
高级语言 - 开发效率高

4、高级语言分类与工作原理简介

编译型 - 先编译在执行
解释性 - 边解释边执行

5、介绍你知道的编程语言

C Java Python

6、要在一个新电脑上运行python程序,需要进行哪些一步步操作

安装python解释器
配置环境变量
运行python程序
或者:
安装python解释器
安装python编辑器选取解释器
运行python程序

7、解释一下什么是变量

计算机运行过程中,状态可以发生改变的量

8、python中如何定义变量,并简述定义变量的流程

变量名 = 变量值
num = 10

9、简述变量名的命名规范

可以由字母数字及下划线组成
不能以数字开头
不能与系统关键字重名

10、定义的变量拥有的三要素,python中如何查看它们,用代码简述

num = 10
值:num
类型:type(num)
地址:id(num)

11、有几种注释?用代码简述

# 单行
'''
多行
'''

12、常用的数据类型有哪些(文字或英文解释)

bool int float str list tuple dict set 

13、用代码简述常用数据类型的定义声明

a = 10
b = 3.14
c = ''
d = [1, 2, 3]
e = (1, 2, 3)
f = {'name': 'Bob', 'age': 18}
g = {1, 2, 3}

14、数字5和2运算,然后得到2.5和2两种运算结果

5 / 2
5 // 2

15、利用2、17、50三个数得到256结果

(50 % 17) ** 2

16、在python3环境下,实现从键盘录入分数(只考虑0~100的合法分数),实现有(满分|通过|未通过)三种输出结果

grade = int(input('grade: '))
if grade == 100:
   print('满分')
elif grade >= 60:
   print('通过')
else:
   print('未通过')

17、录入一个学生的两门成绩,如果两门都及格,则打印 "通过",否则 "不通过"

g1 = int(input('class1 grade: '))
g2 = int(input('class2 grade: '))
if g1 >= 60 and g2 >= 60:
   print('通过')
else:
   print('不通过')

18、录入两个人的身高,打印是否存在 "存在180cm已上大高个" | "不存在180cm已上大高个"

h1 = int(input('person1 height: '))
h2 = int(input('person2 height: '))
if h1 > 180 or h2 > 180:
print('存在180cm已上大高个')
else:
   print('不存在180cm已上大高个')

19、从键盘录入学生分数,录入Q时退出录入,实现统计录入的次数

count = 0
while True:
   grade = input('grade: ')
   if grade != 'Q':
       break
   count += 1
print(count)

20、学生进行两门课考试,第一门未通过一直重考,通过后进入第二门考试,未通过一直重考第二门,通过后打印 "通过" 并结束考试(通过输入考试成绩模拟考试)

is_over = False
while not is_over:
   g1 = int(input('grade1: '))
   if g1 >= 60:
       while True:
           g2 = int(input('grade2: '))
           if g2 >=60:
               print('通过')
               is_over = True
               break
               

21、取出 "abc123好" 中的汉字

s =  "abc123好"
print(s[-1:])

22、键盘上录入usr和pwd,一次性分两行打印:

账号为:***

密码为:***

usr = input('usr: ')
pwd = input('pwd: ')
print('''账号为:%s
密码为:%s''' % (usr, pwd))

辅助23~25: "今天天气好晴朗,天上彩云一朵朵,比昨天好!"

23、计算字符串长度、"天"出现的次数、"彩"是否出现过

24、获取字符串中标识时间的子字符串

25、判断字符串是否以 "!" 结尾,如果是替换为 "。"

s =  "今天天气好晴朗,天上彩云一朵朵,比昨天好!"
print(len(s), s.count('天'), '彩' in s)
print(s[:2], s[-4:-2])
if s.endswith('!'):
   s = s.replace('!', '。')
print(s)

26、完成 "1@2@3@4@5" 与 ['1', '2', '3', '4', '5'] 之间的相互转换

"1@2@3@4@5".split('@')
'@'.join(['1', '2', '3', '4', '5'])

27、利用添加append及插入insert的两种方式,在 [1, 2, 3, 4, 5] 列表的最后插入6和7

ls = [1, 2, 3, 4, 5]
ls.append(6)
ls.insert(len(ls), 7)

28、将以下信息转换为字典结构存储 [ ('name', 'Bob'), ('age', 18), ('gender', 'male') ]

ls = [('name', 'Bob'), ('age', 18), ('gender', 'male')]
dic = {}
for k, v in ls:
   dic[k] = v
print(dic)

29、选取一种数据结构存储两个学生的选课信息

Bob:语文、政治、英语

Tom:高数、线代、英语

问:只被Tom选择了的课程;两个人都选择了的课程、被选的所有课程

bob = {'英文', '语文', '政治'}
tom = {'英文', '高数', '线代'}
print(tom - bob)
print(bob & tom)
print(bob | tom)

30、简述列表、元组、字典、集合几个数据类型的特点:取值依据|是否可变|有序无序|值能否重复

列表:索引,可变,有序,能
元组:索引,不可变,有序,能
字典:key,可变,无序,能
集合:无,可变,无序,不能

31、复制source.mp4为target.mp4

with open('source.mp4', 'rb') as f1, open('target.mp4', 'wb') as f2:
   for line in f1:
       f2.write(line)

32、读取一个文件内容,检索文件中标题的个数(个数在1~10个浮动),并修改原文件末尾的part信息

eg:文件内容:

1.this part one

2.this part two

3.this part three

part

修改后:

1.this part one

2.this part two

3.this part three

three part

part_map = {
   1: 'one',
   2: 'tow',
   3: 'three'
}
with open('a.txt', 'rb+') as f:
   data = f.read().decode('utf-8')
   count = 0
   for v in data:
       if v.isdigit():
           count += 1
   end = part_map[count] + ' part'
   end = end.encode('utf-8')
   f.seek(-4, 2)
   f.write(end)