(自己个人总结的,可能会有很多错误,请谅解
别问我,为啥搞这玩意,闲着慌,md,看汇编去了,y1s1,我真棒)
第一章1.在Python集成开发环境中,可使用(F5)快捷键运行程序。
2.Python中的多行语句可以使用反斜杠来实现。(错误)
3.利用turtle库绘制一个斜螺旋线,效果如下图所示。
代码:
if __name__ == '__main__':
import turtle
turtle.pensize(2)
turtle.speed(10)
colors = ['red', 'yellow', 'purple', 'blue']
for x in range(100):
turtle.pencolor(colors[x % 4])
turtle.forward(2 * x)
turtle.left(91)
turtle.exitonclick()
第二章
-
Python基本类型:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Sg4UhKl0-1636956777512)(C:Users27370AppDataRoamingTyporatypora-user-imagesimage-20211108161159168.png)]
-
1的布尔值不是False,而None,0,()等的布尔值都相当于False。
-
Python不支持数据类型char,但支持String。
-
语句 x=“10”,y=20;print(x+y)的运行结果是()
TypeError: can only concatenate str (not “int”) to str 报错无法运行
-
能将其他进制的数转化成十六进制的函数是(hex())
不同进制的数可以通过Python内置函数相互转化:
(1)bin()函数:将其他进制的数转换成二进制数。
(2) int()函数 : 将其他进制的数转换成十进制数。
(3)oct()函数:将其他进制的数转换成八进制数。
(4) hex()函数: 将其他进制的数转换成十六进制数。
-
Python变量命名注意事项:
1、变量名的长度不受限制,但其中的字符必须是字母、数字、或者下划线,而不能使用空格、连字符、标点符号、引号或其他字符。
2、变量名的第一个字符不能是数字,必须是字母或下划线。
3、Python区分大小写。
4、不能将Python关键字用作变量名。
-
python支持丰富的数据类型,其中标准的数据类型有(数字),(字符串),(列表),(元组),(字典),(集合)
-
用Python实现判断一个标识符word是不是保留字
import keyword
print(keyword.iskeyword(word))
输出为 False : 不是保留字
True:是保留字
1.下列代码:
a = 9 b = 2 print(a // b) #4 print(a ** b) #81
// : 向下取整数 **:表示幂运算
2.下列表达式中,返回True的是( B)
-
A
a=2
b=2
a=b
TypeError: ‘a’ is an invalid keyword argument for print()
-
B
3>2>1
True(相当于3>2 && 2>1)
-
C
True and False
False
-
D
2!=2
False
3.x = (y = z + 1)
x被赋值 " y = z + 1 ",但这个所谓的 "y = z + 1"并不返回任何值,所以这是一个错误的赋值语句,这是非法的。
x = y = z + 1
先将 “z + 1"赋给"y”,再将"y"赋给"x",这是合法的
4.以下代码的输出结果是(27)
x = 2 + 9 * ((3*12) - 8) // 10 print(x)
结果为:27
3 * 12 = 36 36-8 = 28 28 * 9 = 252 252 // 10 = 25 25 + 2 = 27
(具有相同优先级的运算符按照从左向右的顺序计算)
运算符优先级:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x3lTj7Cc-1636956777513)(C:Users27370AppDataRoamingTyporatypora-user-imagesimage-20211108164458255.png)]
5.以下代码的输出结果是(False)
print( 0.1 + 0.2 == 0.3 )
import math print(math.fsum([0.1 + 0.2])) #0.30000000000000004 print(0.1 + 0.2)#0.30000000000000004
6.表达式3*4**2//8%7的计算结果是(6)
(**的优先级最高,然后自左向右运算即可)
7.若字符串s=‘anbtc’,则len(s)的值是(5)
s = 'anbtc' print(len(s))
转义字符长度为1
8.为了给整型变量a、b、c赋初值10,下面正确的python语句是©
-
A
xyz=10
-
B
x=10 y=10 z=10
-
C
x=y=z=10
-
D
x=10,y=10,z=10
SyntaxError: cannot assign to literal
9.and 和 or的用法:
a and b:a表示上文,b表示下文
当a为真,b为真,and前后都为真,则返回下文 b ;
当a、b中一个为真,一个为假,则返回为假的值;
当a、b均为假,则返回上文 a;
a or b:a表示上文,b表示下文
当a为真,b为真,or前后都为真,则返回上文a ;
当a、b中一个为真,一个为假,则返回为真的值;
当a、b均为假,则返回下文 b;
a , b = 1 ,2 print(a or b) # 1
a , b = 10 ,20 print(a and b) #20
a , b = 0 ,1 print(a and b) #0
a , b = 0 ,2 print(a or b) #2
10.编程题:从键盘输入一个任意数判断它是不是素数。
number = eval(input("请输入任意数:"))
for i in range(number):
if number % (i + 2) == 0:
print("{}不是素数".format(number))
break
elif number == 1 or number == 2:
print("{}是素数".format(number))
else:
print("{}是素数".format(number))
break
11.编程题:如何实现一个“获取月份字符串”呢?要求根据1-12的数字返回月份名称
monthstr = "1月2月3月4月5月6月7月8月9月10月11月12月"
monthid = eval(input("请输入月份数字(1-12):"))
if monthid in range(1,10):
pos = (monthid - 1) * 2
print(monthstr[pos:pos+2])
elif monthid in [10,11,12]:
pos = (monthid - 1) * 2 + monthid - 10
print(monthstr[pos:pos+3])
else:
print("请输入正确的数字")
第四章
1.语句print('x= : + 8.2 f ′ . f o r m a t ( 123.5678 ) ) 执 行 后 的 输 出 结 果 是 ( x = {:+8.2f}'.format(123.5678))执行后的输出结果是( x= :+8.2f′.format(123.5678))执行后的输出结果是(x= □ +123.57 )。选项中的□代表空格
解答:.2f使得数字以四舍五入输出两位小数,8指定了输出宽度,+让数字带+输出,数字输出默认左对齐,得结果(经排除法也可)
print("{:30}".format(123.5678))
print("{:30}".format("123.5678"))
123.5678(数字左对齐)
123.5678(字符串右对齐)
2.下列程序的运行结果是( 6 6 7)。
x,y=4,4 x,y,z=6,x+2,x+3 #同步赋值 print(x,y,z)
3.若 a = ‘abcd’ ,若想将 a 变为 ‘ebcd’ ,则下列语句正确的是(C )。
-
A
a[0] = ‘e’ (字符串是不可变对象,不要试图用下标的方法去改变字符串的值)
-
B
replace(‘a’, ‘e’) (应该是a.replace(‘a’, ‘e’) )
-
C
a = ‘e’ + a[1:] (可以的)
-
D
a[1] = ‘e’ (字符串是不可变对象,不要试图用下标的方法去改变字符串的值)
4.a=10;
print(eval(“a+1”))
g={‘a’:4}
print(eval(“a+1”,g))
执行上述语句后的输出结果是(A)。
-
A、
11 5
-
B、
11 11
-
C、
11 4
-
D、
11 15
((https://blog.csdn.net/qq_44923545/article/details/109060735),eval函数的用法)
5.Python语句print(’{:*^10.4}’.format(‘Flower’))的运行结果是( D )。
-
A
Flow
-
B
Flower
-
C
Flowe
-
D
Flow(打不出来,前面三个 * ,后面三个 * )
解答:表示以 * 填充空白区域,^表示居中对齐,10表示输出宽度,.4对于字符串来说是输出指定长度
6.字符串 s = “I love Python”,以下程序的输出结果是( [‘Python’, ‘love’, ‘I’] )。
s = "I love Python" ls = s.split() ls.reverse() print(ls)#['Python', 'love', 'I']
解答:split方法默认以’ '切割字符串,并将切割完的数据以列表形式保存,reverse()方法将列表元素颠倒
7.表达式 {1, 2} * 2 的值为 {1, 2, 1, 2}。(错误)
print({1,2} * 2) #对于集合来说,结果报错
print([1,2] * 2) #[1,2,1,2]
8.看代码,求结果:
x = y = [1, 2] #列表x和y的引用相同,可以理解为地址相同 x.append(3)#对x的修改同时也会修改y print(x is y, x == y,end=' ')#True,True(is取决于引用是否相同,==取决于值是否相等) z = [1, 2, 3] print(x is z,x == z,y == z)#False,True,True print(x)#[1,2,3] print(y)#[1,2,3]
9.看代码,求结果:
a = 10 a *= 2 + 3 #结合运算符,首先需要将右边表达式运算完,再进行下步运算,50 a /= 2 + 3 #10 a %= a - a % 4 #2 a //= a - 3 #取a的值仍然为10,//取整除,结果为1
10.查找排序:
冒泡排序:
def BubbleSort(list):
for i in range(len(list) - 1):
for j in range(i+1,len(list)):
if list[i] > list[j]:
list[i],list[j] = list[j],list[i]
return list
list1 = [20,10,32,41,78,100,1]
list2 = BubbleSort(list1)
print(list2)
选择排序:
def choice_sort(list):
for i in range(len(list) - 1):
min = i
for j in range(i + 1, len(list)):
if list1[min] > list1[j]:
min = j
list1[i], list1[min] = list1[min], list1[i]
return list
list1 = [7,8,3,1,2,10,1114]
choice_sort(list1)
print(list1)
二分查找:
def yuansu_search(key,list):
low = 0
high = len(list) - 1
while(low <= high):
middle = int((low + high) / 2)
if key < list[middle]:
high = middle - 1
elif key > list[middle]:
low = middle + 1
else:
return middle
return -1
list2 = [2,4,8,12,17,19,24]
key = int(input("请输入你想查找的值:"))
location = yuansu_search(key,list2)
if location != -1:
print("{}的索引值为{}".format(key,location))
else:
print("查找不到关键值")
第五章
1.以下不能创建一个字典的语句是 ( C)。
(对于字典来说,只能以不可变数据类型作为它的键)
-
A
dict1 = {} (创建了空字典)
-
B
dict2 = { 3 : 5 } (以数字3为键)
-
C
dict3 = {[1,2,3]: “uestc”} (以列表为键不可以)
-
D
dict4 = {(1,2,3): “uestc”}(以元组为键可以,元组是不可变数据类型)
2.以下关于Python自带数据结构的运算结果中错误的是哪一项?( D)。
-
A
l = [1, 2, 3, 4]; l.rerverse(); 则l[1]为3。(倒置后为[4,3,2,1],则I[1]为3)
-
B
l = [1, 2, 3, 4]; l.pop(1); 则l结果为[1, 3, 4] (pop方法默认删除列表末尾的元素,加参数表示删除索引为参数的元素)
-
C
l = [1, 2, 3, 4]; l.pop(); 则l.index(3) 结果为2。(index方法用于查找并返回参数在列表中第一次出现的索引值)
-
D
l = [1, 2, 3, 4]; l.insert(2, -1); 则l为 [1, 2, -1, 4]。(结果I为[1,2,-1,3,4])(insert方法表示在某一索引值前面插入一个值)
3.对于一个列表aList和一个元组bTuple,以下函数调用错误的选项是哪一个? ( D)。
-
A
sorted(aList)
-
B
sorted(bTuple)
-
C
aList.sort()
-
D
bTuple.sort() #‘tuple’ object has no attribute ‘sort’
4.Python语句序列“s={‘a’,1,‘b’,2};print(s[‘b’]);”的运行结果是( A )。
运行报错:#TypeError: ‘set’ object is not subscriptable #表示把不具有下标操作的集合对象用成了对象
(集合是无序数据类型,不能进行下标操作)
-
A
语法错
-
B
‘b’
-
C
1
-
D
2
5.下面代码的输出结果是( D )。
s =[“seashell”,“gold”,“pink”,“brown”,“purple”,“tomato”]
print(s[1:4:2])
解答:1:4表示输出列表索引值1至4(左闭右开),2表示步长,默认为1,表示每隔多少个输出
-
A
[‘gold’, ‘pink’, ‘brown’]
-
B
[‘gold’, ‘pink’]
-
C
[‘gold’, ‘pink’, ‘brown’, ‘purple’, ‘tomato’]
-
D
[‘gold’, ‘brown’]
6.假设将单词保存在变量 word 中,使用一个字典类型 counts={},统计单词出现的次数可采用以下( D )代码。
-
A
counts[word] = counts[word] + 1
-
B
counts[word] = 1
-
C
counts[word] = counts.get(word,1) + 1
-
D
counts[word] = counts.get(word,0) + 1
7.以下程序的输出结果是( D )。
Da = {“北美洲”:“北极兔”,“南美洲”:“托哥巨嘴鸟”,“亚洲”:“大熊猫”,“非洲”:“单峰驼”,“南极洲”:“帝企鹅”}
Da[“非洲”] = “大猩猩”(通过键修改值)
print(Da)
-
A
(‘北美洲’: ‘北极兔’, ‘南美洲’: ‘托哥巨嘴鸟’, ‘亚洲’: ‘大熊猫’, ‘非洲’: ‘大猩猩’, ‘南极洲’: ‘帝企鹅’)
-
B
[‘北美洲’: ‘北极兔’, ‘南美洲’: ‘托哥巨嘴鸟’, ‘亚洲’: ‘大熊猫’, ‘非洲’: ‘大猩猩’, ‘南极洲’: ‘帝企鹅’]
-
C
{“北美洲”:“北极兔”,“南美洲”:“托哥巨嘴鸟”,“亚洲”:“大熊猫”,“非洲”:“单峰驼”,“南极洲”:“帝企鹅”}
-
D
{‘北美洲’: ‘北极兔’, ‘南美洲’: ‘托哥巨嘴鸟’, ‘亚洲’: ‘大熊猫’, ‘非洲’: ‘大猩猩’, ‘南极洲’: ‘帝企鹅’}
8.下面代码的执行结果是( 3 )。
ls=[[1,2,3],[[4,5],6],[7,8]]
print(len(ls)) (输出列表的长度,列表单项可以为任何数据类型)
9.可以使用del删除集合中的部分元素。(错误)(直接将集合删除,集合不存在了)
10.集合可以作为字典的键 (错误) (集合可变)
11.只能通过切片访问元组中的元素,不能使用切片修改元组中的元素。(正确)
第六章1.以下关于循环控制语句描述错误的是哪一项? (B )。
-
A
Python中的for语句可以在任意序列上进行迭代访问,例如列表、字符串和元组。
-
B
在Python中if…elif…elif…结构中必须包含else子句。(也可以不包含)
-
C
在Python中没有switch-case的关键词,可以用if…elif…elif…来等价表达。
-
D
循环可以嵌套使用,例如一个for语句中有另一个for语句,一个while语句中有一个for语句等。
2.for i in range(0,2):
print (i)
上述程序的输出结果是: ( )。
for i in range(0,2):
print (i)
#输出:0
1
左闭右开,若未说明第一个参数的值,默认为0
3.Python程序中假设字典d={‘1’:‘male’, ‘2’:‘female’},如果语句中使用d[3],则解释器将抛出( C )错误信息。
-
A
NameError
-
B
IndexError
-
C
KeyError (d[3]找不到对应key值,使用d[2]也一样,键值类型不同,都报KeyError)
-
D
TypeError
4.以下关于异常处理try语句块的说法,不正确的是( C )。
-
A
finally语句中的代码段始终要保证被执行
-
B
一个try块后接一个或多个except块
-
C
一个try块后接一个或多个finally块
-
D
try块必须与except或finally块一起使用
5.Python程序中对于表达式123 + ‘xyz’,解释器将抛出(D )错误信息。
+ :左右两边数据类型需相同
-
A
NameError
-
B
FileNotFoundError
-
C
SyntaxError
-
D
TypeError
6.以下for语句结构中,(A )不能完成1~10的累加功能。
-
A
for i in range(10,0): total += i (输出为0,因为循环不了)
-
B
for i in range(1,11): total += i
-
C
for i in range(10,0,-1): total += i(步长-1,可以)
-
D
for i in (10,9,8,7,6,5,4,3,2,1): total += i
7.当用户输入abc时,下面代码的输出结果是( 无输出 )。
try:
n = 0
n = input("请输入一个整数: ")
def pow10(n):
return n**10
except:
print("程序执行错误") #无输出
8.关于程序的异常处理,以下选项中描述错误的是( C )。
-
A
程序异常发生经过妥善处理可以继续执行
-
B
异常语句可以与 else 和 finally 保留字配合使用
-
C
编程语言中的异常和错误是完全相同的概念
-
D
Python 通过 try、except 等保留字提供异常处理功能
9.以下关于循环结构的描述,错误的是( A )。
-
A
遍历循环使用for <循环变量> in <循环结构>语句,其中循环结构不能是文件
(Python包含以下几种可迭代对象:
- 序列。包含:字符串、列表、元组
- 字典
- 迭代器对象(iterator)
- 生成器函数(generator)
- 文件对象)
-
B
使用range()函数可以指定for循环的次数
-
C
for i in range(5)表示循环5次,i的值是从0到4
-
D
用字符串做循环结构的时候,循环的次数是字符串的长度
10.执行以下程序,输入qp,输出结果是( 2 )。
k = 0
while True:
s = input('请输入q退出:') # s = 'qb'
if s == 'q': #不满足不执行
k += 1
continue
else:
k += 2 #k = 2
break
print(k)
11.以下选项,不属于程序流程图基本元素的是(A )。
-
A
循环框
-
B
连接点
-
C
判断框
-
D
起始框
(流程图的基本元素:起止框,判断框,处理框,输入/输出框,注释框,流向线,连接点)
12.在异常处理结构中,不论是否发生异常,finally子句中的代码总是会执行的。(正确)
13.带有else子句的异常处理结构,如果不发生异常则执行else子句中的代码。(正确)
14.异常处理结构也不是万能的,处理异常的代码也有引发异常的可能。(正确)
15.在循环中continue语句的作用是跳出当前循环。(错误)
16.在编写多层循环时,为了提高运行效率,应尽量减少内循环中不必要的计算。(正确)
17.编程实现:从键盘随机输入一个正整数n,统计前n个数的阶乘的和。如n=3,求1!+2!+3!
number = eval(input("请输入一个正整数:"))
sum = 0
b = 1
for i in range(1,number + 1):
b = b * i
sum += b
print(sum)
18.编程实现:自定义一个函数hw(ch),判断用户随意输入的ch是否为回文字符串(回文字符串:是一个正读和反读都一样的字符串,如abccba,12321)。
def hw(ch):
if ch == ch[::-1]:
print('{}是回文字符串'.format(ch))
else:
print('{}不是回文字符串'.format(ch))
ch = input("请输入你的字符串:")
hw(ch)
第七章
1.( C)函数以一系列列表作为参数,将列表中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
-
A、
lambda
-
B、
map
-
C、
zip
-
D、
filter
2.关于函数参数传递中,形参与实参的描述错误的是( D )。
-
A、
python实行按值传递参数。值传递指调用函数时将常量或变量的值(实参)传递给函数的参数(形参)
-
B、
实参与形参存储在各自的内存空间中,是两个不相关的独立变量
-
C、
在参数内部改变形参的值,实参的值一般是不会改变的。
-
D、
实参与形参的名字必须相同
3.Python中,若有def f1(a,b,c):print(a+b),则语句序列“nums=(1,2,3);f1(*nums)”的运行结果是(C )。
-
A、
语法错
-
B、
6
-
C、(序列解包,元组的值拆开依次传参,重点是数量要对应)
3
-
D、
1
4.Python语句序列“f1=lambda x:x*2; f2= lambda x:x**2; print(f1(f2(2)))”的程序运行结果是(D )。
-
A、
2
-
B、
4
-
C、
6
-
D、(匿名函数,将lambda看成一个简单函数即可,f2(2)的值为4,f1(4)的结果为8)
8
5.关于函数的可变参数,可变参数*args传入函数时存储的类型是( D)。
-
A、
list
-
B、
set
-
C、
dict
-
D、(**args传入时,类型为字典哦)
tuple
6.定义函数时,带有默认值的参数必须出现在参数列表的最右端,任何一个带有默认值的参数右边不允许出现没有默认值的参数。(正确)
7.Python不允许使用关键字作为变量名,允许使用内置函数名作为变量名,但这会改变函数名的含义。(正确)
8.输入一个数字a和数字b,生成一个列表[a,aa,aaa,aaaa,…,aaaaaaa]并计算列表每个元素加起来的和。其中b代表列表中元素的个数。如a=2, b=5,表示[2,22,222,2222,22222]。
a = eval(input())
b = eval(input())
c = []
d = 0
for i in range(0 , b ):
d += a * 10 ** i
c.append(d)
print(c)
print(sum(c))
9.从键盘输入两个数(每行一个数字),调用函数 gcd() 输出两个数的最大公约数并显示在屏幕上,要求输出最大公约数。
def gcd(x,y):
if x
第八章
1.下列哪项不是Python中对文件的读取操作: ( B)。
-
A、
read
-
B、
readall
-
C、
readline
-
D、
readlines
2.以下关于Python文件的描述,错误的是( D )。
-
A、
open函数的参数处理模式‘b’表示以二进制数据处理文件
-
B、
open函数的参数处理模式‘+’表示可以对文件进行读和写操作
-
C、
readline函数表示读取文件的下一行,返回一个字符串
-
D、
open函数的参数处理模式‘a’表示追加方式打开文件,删除已有内容(在文件最后追加内容)
3.文件 book.txt 在当前程序所在目录内,其内容是一段文本:book,下面代码的输出结果是( C)。
txt = open(“book.txt”, “r”);
print(txt);
txt.close()
-
A、
book.txt
-
B、
txt
-
C、
以上答案都不对
-
D、
book
txt = open("book.txt", "r")
print(txt)
txt.close()
<_io.TextIOWrapper name='book.txt' mode='r' encoding='cp936'>
txt = open("book.txt", "r")
print(txt.readline())
txt.close()
book
4.Python 文件读取方法read(size)的含义是(D)。
-
A、
从头到尾读取文件所有内容
-
B、
从文件中读取一行数据
-
C、
从文件中读取多行数据
-
D、
从文件中读取指定size大小的数据,如果size为负数或者空,则读取到文件结束
5.文件text.txt里的内容如下:
QQ&Wechat
Google & Baidu
以下程序的输出结果是(D )。
fo = open(“text.txt”,‘r’)
fo.seek(2)
print(fo.read(8))
fo.close()
-
A、
Wechat
-
B、
&Wechat G
-
C、
Wechat Go
-
D、(最后读入了一个回车符)
&Wechat
6.关于以下代码的描述,错误的选项是(A)。
with open(‘abc.txt’,‘r+’) as f:
lines = f.readlines()
for item in lines:
print(item)
-
A、
执行代码后,abc.txt文件未关闭,必须通过close()函数关闭
(py提供了 with 语句来管理资源关闭。比如可以把打开的文件放在 with 语句中,这样 with 语句就会帮我们自动关闭文件。)
-
B、
打印输出abc.txt文件内容
-
C、
item是字符串类型
-
D、
lines是列表类型
7.关于下面代码中的变量x,以下选项中描述正确的是(D )。
fo = open(“fname.txt”, “r”)
for x in fo:
print(x)
fo.close()
-
A、
变量 x 表示文件中的一组字符
-
B、
变量 x 表示文件中的全体字符
-
C、
变量 x 表示文件中的一个字符
-
D、
变量 x 表示文件中的一行字符
8.以下关于随机运算函数库的描述,正确的是(D)。
-
A、
random库产生的随机数是完全随机的
-
B、
Python的random库是内置库,随Python一起发布
-
C、
random(a,b)产生一个(a,b)之间的随机小数([a,b)之间的随机小数)
-
D、
random.seed()函数初始化随机数种子,是为了可以重复再现随机数序列
9.切片操作list(range(6))[::2]执行结果为 [0,2,4]。
10.编程,找出1000之内的所有完数,并输出该完数及对应的因子。其中:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1、2、3,而6=1+2+3,因此6是完数。
m=1000
for a in range(2,m+1):
s=a
L1=[]
for i in range(1,a):
if a%i==0:
s-=i
L1.append(i)
if s==0:
print("完数:%d,因子包括:"%a,end="")
for j in range(1,len(L1)):
print("%d"%L1[j],end=",")
print("n")
11.编程:创建一个data.txt,并从键盘中输入K个字符,基于K个字符,随机生成m个n位的随机字符输出
import random
with open('data.txt','w+') as file1:
file1.write(input("输入字符:"))
file1 = open('data.txt','r')
lines = file1.readline()
m = int(input("input m:"))
n = int(input("input n:"))
for j in range(0,m):
a = random.randint(1,len(lines) - n)
print(lines[a:a+n])
file1.close()



