填空题第1章 Python编程基础知识Python安装扩展库常用的是___pip____工具。
Python标准库math中用来计算平方根的函数是___sqrt()_______。
使用pip工具查看当前已安装的Python扩展库的完整命令是_____pip list________。
查看变量类型的Python内置函数是______type()__________。
Python运算符中用来计算整商的是____//_____。
______del________命令既可以删除列表中的一个元素,也可以删除整个列表。
表达式 int('123', 8) 的值为___83______。
表达式 int('123') 的值为_____123________。
表达式 int('101',2) 的值为____5______。Python 3.x语句 print(1, 2, 3, sep=':') 的输出结果为____1:2:3________。
表达式 int(4**0.5) 的值为_____2_______。
Python内置函数___len()______可以返回列表、元组、字典、集合、字符串以及range对象中元素个数。
Python内置函数_____max()______用来返回序列中的最大元素。
Python内置函数____min()________用来返回序列中的最小元素。
Python内置函数______sum()__________用来返回数值型序列中所有元素之和。
已知 x = 3,那么执行语句 x += 6 之后,x的值为______9_________。
表达式 3 ** 2 的值为___9______。
表达式 3 * 2的值为____6_______。
表达式 chr(ord('a')-32) 的值为____'A'_______。
表达式16**0.5的值为_______4.0_____________。表达式type({3})的值为_______set_____________。表达式isinstance('Hello world', str)的值为_________True___________。
第2章 Python序列
表达式[1, 2, 3]*3的执行结果为______[1, 2, 3, 1, 2, 3, 1, 2, 3]________。
语句x = 3==3, 5执行结束后,变量x的值为_____(True, 5)________。
已知 x = 3,那么执行语句 x *= 6 之后,x的值为_____18___________。
表达式[3] in [1, 2, 3, 4]的值为______False__________。
假设列表对象aList的值为[3, 4, 5, 6, 7, 9, 11, 13, 15, 17],那么切片aList[3:7]得到的值是______[6, 7, 9, 11]_________。
任意长度的Python列表、元组和字符串中最后一个元素的下标为___-1_____。
Python语句list(range(1,10,3))执行结果为________[1, 4, 7]___________。
表达式 list(range(5)) 的值为______[0, 1, 2, 3, 4]__________。
切片操作list(range(6))[::2]执行结果为_____[0, 2, 4]___________。
表达式 sorted([111, 2, 33], key=lambda x: len(str(x))) 的值为___[2, 33, 111]_____。
字典对象的_____items()________方法返回字典中的“键-值对”列表。字典对象的_____keys()_______方法返回字典的“键”列表。
字典对象的______values()________方法返回字典的“值”列表。
已知 x = {1:2},那么执行语句 x[2] = 3之后,x的值为_____{1: 2, 2: 3}_______。
表达式set([1, 1, 2, 3])的值为_______{1, 2, 3}_____________。
已知 x = [3, 5, 7],那么表达式 x[10:]的值为______[]______。
已知 x = [3, 5, 7],那么执行语句 x[len(x):] = [1, 2]之后,x的值为___ [3, 5, 7, 1, 2]_ 。
已知 x = [3, 7, 5],那么执行语句 x.sort(reverse=True)之后,x的值为___[7, 5, 3]___ 。
已知 x = [1, 11, 111],那么执行语句 x.sort(key=lambda x: len(str(x)), reverse=True) 之后,x的值为________[111, 11, 1]__________。表达式 list(zip([1,2], [3,4])) 的值为______________[(1, 3), (2, 4)]__________。
已知 x = list(range(10)),则表达式 x[-4:] 的值为_____[6, 7, 8, 9]_____。
已知 x = [3, 5, 7],那么执行语句 x[1:] = [2]之后,x的值为______[3, 2]__________。
已知 x = (3), 那么表达式 x * 3 的值为___9_______。
已知 x = (3,),那么表达式 x * 3 的值为_____(3, 3, 3)________。
已知列表 x = list(range(10)),那么执行语句 del x[::2]之后,x的值为___[1, 3, 5, 7, 9]__ 。
已知列表 x = [1, 2, 3, 4],那么执行语句 del x[1] 之后x的值为______[1, 3, 4]__ 。
已知列表 x = [1, 2, 3],那么执行语句 x.pop(0) 之后,x的值为___[2, 3]______。
执行代码 x, y, z = sorted([1, 3, 2]) 之后,变量y的值为___2___。
表达式 (1, 2, 3)+(4, 5) 的值为_______(1, 2, 3, 4, 5)___________。
表达式 dict(zip([1, 2], [3, 4])) 的值为_____________{1: 3, 2: 4}____________。
表达式 sorted(random.sample(range(5), 5)) 的值为_______[0, 1, 2, 3, 4]____ ____。
表达式 [i for i in range(10) if i>8] 的值为_____[9]___________。
已知列表 x = [1, 2],那么执行语句 x.extend([3]) 之后,x的值为_____[1, 2, 3]_____。
已知 x = {1:2, 2:3, 3:4},那么表达式 sum(x) 的值为____6_______。
已知 x = {1:2, 2:3, 3:4},那么表达式 sum(x.values()) 的值为____9_____。
已知列表 x = list(range(5)),那么执行语句 x.remove(3) 之后,表达式 x.index(4) 的值为___3_____。
已知列表 x = [1, 3, 2],那么执行语句 x.reverse() 之后,x的值为____[2, 3, 1] ___。已知字典 x = {i:str(i+3) for i in range(3)},那么表达式 ''.join([item[1] for item in x.items()]) 的值为______'345'_______。
已知列表 x = [1, 3, 2],那么执行语句 a, b, c = sorted(x) 之后,b的值为__2__。
表达式 set([1,2,3]) == {1, 2, 3} 的值为_____ True _______。
表达式 'abc' in 'abdcefg' 的值为_____ False ________。
已知x = list(range(20)),那么表达式x[-1]的值为_______19_____________。
已知x = [3],那么执行x += [5]之后x的值为________[3, 5]____________。
第3章 判断和循环语句
表达式 'ab' in 'acbed' 的值为___ False _____。
假设n为整数,那么表达式 n&1 == n%2 的值为_____ True ________。
关键字____ in ______用于测试一个对象是否是一个可迭代对象的元素。表达式 3 or 5 的值为___3_____。
在循环语句中,_____ break _____语句的作用是提前结束本层循环。在循环语句中,___ continue ____语句的作用是提前进入下一次循环。
第4章 字符串的使用
表达式 'abc' in ('abcdefg') 的值为______ True ________。
表达式 'abc' in ['abcdefg'] 的值为______ False ________。
表达式 '\x41' == 'A' 的值为______ True _______。Python语句''.join(list('hello world!'))执行的结果是_______'hello world!'_________。
已知列表对象x = ['11', '2', '3'],则表达式 max(x) 的值为_____'3'______。
已知 path = 'test.html',那么表达式 path[:-4]+'htm' 的值为____'test.htm'______。表达式 list(str([1,2,3])) == [1,2,3] 的值为______ False ________。
表达式 'abcabcabc'.rindex('abc') 的值为____6________。
表达式 'abcdefg'.split('d') 的值为________['abc', 'efg']__________。
表达式 r'c:\windows\notepad.exe'.endswith('.exe') 的值为______ True _______。
表达式 r'c:\windows\notepad.exe'.endswith(('.jpg', '.exe')) 的值为___ True ____。
表达式 'C:\\Windows\\notepad.exe'.startswith('C:') 的值为____ True _____。
表达式 len('Hello world!'.ljust(20)) 的值为____20_____。
表达式 'a' + 'b' 的值为______'ab'_______。
已知 x = '123' 和 y = '456',那么表达式 x + y 的值为______'123456'________。
表达式 'Hello world!'[-4:] 的值为________'rld!'________。
已知字符串 x = 'hello world',那么执行语句 x.replace('hello', 'hi') 之后,x的值为_____'hello world'_______。
表达式 'abcab'.strip('ab') 的值为_____'c'_____。
表达式 'abc.txt'.endswith(('.txt', '.doc', '.jpg')) 的值为____ True _______。
代码 for i in range(3):print(i, end=',') 的执行结果为_______0,1,2,__________。
假设math标准库已导入,那么表达式 eval('math.sqrt(4)') 的值为___2.0______。
已知x为非空列表,那么表达式 random.choice(x) in x 的值为_____ True ______。
表达式 'C:\\windows\\notepad.exe'.endswith('.exe') 的值为____ True ____。
表达式 'aaasdf'.strip('af') 的值为______'sd'________。
已知字符串编码格式utf8使用3个字节表示一个汉字、1个字节表示英语字母,那么表达式len('abc你好')的值为_______5________。
已知ord('A')的值为65并且hex(65)的值为'0x41',那么表达式'\x41b'的值为_____'Ab'___________。已知字典 x = {i:str(i+3) for i in range(3)},那么表达式 ''.join(x.values()) 的值为_____'345'_______。
第5章 函数
Python中定义函数的关键字是_______ def __________。
在函数内部可以通过关键字______ global __________来定义全局变量。
表达式 list(range(50, 60, 3)) 的值为________[50, 53, 56, 59]_______________。
已知 g = lambda x, y=3, z=5: x*y*z,则语句 print(g(1)) 的输出结果为___15____。
已知 f = lambda x: x+5,那么表达式 f(3) 的值为____8____。
已知 g = lambda x, y=3, z=5: x+y+z,那么表达式 g(2) 的值为___10_____。
已知函数定义 def func(*p):return sum(p),那么表达式 func(1,2,3) 的值为___6___。
已知 f = lambda x: 5,那么表达式 f(3)的值为_____5________。
第6章 面向对象程序设计
表达式 isinstance('abc', str) 的值为______ True __________。
表达式 isinstance('abc', int) 的值为______ False _________。
表达式 type(3) in (int, float, complex) 的值为____ True ________。
表达式 type('3') in (int, float, complex) 的值为____ False ________。
表达式 type(3) == int 的值为____ True ______。表达式type({}) == dict的值为______ True ___________。
表达式type({}) == set的值为_____ False __________。
判断题第1章 Python编程基础知识
Python是一种跨平台、开源、免费的高级动态编程语言。(对)
在Windows平台上编写的Python程序无法在Unix平台运行。(错)
不可以在同一台计算机上安装多个Python版本。(错)
已知 x = 3,那么赋值语句 x = 'abcedfg' 是无法正常执行的。(错)
Python采用的是基于值得自动内存管理方式。(对)在任何时刻相同的值在内存中都只保留一份。(错)
执行语句 from math import sin 之后,可以直接使用 sin() 函数,例如 sin(3)。(对)
Python变量名区分大小写,所以student和Student不是同一个变量。(对)
安装Python扩展库时只能使用pip工具在线安装,如果安装不成功就没有别的办法了。(错)
第2章 Python序列
Python支持使用字典的“键”作为下标来访问字典中的值。(对)
Python列表中所有元素必须为相同类型的数据。(错)
假设random模块已导入,那么表达式 random.sample(range(10), 20) 的作用是生成20个不重复的整数。(错)
假设random模块已导入,那么表达式 random.sample(range(10), 7) 的作用是生成7个不重复的整数。(对)
使用random模块的函数randint(1, 100)获取随机数时,有可能会得到100。(对)
Python内置的集合set中元素顺序是按元素的哈希值进行存储的,并不是按先后顺序。(对)
已知x = {1:1, 2:2},那么语句x[3] =3无法正常执行。(错)
第3章 判断和循环语句
如果仅仅是用于控制循环次数,那么使用for i in range(20)和for i in range(20, 40)的作用是等价的。(对)
在循环中continue语句的作用是跳出当前循环。(错)
在编写多层循环时,为了提高运行效率,应尽量减少内循环中不必要的计算。(对)
带有else子句的循环如果因为执行了break语句而退出的话,则会执行else子句中的代码。(错)
对于带有else子句的循环语句,如果是因为循环条件表达式不成立而自然结束循环,则执行else子句中的代码。(对)
在条件表达式中不允许使用赋值运算符“=”,会提示语法错误。(对)
第4章 字符串的使用
在Python中,任意长的字符串都遵守驻留机制。(错)
Python运算符%不仅可以用来求余数,还可以用来格式化字符串。(对)
Python字符串方法replace()对字符串进行原地修改。(错)
如果需要连接大量字符串成为一个字符串,那么使用字符串对象的join()方法比运算符+具有更高的效率。(对)
已知x为非空字符串,那么表达式 ''.join(x.split()) == x 的值一定为True。(错)
已知x为非空字符串,那么表达式 ','.join(x.split(',')) == x 的值一定为True。(对)
当作为条件表达式时,空值、空字符串、空列表、空元组、空字典、空集合、空迭代对象以及任意形式的数字0都等价于False。(对)
第5章 函数
定义函数时,即使该函数不需要接收任何参数,也必须保留一对空的圆括号来表示这是一个函数。(对)
在同一个作用域内,局部变量会隐藏同名的全局变量。(对)
形参可以看做是函数内部的局部变量,函数运行结束之后形参就不可访问了。(对)
假设已导入random标准库,那么表达式 max([random.randint(1, 10) for i in range(10)]) 的值一定是10。(错)
Python标准库random的方法randint(m,n)用来生成一个[m,n]区间上的随机整数。(对)
在定义函数时,某个参数名字前面带有一个*符号表示可变长度参数,可以接收任意多个普通实参并存放于一个元组之中。(对)
程序填空题第1章 Python编程基础知识
编写程序,生成一个包含20个随机整数的列表,然后对其中偶数下标的元素进行降序排列,奇数下标的元素不变。
import random
x = [random.randint(0,100) for i in range(20)]
print(x)
y = x[::2]
y.sort(reverse=True)
_______ x[::2] = y ___________
print(x)
编写函数,判断3,4,5三个数字是否能构成三角形的三条边。
def sjx(a, b, c):
if _____ a + b > c and a + c > b and b + c > a: ________
return ('能构成三角形')
else:
return ('不能构成三角形')
result1 = sjx(3, 4, 5)
print(result1)
输入三个整数存放在列表中,并且把列表中三个数按照从小到大排列,请补充完整。num = []
for i in range(3):
n = int(input('integer:'))
num.append(n)
____ num.sort()__________
print(num)
定义一个求圆面积的函数circlearea,实现圆面积的计算,请补充完整。
import math
def circlearea(r):
if isinstance(r, (int,float)):
return ______ math.pi*r*r ________
else:
print('你输入的不是整数或浮点数。')
area=circlearea(4)
print(area)
编写一个程序,将用户输入的两个变量进行相互交换。要求不使用临时变量实现,请补充完整。
a = input('输入 a 值: ')
b = input('输入 b 值: ')
___ a,b = b,a ___________
print('交换后 a 的值为: {}'.format(a))
print('交换后 b 的值为: {}'.format(b))
输入三个整数存放在列表中,并且把列表中三个数按照从大到小排列,请补充完整。num = []
for i in range(3):
m = int(input('integer:'))
num.append(m)
____ num.sort(reverse=True)_________
print(num)
程序分析题
阅读下面一段示例程序:
d={'Jack':'jack@mail.com','Tom':'Tom@mail.com'}
d['Jim']='Jim@sin.com'
del d['Tom']
s=list(d.keys())
s=sorted(s)
print(s)
程序执行结果_______['Jack', 'Jim']_________
阅读下面一段示例程序:
s=['a','b']
s.append([1,2])
s.extend([5,6])
s.insert(9,8)
s.pop()
s.remove('b')
s.reverse()
print(s)
程序执行结果______[6, 5, [1, 2], 'a']________
阅读下面一段示例程序:
myStr = 'Hello,World'
num = [0, 0]
for s in myStr:
if s.islower():
num[0] += 1
if s.isalpha():
num[1] += 1
print(num)
程序执行结果_____[8, 10]________
阅读下面一段示例程序:
def list_sum(t):
total=0
res=[] for i in t:
total += i
res.append(total)
return res
t=[1,2,3,4,5]
print(list_sum(t))
程序执行结果______[1, 3, 6, 10, 15]________
阅读下面一段示例程序:
def demo(newitem, old_list=None):
if old_list is None:
old_list = []
new_list = old_list[:]
new_list.append(newitem)
return new_list
print(demo(789, ['a', 'b']))
程序执行结果_____['a', 'b', 789]________
阅读下面一段示例程序:
def is_palindrome(n):
n=str(n)
m=n[::-1]
return n==m
result = is_palindrome('上海自来水来自海上')
print(result)
程序执行结果______ True ________
程序设计题
编程题:标准库itertools中的cycle()函数用来把有限长度可迭代对象中的元素首尾相接构成并返回一个无限循环的环,类似于原可迭代对象中的元素进行无限次的重复。编写生成器函数,模拟标准库itertools中cycle()函数的工作原理。
答案:
def my_cycle(iterable):
while True:
for item in iterable:
yield item
mc = my_cycle([1,2,3])
for i in range(20):
print(next(mc), end=' ')
编写递归函数,判断给定的字符串text是否回文,也就是从前往后读和从后往前读都是一样的字符串。编程对texts = ( ‘eye’, ‘rotator’, ‘madam’, ‘level’, ‘indeed’, ‘sky’, ‘python’, ‘画中画’, ‘天外天’, ‘拜拜’, ‘您吃饭了吗’)进行判断是否回文。
答案:
def check(text):
if len(text) in (0,1):
return True
if text[0] != text[-1]:
return False
return check(text[1:-1])
texts = ('eye', 'rotator', 'madam', 'level',
'indeed', 'sky', 'python',
'画中画', '天外天', '拜拜', '您吃了吗')
for text in texts:
print(f'{text}:{check(text)}')
猜数游戏,预设一个0~9之间的整数,通过用户输入的数据,进行判断。如果大于预设的数,显示’太大’;小于预设的数,显示’太小’,如此循环,直至猜中该数,显示’恭喜!你猜中了!’,请补充完整。
答案:
num = 7
while True:
guess = int(input('请输入你猜的数(0~9):'))
if guess == num:或if num==guess:
print('恭喜!你猜中了!')
break
elif guess > num:
print('太大')
else:
print('太小')