欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 幼教 > 【Python】易错题 [1]

【Python】易错题 [1]

2024/10/24 3:22:54 来源:https://blog.csdn.net/qq_42995393/article/details/140015426  浏览:    关键词:【Python】易错题 [1]

目录

一、选择:

1.列表的复制​编辑

2.函数

二、填空


一、选择:

1.列表的复制

        在Python中,列表是可变的数据类型。当将一个列表赋值给另一个变量时,实际上是将这个变量的引用指向原始列表。(指针)因此,当修改原始列表时,引用该列表的所有变量都会看到这个变化。

s1 = [4, 5, 6]
s2 = s1
s1[1] = 0
print(s2)

        执行这段代码后,s2的值将是[4, 0, 6],因为s2s1都指向同一个列表。修改s1中的元素也会影响到s2

        要想让print(s2)的结果是[4, 5, 6],需要确保s2引用的是一个与s1不同的列表。这可以通过复制s1的值到一个新的列表来实现,例如使用切片操作或者copy方法:

s1 = [4, 5, 6]
s2 = s1[:]  # 使用切片复制s1的值到s2
s1[1] = 0
print(s2)  # 这将输出 [4, 5, 6]

        或者:

s1 = [4, 5, 6]
s2 = s1.copy()  # 使用copy方法复制s1的值到s2
s1[1] = 0
print(s2)  # 这将输出 [4, 5, 6]

        在这两种情况下,s2都会是一个新的列表,它包含了s1的值,但是与s1是独立的,因此修改s1不会影响到s2

2.函数

def f(n):s=0for i in range(1,n+1):if i%2==0:s=s+i
print(f(10))

        虽然f(10)运行后s=30,我们容易主观的认为f(10)会返回30,但该函数没有return语句,意味着它没有输出,故会返回None

        若想该函数返回30,需在循环结束位置补全return语句

def f(n):s=0for i in range(1,n+1):if i%2==0:s=s+ireturn s
print(f(10))

二、填空

 正确答案:global

正确答案:ls1=lst.copy

正确答案:import math

正确答案:lst=[[item[0], item[1]] for item in stu]

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com