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

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

前言

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

1. 函数表达式 all([1, True, True]) 的结果是

A. 无输出
B. False
C. 出错
D. True

在Python中,all()是内置函数。用法为:all(iterable),传入一个可迭代对象,字符串、列表、元组、字典等可以用for循环遍历的对象都属于可迭代对象。

如果可迭代对象中所有值的布尔值都为True,则返回True。如果可迭代对象为空,也返回True。其他情况,返回False。

数字 0(包含浮点数0.0),None,False三个值的布尔值为False,当可迭代对象中出现这三个值之一时,即有一个布尔值为False的值时,all()返回False(但是,这三个值的字符串返回True)。空字符串、空列表、空字典等返回True。示例见下。

>>> all('')
True
>>> all([])
True
>>> all({
    
    })
True
>>> all([1, 2, 3])
True
>>> all([0, 2, 3])
False
>>> all(['0', 2, 3])
True
>>> all([None, 2, 3])
False
>>> all([False, 2, 3])
False

2. str = “Python语言程序设计”,表达式 str.isnumeric() 的结果是

A. True
B. 1
C. 0
D. False

​Python中字符串str对象的isnumeric()方法是判断字符串中是否全部由数字组成。

字符串中的数字是unicode字符,如果是bytes字符会报错。

数字可以是中文数字、罗马数字等,但不能是浮点数,因为isnumeric()是按字符判断,小数点不属于数字。示例见下。

>>> st = '1'
>>> st.isnumeric()
True
>>> st2 = b'1'
>>> st2.isnumeric()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'bytes' object has no attribute 'isnumeric'
>>> st3 = '四'
>>> st3.isnumeric()
True
>>> st4 = '1.23'
>>> st4.isnumeric()
False
>>> st5 = 'abc123'
>>> st5.isnumeric()
False

3. 以下Python语言关键字在异常处理结构中用来捕获特定异常的选项是

A. for
B. lambda
C. in
D. expect

Python中的异常捕获语句是:try: … expect: …
可以参考:Python异常捕获及自定义异常类

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

>>> def f(x, y=0, z=0):pass
>>> f(1,,3)

A. pass
B. None
C. not
D. 出错

​此题涉及的知识是函数的传参方式,调用函数 f 时连续写了两个逗号,如果在PyCharm这类IDE中,直接就标红了,调用函数时抛出语法错误。

函数f有一个位置参数x和两个默认参数y,z。定义函数时,位置参数要写在默认参数的前面,所以函数f的定义是正确的。

调用函数时,位置参数按顺序传入实参,默认参数可以按顺序传入实参或用关键字参数的方式传入实参,按位置传的实参要全部写在关键字参数的前面。如果没有给位置参数传入实参,会报错,如果没有给默认参数传入实参,则使用默认值。

5. 运行以下程序,从键盘上输入 1,2,3 ,则输出的结果是

try:
    num = eval(input("请输入一个列表:"))
    num.reverse()
    print(num)
except:
    print("输入的不是列表")

A. [1,2,3]
B. [3,2,1]
C. 运算错误
D. 输入的不是列表

​此题涉及的主要知识点:

  • 元组自动组包,num变量被赋值为键盘输入的 1,2,3 。这三个数字自动组包成一个元组。
  • reverse()方法是将列表本身的数据翻转,元组没有此方法,会报错。
  • try捕获到异常后,执行except中语句。

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

def fun1(a, b, *args):
    print(a)
    print(b)
    print(args)

fun1(1, 2, 3, 4, 5, 6)

A.
1
2
[3, 4, 5, 6]
B.
1,2,3,4,5,6
C.
1
2
3, 4, 5, 6
D.
1
2
(3, 4, 5, 6)

此题的关键是函数的可变参数:

  • 函数可以定义可变参数,用于接收任意数量的参数。
  • 可变参数前需要添加星号*,用于提示python解释器该参数是可变参数。
  • 在函数内部使用可变参数,直接用args即可(不需要加*)。
  • 可变参数的本质是将传递的参数组包成一个元组。

7. 以下选项能改变 turtle 画笔的颜色的是

A. turtle.colormode()
B. turtle.setup()
C. turtle.pd()
D. turtle.pencolor()

turtle是Python的标准库,turtle中设置和修改画笔颜色的函数是pencolor(color)。
可以参考:用Python标准库turtle画一只老虎

8. 以下程序的不可能输出结果是

from random import *

print(sample({
    
    1, 2, 3, 4, 5}, 2))

A. [5, 1]
B. [1, 2]
C. [4, 2]
D. [1, 2, 3]

​sample(population, k)是Python标准库random中的方法,用于从一个序列或集合中随机选择k个值,按列表的方式返回。

第一个参数population可以是序列(如列表、range()等)或集合,不能是字典。第二个参数k设置随机挑选k个值,所以序列/集合的长度必须大于或等于k(注意集合会自动去重)。

9. 下面对字典遍历的处理,错误的是

A.

data = {
    
    'x': 1, 'y': 2, 'z': 3}
for v in data:
    print(v)

B.

data = {
    
    'x': 1, 'y': 2, 'z': 3}
for key in data:
    print(key)

C.

data = {
    
    'x': 1, 'y': 2, 'z': 3}
for key, value in data.items():
    print(f'key: {
      
      key} => value: {
      
      value}')

D.

data = {
    
    'x': 1, 'y': 2, 'z': 3}
for key, value in data:
    print(f'key: {
      
      key} => value: {
      
      value}')

字典中可以遍历的有:

  • dict.keys(): 遍历字典的键。
  • dict.values(): 遍历字典的值。
  • dict.items(): 遍历字典的键值对,在items中键和值为元组的形式。

如果不指定,默认遍历字典的键,不管遍历时用什么变量名(v或key等),遍历的结果都是键(key)。只有遍历items()可以同时用两个变量接收。

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

import time

t = time.gmtime()
print(time.strftime("%Y-%m-%d %H:%M:%S", t))

A. 系统当前的日期
B. 系统当前的时间
C. 系统出错
D. 系统当前的日期与时间

​​gmtime([seconds])是Python标准库time中的函数,用于将一个时间戳转换为UTC时区(0时区)的struct_time对象,可选参数seconds表示从1970-1-1以来的秒数,默认值为time.time()即运行代码时的系统时间。

>>> import time
>>> time.gmtime()
time.struct_time(tm_year=2022, tm_mon=12, tm_mday=3, tm_hour=8, tm_min=7, tm_sec=22, tm_wday=5, tm_yday=337, tm_isdst=0)

strftime(format, p_tuple)也是Python标准库time中的函数,用于格式化时间,返回用可读字符串表示的时间,格式通过format参数设置。参数p_tuple传入一个struct_time对象,gmtime()的返回值刚好是struct_time对象。

>>> time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime())
'2022-12-03 08:20:06'

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

推荐阅读
功能强大,但因安全隐患被企业禁用的Python内置函数

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

猜你喜欢

转载自blog.csdn.net/weixin_43790276/article/details/128155853
今日推荐