一、填空题
1.Python源代码程序编译后的文件扩展名为_________。
答案:pyc
2.使用pip工具升级科学计算扩展库numpy的完整命令是_________________。
答案:pip install -- upgrade numpy
3.使用pip工具查看当前已安装的Python扩展库的完整命令是_____________。
答案:pip list
4.查看变量类型的Python内置函数是________________。
建立一个多少钱答案:type( )
5.使用运算符测试集合包含集合A是否为集合B的真子集的表达式可以写作_______。
答案:A<B
6.语句x = 3==3, 5执行结束后,变量x的值为_____________。
答案:(True, 5)
7.已知 x = 3,那么执行语句 x += 6 之后,x的值为_______________。
答案:9
8.假设列表对象aList的值为[3, 4, 5, 6, 7, 9, 11, 13, 15, 17],那么切片aList[3:7]得到的值是______________________。
答案:[6, 7, 9, 11]
9.使用列表推导式生成包含10个数字5的列表,语句可以写为_______________。
答案:[5 for i in range(10)]
10.假设有列表a = ['name', 'age', 'sex']和b = ['Dong', 38, 'Male'],请使用一个语句将这两个列表的内容转换为字典,并且以列表a中的元素为“键”,以列表b中的元素为“值”,这个语句可以写为_____________________。
答案:c = dict(zip(a, b))
11.已知a = [1, 2, 3]和b = [1, 2, 4],那么id(a[1])==id(b[1])的执行结果为___________。
答案:True
width在css中什么意思12.表达式 int('123', 16) 的值为_________。
答案:291
13.Python安装扩展库常用的是_______工具。
答案:pip
14.切片操作list(range(6))[::2]执行结果为________________。
答案:[0, 2, 4]
15.使用切片操作在列表对象x的开始处增加一个元素3的代码为_________。
答案:x[0:0] = [3]
二、secondary school判断题
1.Python是一种跨平台、开源、免费的高级动态编程语言。
答案:对
2.Python 3.x完全兼容Python 2.x。
答案:错
3.扩展库os中的方法remove()可以删除带有只读属性的文件。
答案:错
4.使用内置函数open()且以”w”模式打开的文件,文件指针默认指向文件尾。
答案:错
5.在Python中可以使用if作为变量名。
答案:错
6.在Python 3.x中可以使用中文作为变量名。
答案:对
7.Python变量名必须以字母或下划线开头,并且区分字母大小写。
答案:对
8.加法运算符可以用来连接字符串并生成新字符串。
答案:对
9.9999**9999这样的命令在Python中无法运行。
答案:错
10.Python代码的注释只有一种方式,那就是使用#符号。
答案:错
11.调用函数时,在实参前面加一个星号*表示序列解包。
答案:对
12.Python支持使用字典的“键”作为下标来访问字典中的值。
答案:对
13.列表可以作为字典的“键”。
答案:错
14.元组可以作为字典的“键”。
答案:对
15.字典的“键”必须是不可变的。
答案:对
三、简答题
1.如何理解Python中基于值的内存管理模式?
答案:python基础代码练习Python采用的是基于值的内存管理方式,如果在同一个程序中或者交互模式下同一个语句中为不同变量赋值相同值,这个值在内存中只有一份,多个变量指向同一块内存地址。另外,Python程序中的变量不存储值,而是存储值得引用,列表、元组、字典、集合等可迭代对象中包含的也是元素的引用。在调用函数时,也是把实参的引用传递给形参。
2.Python运算符/和//有什么不同,并举例说明。
答案:运算符“/”对应真除法,运算结果是实数。运算符“//”对应整除,运算结果为“向下取整”后的整数。例如,15/4的结果为3.75,而15//4的结果是数轴上比3.75小的最大整数,也就是3。再例如,-15/4的结果为-3.75,而-15//4的结果是数轴上比-3.75小的最大整数,也就是-4。
3.从Python列表的尾部进行增加或删除元素具有怎样的优势?
答案:Python总是会保证列表中的相邻元素的引用之间没有空隙,在增加和删除元素时会自动进行内存空间的收缩和扩张。在列表中间位置插入元素时,该位置后面的所有元素会向后移动,下标会发生改变,并且元素的移动会带来额外的开销;同理,在列表中间位置
删除元素时,后面的元素向前移动,下标会发生改变,并且元素的移动会带来额外的开销。
4.分析Python逻辑运算符or的短路求值的特性。
答案:逻辑运算符“or”具有惰性求值特点,只计算必须计算的值。计算使用“or”连接的表达式值时,从左向右依次计算每个子表达式,直到遇到某个子表达式的值等价于True时就停止,后面的所有子表达式都不再计算,并且把最后计算的子表达式的值作为整个表达式的最终值。假设有表达式“子表达式1 or 子表达式2”,如果子表达式1的值等价于True,那么无论表达式2的值是什么,整个表达式的值总是等价于True。因此,不会再计算表达式2的值。
5.Python中的异常和错误有什么区别?
答案:异常是指因为程序执行过程中出错而在正常控制流以外采取的行为。严格来说,语法错误和逻辑错误不属于异常,但有些语法错误往往会导致异常,例如由于大小写拼写错误而访问不存在的对象,或者试图访问不存在的文件,等等。
6.元组与列表的区别有哪些?
答案:元组一旦定义就不允许更改。元组没有append()、extend()和insert()等方法,无法向元组中添加元素。元组没有remove()或pop()方法,也无法对元组元素进行del操作,不能从元组中删除元素。元组的速度比列表更快。如果定义了一系列常量值,而所需做的仅是对它进行遍历,那么一般使用元组而不用列表。元组对不需要改变的数据进行“写保护”将使得代码更加安全。元组可用作字典的“键”,也可以作为集合的元素。列表不能作为字典的“键”,包含列表、字典、集合或其他类型可变对象的元组也不能做字典的“键”。
7.break和continue语句的使用特点有哪些?
答案:break语句在while循环和for循环中都可以使用,一般放在if选择结构中,一旦break语句被执行,将使得整个循环提前结束。continue语句的作用是终止当前循环,并忽略continue之后的语句,然后回到循环的顶端,提前进入下一次循环。除非break语句让代码更简单或更清晰,否则不要轻易使用。小学生机器人编程软件
8.作为字符串的常用方法,find()、rfind()、index()、rindex()、count()功能分别是什么?
答案:find()和rfind方法分别用来查一个字符串在另一个字符串指定范围(默认是整个字符串)中首次和最后一次出现的位置,如果不存在则返回-1;index()和rindex()方法用来返回一个字符串在另一个字符串指定范围中首次和最后一次出现的位置,如果不存在则抛出异常;count()方法用来返回一个字符串在当前字符串中出现的次数。
9.字符串中的split()、rsplit()、partition()、rpartition()方法,可以实现哪些功能?
答案:split()和rsplit()方法分别用来以指定字符为分隔符,把当前字符串从左往右或从右往左分隔成多个字符串,并返回包含分隔结果的列表;partition()和rpartition()用来以指定字符串为分隔符将原字符串分隔为3部分,即分隔符前的字符串、分隔符字符串、分隔符后的字符串,如果指定的分隔符不在原字符串中,则返回原字符串和两个空字符串。
10.Python中形参与实参的区别有哪些?
答案:函数定义时括弧内为形参,一个函数可以没有形参,但是括弧必须要有,表示该函数不接受参数。函数调用时,将实参的引用传递给形参。在定义函数时,对参数个数并没有限制,如果有多个形参,需要使用逗号进行分隔。
四、编程题
1.假设有一段英文,其中有单独的大写字母I误写为小写i,请编写程序进行纠正。
答案:
from string import ascii_letters
text = 'i am a teacher,i am man, and i am 38 years old.I am not a businessman.'
result = ''
for index, ch in enumerate(text):
if ch == 'i':
t = text[max(0,index-1):index+2]
if sum(unt, ascii_letters)) == 1:
ch = 'I'
result = result + ch
print(text)
print(result)
2.编写函数,模拟内置函数sorted()
答案:
from copy import deepcopy
def mySort(iterable, key=None, reverse=False):
lst_t = deepcopy(iterable)
if key is None:
lst = deepcopy(iterable)
else:
lst = list(map(key, lst_t))
length = len(lst)
for i in range(0, length):
m = i #假设剩余元素中第一个最小或最大
for j in range(i+1, length): #扫描剩余元素
#如果有更小或更大的,就记录下它的位置
exp = 'lst[j] < lst[m]'
sql多表查询列名不明确 if reverse:
exp = 'lst[j] > lst[m]'
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论