《Python程序设计》第3次作业
一、单选题(共10题,55分)
1、x = True
y = False
z = False
if not x or y:
print(1)
elif not x or not y and z:
print(2)
elif not x or y or not y and x:
print(3)
else:
print(4)
A、 1
B、 2
C、 3
D、 4
正确答案: C
解析:优先级顺序为 NOT、AND、OR。答案C正确
2、if None:
print("Hello")
输出的结果是( )?
A、False
B、 Hello
C、 没有任何输出
D、 语法错误
正确答案: C
解析:在python中 None, False, 空字符串"", 0, 空列表[], 空字典{}, 空元组()都相当于False ,即:
代码如下:
not None == not False == not '' == not 0 == not [] == not {} == not ()
代码中经常会有变量是否为None的判断,有三种主要的写法:
第一种是`if x is None`;
第二种是 `if not x:`;
第三种是`if not x is None`(这句这样理解更清晰`if not (x is None)`) 。
3、for i in [1, 0]:
print(i+1)
以上代码输出结果为?
A、2
1
B、 [2,1]
C、 [1,0]
D、 0
正确答案: A
4、Python 中,for 和 while 可以有 else 语句?
A、 只有 for 才有 else 语句。
B、 只有 while 才有 else 语句。
C、for 和 while 都可以有 else 语句。
一般格式是:
for <循环变量> in <遍历结构> : | while <条件> : |
D、 for 和 while 都没有 else 语句。
正确答案: C
5、程序代码:
i = sum = 0
while i <= 4:
sum += i
i = i+1
print(sum)
以上代码输出的结果是?
A、 0
B、 10
C、 6
D、 以上结果都不对
正确答案: B
6、while 6 == 6:
print('6')
以上Python代码输出的结果是( )。
A、 输出 6
B、 输出6次 6
C、无限次输出 6,直到程序关闭。
D、 语法错误
正确答案: C
7、迭代输出序列时(如:列表)使用 for 比 while 更好?
A、 错误,while 比 for 更好。
B、 正确
C、 错误,while 不能用于迭代系列。
D、 错误,for 和 while 都不能用于迭代系列。
正确答案: B
解析:
正确。迭代输出序列时(如:列表)使用 for 比 while 更好。
while 可以用于迭代系列,只是不能像for那样,输出其中的内容,while判断是对于迭代系列,只判断是不是None类型
8、正则表达式是一种用来匹配字符串的强有力的武器。
设计思想是用一种描述性的语言来给字符串定义一个规则,
凡是符合规则的字符串,就认为它“匹配”,否则就不匹配。
#示例:
import re # 导入Python的re模块
pattern = r'(13[4-9]\d{8})|(15[01289]\d{8})$'
#中国移动手机号码规则 以13开头,第3位是【4-9】之一,后面是8位数字。
# 或者以15开头,第3位是【01289】之一,后面是8位数字。
print("为你检验某一手机号码是否是有效的中国移动手机号码。“)
mobile =input( '请输入手机号码:')
match = re.match(pattern,mobile) # 进行模式匹配
if match == None: # 判断是否为None,为真表示匹配失败
print(mobile,'不是有效的中国移动手机号码。')
else:
print(mobile,'是有效的中国移动手机号码。')
上面示例语句中,哪些语句是体现正则表达式应用的关键?
A、
import re
pattern = r'(13[4-9]\d{8})|(15[01289]\d{8})$'
match = re.match(pattern,mobile)
B、
mobile =input( '请输入手机号码:')
print(mobile,'不是有效的中国移动手机号码。')
C、
print("为你检验某一手机号码是否是有效的中国移动手机号码。“)
mobile =input( '请输入手机号码:')
D、
if match == None: # 判断是否为None,为真表示匹配失败
print(mobile,'不是有效的中国移动手机号码。')
else:
print(mobile,'是有效的中国移动手机号码。')
正确答案: A
9、name = input("输入姓名:")
print("{}同学,学好Python,前途无量!".format(name))
print("{}大侠,学好Python,大展拳脚!".format(name[0]))
print("{}哥哥,学好Python,人见人爱!".format(name[1:]))
问:运行上面程序,输入姓名:李俊
输出的结果是( )
A、
李俊同学,学好Python,前途无量!
李俊大侠,学好Python,大展拳脚!
李俊哥哥,学好Python,人见人爱!
B、
{李俊}同学,学好Python,前途无量!
{李}大侠,学好Python,大展拳脚!
{俊}哥哥,学好Python,人见人爱!
C、
李俊同学,学好Python,前途无量!
李大侠,学好Python,大展拳脚!
俊哥哥,学好Python,人见人爱!
D、
李俊{}同学,学好Python,前途无量!
李{}大侠,学好Python,大展拳脚!
俊{}哥哥,学好Python,人见人爱!
正确答案: C
10、语句 x = 3==3, 5
执行结束后,变量x的值是 ( )。
#提示例:
x = 3==2, 8
print(x)
执行结束后,输出变量x的值:
(False, 8)
A、 (False, 5)
B、 (3==3, 5)
C、 (True, 5)
D、 (3, 5)
正确答案: C
二、多选题(共3题,16.5分)
1、关于is 和 ==的区别,下面陈述正确的是( )
A、 is 和==都是用来 比较python对象的
B、 python对象包含三个基本元素, id, type(数据类型), value(值)
C、 is 比较对象id, 判断对象是否为同一实例对象,是否指向同一内存地址
D、 == 判断是,两个对象的内容是否相等
正确答案: ABCD
2、关于正则表达式,下面描述正确的是: ( )
A、 正则表达式元字符“^”一般用来表示从字符串开始处进行匹配,用在一对方括号中的时候则表示反向匹配,不匹配方括号中的字符。
B、 正则表达式元字符“\s”用来匹配任意空白字符。
C、 正则表达式’^\d{18}|\d{15}$’只能检查给定字符串是否为18位或15位数字字符,并不能保证一定是合法的身份证号。
D、 正则表达式 元字符“\d”用来匹配任意数字字符。
正确答案: ABCD
解析:全对
3、阅读下面python程序:
for i in range(1, 10): # 外循环,控制行数 循环9次
for j in range(1, i+1):
print(i, "*", j, "=", i*j, end=" ") # 在print语句中end=" "表示不换行
print("") # 换行
下面叙述正确的是( )。
A、 这是一个利用到双循环技术的程序,
B、 程序的功能是:输出一个9行9列排列的乘法九九表。
C、 程序的功能是:输出一个9行10列排列的乘法表。
D、循环语句的基本格式是:
for 循环变量 in range(初值, 终值, 步长值):
循环体语句
程序中,i、j是循环变量,i 控制外循环次数,j 控制内循环次数。 步长值默认为1。
正确答案: ABD
三、填空题(共3题,17.5分)
1、已知 x = 3,那么执行语句 x += 6 之后,x的值为( )。
正确答案:
第1空: 9
2、已知 x = 3,并且id(x)的返回值为 496103280,那么执行语句 x += 6 之后,表达式 id(x) == 496103280 的值为( )。(提示: True 或者 False)
x=3
print(x>=1) 输出的结果是:( )
正确答案:
第1空: False
第2空: True
3、已知 x = 5,那么执行语句 x *= 6 之后,x的值为 ( )。
正确答案:
第1空: 30
四、判断题(共2题,11分)
1、用一行代码实现变量数值交换
a, b = b, a
正确答案: 正确
2、某人编写了下面程序:
k=1
while k<=10:
print("**********")
print("&&&&&")
有人说:这是个“死循环”程序。
这个人说的正确吗?
正确答案: 正确

