【PythonCode】这些题,不会做就选A

文章通过一系列Python编程题目,强调基础重要性,指出常见错误,如未定义变量、字符串格式化、列表切片、字典操作等,并提供了相应的正确理解和解决方案。同时,文章提醒读者注意循环结构、字符串操作和异常处理的细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【PythonCode】这些题,不会做就选A

前言

在很多高大上的项目中,一个花费很长时间、消耗大量人力物力才查出来的BUG,经常是一个符号错误、一个值传错、一个基本函数的用法没有考虑周到等基本问题,所以基础不牢、地动山摇,真的不是开玩笑。
23年起,我决定开一个新系列,从题目入手,把那些零碎的知识点总结和记录下来。
由于工作一直很忙,所以不能保证一次性更新很多,大概每次十题,慢慢积累。

1. 以下程序的输出结果是

for num in range(1, 4):
    sum *= num
print(sum)

A. TypeError出错
B. 6
C. 7
D. 7.0

这段代码会报错,因为sum变量没有被定义和没有初始值,Python解释器无法识别sum的数据类型。在for循环前加一行赋值语句: sum = 1 就正常了。

完整报错信息为:

TypeError: unsupported operand type(s) for *=: 'builtin_function_or_method' and 'int'

2. 以下程序的输出结果是

for i in "Summer":
    if i == "m":
        break
        print(i)

A. 无输出
B. m
C. mm
D. mmer

在Python的循环语句中,执行到break关键字时,不再执行循环体中后续的代码,并退出循环。

通常是在循环体中加一个条件语句,满足此条件后跳出循环。

3. 以下格式化字符串使用错误的是
A.

print('%(one)s %s' % ('hello', 'world'))

B.

print('{} {}'.format('hello', 'world'))

C.

print('%(one)s %(two)s' % {'one': 'hello', 'two': 'world'})

D.

print('%s %s' % ('hello', 'world'))

Python字符串拼接时,%s用于给待拼接的字符串“占位”,字符串和拼接内容之间用 % 连接。

如果只有一个%s,则在后面接着写待拼接的字符串,如果有多个%s,待拼接的多个字符串组成元组。如果占位时定义了变量名,如%(one)s,则待拼接的字符串要用字典的方式传入。定义变量和不定义变量的语法不能混用。

format()函数拼接时用大括号给拼接内容“占位”,如果大括号中没有索引和变量,则format()中按顺序传入拼接的内容。

4. 以下代码的输出结果是

s = ['seashell', 'gold', 'pink', 'brown', 'purple', 'tomato']
print(s[1:4:2])

A. [‘gold’, ‘brown’]
B. [‘gold’, ‘pink’, ‘brown’]
C. [‘gold’, ‘pink’, ‘brown’, ‘purple’, ‘tomato’]
D. [‘gold’, ‘pink’]

列表的切片语法为:list[start : end : step],start为开始索引,默认为0可以省略,end为结束索引,-1表示最后,step为步长,默认为1可以省略。切片结果取左开右闭,不包含结束索引的值。

s[1: 4: 2]表示切片的开始索引是1,结束索引是4,步长是2,结果为[‘gold’, ‘brown’]。

5. 以下代码的输出结果是

d = {'大海': '蓝色', '天空': '灰色', '大地': '黑色'}
print(d['大地'], d.get('大地', '黄色'))

A. 黑色 黑色
B. 黑色 灰色
C. 黑色 蓝色
D. 黑色 黄色

字典通过dict[key]可以读取到key对应的value,d[‘大地’]的值为 黑色 。

dict.get(key[, value])也可以根据键读取值,键值对不存在不会报错。key是字典中要查找的键,value是可选参数,如果指定键的值不存在时,返回value指定的值。

在本题中,d.get(‘大地’, ‘黄色’)中的 ‘大地’ 已有对应的值 ‘黑色’,所以优先返回键对应的值:黑色。

6. 当用户输入 abc 时,以下代码的输出结果是

try:
    n = 0
    n = input("请输入一个整数:")
    def pow10(n):
        return n**10
except:
    print("程序执行错误")

A. 程序没有任何输出
B. 输出:abc
C. 输出:0
D. 输出:程序执行错误

python的变量是动态类型,给变量赋值的数据是什么类型,变量就自动变成对应的类型。

