一、选择题

1. 列表(List)是一个有序可变的数据类型,没有固定大小,即元素的顺序不一样,列表就不是同一个列表,可以对列表中的元素做增、删、改操作

2. 列表(List)中的元素可以是任意数据类型

3. 列表(List)的中元素的索引号从左到右为 0 ~ n-1,从右到左为 -1 ~ -n

4. 列表(List)中 append() 函数一次只能传入一个元素,传多个会抛出 TypeError 错误,如果想一次传入多个元素,可以用 extend() 函数将需要添加的元素存储在一个列表后,接入原列表末尾

        改法1:

demo_list = []
demo_list.append("A")
demo_list.append("B")
print(demo_list)

        改法2:

demo_list = []
demo_list.extend(["A", "B"])
print(demo_list)

        运行结果:

5. reverse() 函数:原地将列表元素倒置,即索引号为 0 的元素变到 n-1 位,索引号为 1 的元素变到 n-2 位,且是在原列表内改变顺序,顺序改变后不会产生一个新列表

6. pop() 函数:用于按照索引号删除列表中的元素,如果不填索引号则默认删除最后一个元素

7. sort() 函数:用于按照标准规律将列表中的元素排序。标准规律在数值数据类型上(int、float、double 等)上是按照i数值大小从小到大,在字符串数据类型上(str)则是以 ASCII 码从小到大,但如果列表内既有数值型,又有字符串型的数据,排序会报错。默认参数 reverse = False(升序:从小到大),如果将参数 reverse = True,则会按照降序排序(从大到小)

8. 以下代码的输出结果是?

list = [1, 2, 1, 3]
nums = set(list)
for i in nums:
    print(i, end="")

        运行结果:

        set():括号中包裹列表,可以将列表强制转换为集合,而集合数据类型中,元素是不可以重复的,且集合是无序的数据类型,遍历集合中的元素时,会按照元素的哈希值取模后的大小先后遍历

9. random() 函数:随机产生 [0.0, 1.0] 内的浮点数,不会打乱原列表中元素的顺序

10. shuffle() 函数:将列表作为参数传入,并将列表中的元素随机打乱

11. choice() 函数:随机选择序列中的某个元素并返回

12. seed() 函数:设置随机数生成的种子,用来控制随机序列的复现,不会打乱原列表

13. 以下代码的运行结果是什么?

counter = 1 
for i in (1, 2, 3): 
    counter += 1 
print(counter)

        运行结果:

        解析:i in (1, 2, 3),for 循环遍历三次,起始的 counter = 1,在循环里遍历三次(+1 三次)之后则变为 4

14. 以下代码的运行结果是?

b1=[1,2,3]
b2=[2,3,4]
b3 = [val for val in b1 if val in b2]
print (b3)

        运行结果:[2, 3]

        解析:b3 = [val for val in b1 if val in b2] 为列表生成式,表示 val 如果存在于 b1,又存在于 b2,那么它就能够成为 b3 中的元素

二、编程题

1. 求列表中全部元素的和

        向列表 [1,2,1,2,3,4,5] 中添加数字,并计算新列表中全部元素的和。

list_1 = [1,2,1,2,3,4,5]
list_1.append(int(input("请输入需要添加的数字:")))
print(sum(list_1))

        运行结果:

2. 使用牛顿法求解一元二次方程

        牛顿迭代公式:

x_{n+1} = x_n-\frac{f(x_n)}{f'(x_n)}

        不断迭代直到 f(x) 的值无限趋近于 0。

# 获取输入
ini_root = int(input())
f_expr = input()
f1_expr = input()

# 牛顿迭代
x = ini_root
while True:
    # 计算函数值
    f_val = eval(f_expr, {"x": x})
    # 计算导数值
    f1_val = eval(f1_expr, {"x": x})
    
    # 当函数值足够接近0时停止迭代
    if abs(f_val) < 1e-6:
        break
    # 牛顿迭代更新x
    x = x - f_val / f1_val

# 保留1位小数输出
print("{0:.1f}".format(f_val))

3. 计算数组

        获取一个整数数组,然后对该数组中的每个元素都加上一个任意数字,从而得到一个新数组。

nums = input("请输入一个数组:")
num = int(input("请输入一个数字:"))
nums_ = []
for i in nums:
    if i.isdigit():
        nums_.append(int(i))
add_num = [x + num for x in nums_]
print(add_num)

        运行结果:

        解析:isdigit() 用于判定括号内包裹的对象是不是数字

4. 求奇数

        获取两个非负整数 low 和 high 。请你返回 low 和 high 之间(包括二者)的奇数。

low,high = map(int,input().split())
size = range(low,high + 1)
lis = []
x = low
for x in size:
    if x % 2 != 0:
        lis.append(x)
print(lis)

        运行结果:


欢迎大家投稿题目或批评指正,可咨询、讲解

更多推荐