1.在Python程序中,控件结构为:
A.指示程序中语句的执行顺序
B.管理控制字符的输入和输出
C.定义程序特定的数据结构
D.决定程序启动之前和终止之后发生的情况
答案:A解析:控制结构决定程序中哪些语句将被执行,以及以什么顺序执行,从而允许语句被跳过或重复执行。
2.什么表示Python中语句块或套件的结束?
A.缩进的行比前一行少
B.注释
C.end
D.}
答案:A解析:在Python中,没有特定的标记表示块的结束。在Python中,块是按照越位规则通过缩进定义的。当语句出现在比前一行缩进少的行上时,它表示一个块的结束。
3.以下代码段的输出是什么:
ifbarin{foo:1,bar:2,baz:3}:
print(1)
print(2)
ifainqux:
print(3)
print(4)
A.
B.它不会产生任何输出。
C.4
D.
答案:D解析:第2行到第5行都是属于第一个if语句的块的一部分。因为{foo:1,bar:2,baz:3}中的bar为真,所以执行该块。执行第2行和第3行上的print()语句。但是,第4行上的条件语句(qux中的a)为False,因此跳过了第5行上的print()语句。第6行中的print()语句不是这两个if语句的一部分,所以它是无条件执行的。
4.假设您定义了以下变量:a=,b=50
答案:
ifab:
m=a
else:
m=b
这通常被认为更符合python的风格。但是这个问题特别要求使用if/else语句。
实际上,你最可能做的是使用Python的内置min()函数:
m=min(a,b)
5.下面if/elif/else语句会引发一个KeyError异常吗?
d={a:0,b:1,c:0}
ifd[a]0:
print(ok)#
elifd0:
print(ok)##
elifd[c]0:
print(ok)###
elifd[d]0:
print(ok)###
else:12
print(notok)
A.会B.不会
答案:B
解析:d[d]指的是一个无效的键。但是elif子句中的表达式从未求值。一旦第5行上的elifd子句被发现为True,剩下的elif子句就会因为短路求值而被跳过。
Python编程从入门到实践京东月销量好评率99%无理由退换京东配送官方店¥54.9购买6.假设x和y的定义是正确的,那么下面哪个是Python中有效的if/else语句:
A.
ifxy:print(foo)
elifyx:print(bar)
else:print(baz)
B.ifxy:print(foo)else:print(bar)
C.ifxy:ifx10:print(foo)
D.ifxy:print(foo);print(bar);print(baz)
答案:AD解析:
A.为单个if指定多个分号分隔的语句在语法上是正确的,但是PEP8不鼓励这样做,除非是非常简单的情况。分号的绑定最紧密,因此如果表达式为真,则执行所有语句(在本例中是这样),如果分号为假,则不执行任何语句。
D.您可以在同一行指定语句,就像if、elif或else一样,紧跟在冒号后面。然而,这也不是理想的样式。
7.假设定义了两个变量x和y。
编写一个存根if语句来计算x是否小于y。即使条件为true,该语句也不应执行任何操作。
答案:
ifxy:
pass
解析:因为代码块是通过Python中的缩进定义的,所以必须要缩进一些东西。块不能为空。该pass语句用作不执行任何操作的语句,可用于定义类似于上面显示的代码存根。
8.下列语句得到的结果是什么?
a+xif.isdigit()elsey+b
A.axb
B.axyb
C.ab
D.ax
答案:D,
解析:条件表达式的优先级低于其他运算符,因此该+运算符的绑定更为紧密。显示的表达式与此等效:
(a+x)if.isdigit()else(y+b)
ax
既然.isdigit()是True,输出就是a+x或ax。要使条件表达式首先被求值,应将括号括起来如下:
a+(xif.isdigit()elsey)+baxb
在这种情况下,带括号的条件的值为x,整个表达式为axb