在本题的代码中,变量n先被赋值为0,数据类型为整数int,然后变量n接收用户输入的值,input()函数的返回值默认是一个字符串,所以变量n的数据类型变成了字符串str。

虽然input()函数中有信息提示用户输入一个整数,但并不能限制用户输入什么样的字符,如果用户输入abc,则变量n的值就是字符串abc。即使用户输入的是整数,经过input()函数返回后也会变成数字样式的字符串。。

在函数pow10(n)中,功能是对参数n求10次方,这里的n是函数的形参,参数n的作用域只在函数内部,不受外部的变量n影响。

假如调用pow10(n)函数,将前面用户输入的字符串传给函数,字符串不能进行指数运算,函数会报错。不过,题中的代码只定义了函数pow10(n),并没有调用,因此不会执行函数,也不会报错,更不会触发异常捕获。

所以执行程序后代码没有任何输出。

7. 以下代码的输出结果是

a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
s = 0
for c in a:
    for j in range(3):
        s += c[j]
print(s)

A. 45
B. 24
C. 0
D. 以上答案都不对

本题的列表a是一个嵌套的列表,在第一层for循环遍历时,c获取的是a中的子列表。在第二层for循环中,j是遍历range(3),依次是0,1,2,每个子列表c的长度刚好都是3,用j作为索引刚好可以依次取出c中的所有数。最后将这些数全部加给s。

所以最后的结果是取出a的子列表中的所有数相加,s的结果是45。

8. 以下关于循环结构的描述,错误的是

A. 遍历循环使用 for <循环遍历> in <循环结构> 语句,其中循环结构不能是文件。
B. 使用 range() 函数可以指定 for 循环的次数。
C. for i in range(5)表示循环5次,i 的值是0到4。
D. 用字符串做循环结构的时候,循环的次数是字符串的长度。

在python中,可以从文件对象中遍历内容,例如下面的代码可以遍历文件test.txt中的每一行内容。

fd = open('test.txt', 'r')
for line in fd:
    print(line)

range()函数可以控制for循环的次数,并且每次遍历的数字也可以在for循环的循环体中使用。

用字符串、列表、元组、字典等做循环结构时,循环的次数都取决于数据的长度。

9. 以下关于字符串类型的操作的描述,错误的是

A. 想获取字符串 str 的长度,用字符串处理函数 str.len()。
B. 想把一个字符串 str 的所有字符都大写,用 str.upper()。
C. str.replace(x,y)方法把字符串 str 中所有的 x 子串都替换成 y 。
D. 设 x = ‘aa’,则 x * 3 的结果是 ‘aaaaaa’。

获取字符串str的长度,使用len(str),len()函数是python的内置函数,而str对象没有len()方法,如果用str.len()会报错。

str对象的upper()方法可以将str中的字母全部转换成大写,成对的lower()方法则是将字母全部转换成小写。

str对象的replace()方法是进行字符串替换,语法为:string.replace(old_str, new_str, num=string.count(old_str))。返回一个新字符串,把string中的old_str替换成new_str,如果num指定,则替换不超过num次,不指定num则所有old_str都替换成new_str。

在python中,字符串与整数相乘的结果是字符串拼接,将字符串复制整数次拼接到一起。

10. 执行以下程序,输入 93python22 ,输出的结果是

w = input('请输入数字和字母构成的字符串:')
for x in w:
    if '0' <= x <= '9':
        continue
    else:
        w.replace(x, '')
print(w)

A. 93python22
B. python9322
C. python
D. 9322

此题输入一个数字和字母构成的字符串后,遍历字符串中的每一个字符,如果单个字符的大小不在字符’0’到字符’9’之间,则用replace()方法将其替换成空字符串。

replace()方法的语法上题刚介绍,这里需要注意的是,本题中对w执行replace()后,没有接收返回值。replace()方法不能对字符串w进行原地修改,所以即使执行了replace(),w一直保持不变,与用户输入的内容一样。

关于字符串大小的比较规则,是按照ASCII编码表的排序来比较,下图来自百度百科,可以看到各字符的大小排序。
在这里插入图片描述

以上十题答案全为A,欢迎点赞、收藏、评论和关注。


相关阅读:【PythonCode】这些题,不会做就选B

📢欢迎 点赞👍 收藏⭐ 评论📝 关注 如有错误敬请指正!

☟ 学Python,点击下方名片关注我。☟

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小斌哥ge

非常感谢,祝你一切顺利。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值