好久不见
本系列文章已加入“维权骑士”(rightknights.com)的版权保护计划
本文原创内容受到保护
之前的18篇文章中,我们基本较完整地接触了Python的基础语法和一些实用技巧。本文将以题目的回顾为主,重新整理之前文章中的知识体系。
第一部分:基本概念(对应文章2,3)
1.
代码的输出结果是?
>>> spam = "7"
>>> spam = spam + "0"
>>> eggs = int(spam) + 3
>>> print(float(eggs))
2.
代码的输出结果是?
>>> word = input("Enter a word: ")
Enter a word: cheese
>>> print(word + ' shop')
3.
代码的输出结果是?
>>> x = 5
>>> y = x + 3
>>> y = int(str(y) * 3 + "2")
>>> print(y)
4.
填空,代码的作用是声明一个变量,给它+5,之后输出变量值11倍的值。
>>> x = 4
>>> x __ 5
>>> print ____
5.
代码的输出结果是?
>>> x = 3
>>> num = 17.0
>>> print(num % x)
第一部分答案
第一题
73.0
——————————
第二题
cheese shop
——————————
第三题
8882
——————————
第四题
+=
(str(x) * 2)
——————————
第五题
2.0
第二部分:程序基本结构(对应文章4,5)
1.
代码的输出结果是?
list = [1, 1, 2, 3, 5, 8, 13]
print(list[list[4]])
2.
选择,这份代码的作用是?
for i in range(10):
if not i % 2 == 0:
print(i+1)
打印1到9之间的所有奇数
打印2到10之间的所有偶数
打印0到8之间的所有偶数
3.
这份代码的输出结果有多少行?
while False:
print("Looping...")
4.
填空。代码的意思是:如果数组包含偶数个元素,就输出数组的第一个元素。
list = [1, 2, 3, 4]
if ____(list) % 2 == 0:
print(list[ ___ ])
5.
代码的输出结果是?
letters = ['x', 'y', 'z']
letters.insert(1, 'w')
print(letters[2])
第二部分答案
第一题
8
——————————
第二题
打印2到10之间的所有偶数
——————————
第三题
——————————
第四题
len
——————————
第五题
y
第三部分:函数与模块(对应文章6,7)
1.
填空,以定义一个函数。该函数将两个数字作为参数,并返回较小的数字。
____ min(x, y):
if x
return x
else:
_____ y
2.
重新排列代码的顺序,以定义一个函数。该函数计算从0到其参数的所有数字的总和。
for i in range(x):
return res
res = 0
res += i
def sum(x):
3.
如果像下面这样导入,你会如何引用randint函数?
fromrandomimportrandintasrnd_int
4.
这份代码输出的最大值是?
def print_nums(x):
for i in range(x):
print(i)
return
print_nums(10)
5.
代码的输出结果是?
def func(x):
res = 0
for i in range(x):
res += i
return res
print(func(4))
第三部分答案
第一题
def
:
return
——————————
第二题
def sum(x):
res = 0
for i in range(x):
res += i
return res
——————————
第三题
rnd_int
——————————
第四题
——————————
第五题
6
第四部分:异常情况和文件(对应文章8,9)
1.
选择,下面这份代码不会输出哪一个数字?
try:
print(1)
print(20 / 0)
print(2)
except ZeroDivisionError:
print(3)
finally:
print(4)
2.
填空,以二进制模式打开文件。
open("test.txt", "______")
3.
填空,以尝试打开文件并从文件中读取内容。如果过程中引发了异常,请输出一个"Error"。
try:
____ open("test.txt") as ____:
print(f.read())
____
print("Error")
4.
这份代码输出的最大值是?
try:
print(1)
assert 2 + 2 == 5
except AssertionError:
print(3)
except:
print(4)
第四部分答案
第一题
2
——————————
第二题
b
——————————
第三题
with
f
except:
——————————
第四题
3
第五部分:更多数据类型(对应文章10,11,12)
1.
对于元组,我们可以进行节选(slice)操作吗?
2.
选择,以下哪个对于数组的操作会翻转这个数组?
numbers[::]
numbers[-1::]
numbers[::-1]
3.
哪一种数据结构可以被描述为“不可变的数组”?
4.
没有return语句的函数,会返回什么?
5.
代码的输出结果是?
nums = (55, 44, 33, 22)
print(max(min(nums[:2]), abs(-42)))
第五部分答案
第一题
可以
——————————
第二题
numbers[::-1]
——————————
第三题
元组
——————————
第四题
None
——————————
第五题
44
第六部分:函数式编程(对应文章13,14,15)
1.
代码的输出结果是?
nums =
nums = & nums
nums = filter(lambda x: x > 1, nums)
print(len(list(nums)))
2.
代码的输出结果是?
def power(x, y):
if y == 0:
return 1
else:
return x * power(x, y-1)
print(power(2, 3))
3.
填空。要求用到匿名函数,代码的作用是计算表达式x *(x + 1),并传递参数为6。
a = ( _____ x: x _____ (x+1)) _____
print(a)
4.
填空,要求只保留数组中的偶数。
nums = [1, 2, 8, 3, 7]
res = list( _____( _____ x: x% _____ ==0, nums))
print(res)
5.
填空,要求输出在集合a中且不在集合b中的元素。
print( _____ _____ _____ )
第六部分答案
第一题
2
——————————
第二题
8
——————————
第三题
lambda * (6)
第三题完整代码如下:
a = ( lambda x: x * (x+1)) (6)
print(a)
——————————
第四题
filter lambda 2
第四题完整代码如下:
nums = [1, 2, 8, 3, 7]
res = list( filter( lambda x: x% 2 ==0, nums))
print(res)
——————————
第五题
a - b
第五题完整代码如下:
print( a - b )
第七部分:面向对象编程(对应文章16,17,18)
1.
类方法和静态方法有什么区别?
2.
代表传入的实例和类的常用参数名称是什么?
3.
在实例化对象之前会自动调用什么方法?
第七部分答案
第一题
类方法允许以参数的形式把调用此方法的类传递给这个类方法,静态方法不传入任何外部参数
——————————
第二题
self 和 cls
——————————
第三题
__init__
Python入门-全系列
完
可以在评论区留下有疑问的题号和你的答案。
需要说明的一点是,本系列文章的最终目的是实现网络爬虫,而Python知识只是实现网络爬虫技术的基石之一。所以下个系列将会介绍HTML语言的相关知识,不过请放心,HTML这部分知识我将尽量以很少的篇幅说清楚。在HTML语言的相关介绍结束之后,我将开始编写网络爬虫技术相关文章。请持续关注。
部分测试题来自网络
所有例子和测试题均经过Python3.7 IDLE实际运行验证
有任何问题和建议可直接向公众号发消息、在评论区发表评论或者添加微信进行交流。
领取专属 10元无门槛券
私享最新 技术干货