为什么哥伦布是Python的第一人?
当我在中执行以下代码时:- 它打印:-为什么哥伦布是Python的第一人?,python,list,Python,List,当我在中执行以下代码时:- 它打印:- Columbus Alex Mariah Martine Columbus 现在,我想问一下为什么“哥伦布”排在首位。我知道我在列表和“for循环”中使用了一个空变量“Adam”。这应该是一个“语法错误”,因为在列表和“for循环”中使用了相同的变量,那么为什么该列表的最后一个元素会首先打印出来,以及最后打印出来。要回答问题1“Columbus”为什么会先打印出来 我真的不知道您是怎么做到的,我的尝试表明它是按照列表初始化的顺序打印的,请参阅,了
Columbus
Alex
Mariah
Martine
Columbus
现在,我想问一下为什么“哥伦布”排在首位。我知道我在列表和“for循环”中使用了一个空变量“Adam”。这应该是一个“语法错误”,因为在列表和“for循环”中使用了相同的变量,那么为什么该列表的最后一个元素会首先打印出来,以及最后打印出来。要回答问题1“Columbus”为什么会先打印出来 我真的不知道您是怎么做到的,我的尝试表明它是按照列表初始化的顺序打印的,请参阅,了解如何在python中操作打印: 关于空变量的第二个问题的答案,我得到了一个正常的语法错误,请参见python中变量的工作原理: 要复制OP的错误,
Adam=“Columbus”
只有在OP重新初始化for循环后的names`列表时才会为True:
请参见
当然,在for循环中使用本地Adam
与使用i
没有什么不同。在for循环之后,i
将获取列表中最后一项的值
>>> alist = [1,2,3,4]
>>> for i in alist:
... print i
...
1
2
3
4
>>> i
4
但是当下一个for循环开始时,i
将在循环开始时自动设置为列表中的第一项。但是,如果在第一次运行for循环后重新初始化列表,则列表中的第一项将采用最后一项的值:
>>> i = None
>>> alist = [i,2,3,4]
>>> for i in alist:
... print i
...
None
2
3
4
>>> i
4
>>> alist = [i,2,3,4]
>>> alist
[4, 2, 3, 4]
要回答问题1“哥伦布”为什么先印刷 我真的不知道您是怎么做到的,我的尝试表明它是按照列表初始化的顺序打印的,请参阅,了解如何在python中操作打印: 关于空变量的第二个问题的答案,我得到了一个正常的语法错误,请参见python中变量的工作原理: 要复制OP的错误,
Adam=“Columbus”
只有在OP重新初始化for循环后的names`列表时才会为True:
请参见
当然,在for循环中使用本地Adam
与使用i
没有什么不同。在for循环之后,i
将获取列表中最后一项的值
>>> alist = [1,2,3,4]
>>> for i in alist:
... print i
...
1
2
3
4
>>> i
4
但是当下一个for循环开始时,i
将在循环开始时自动设置为列表中的第一项。但是,如果在第一次运行for循环后重新初始化列表,则列表中的第一项将采用最后一项的值:
>>> i = None
>>> alist = [i,2,3,4]
>>> for i in alist:
... print i
...
None
2
3
4
>>> i
4
>>> alist = [i,2,3,4]
>>> alist
[4, 2, 3, 4]
可能您多次运行相同的代码
>>> Adam = '' # <--- except this line.
>>> names = [Adam,"Alex","Mariah","Martine","Columbus"]
>>> for Adam in names:
... print Adam
...
Alex
Mariah
Martine
Columbus
运行相同的代码会产生您看到的结果:
>>> names = [Adam,"Alex","Mariah","Martine","Columbus"]
>>> for Adam in names:
... print Adam
...
Columbus
Alex
Mariah
Martine
Columbus
对目标变量使用相同的变量不会导致语法错误。变量刚刚被覆盖
可能您多次运行同一代码
>>> Adam = '' # <--- except this line.
>>> names = [Adam,"Alex","Mariah","Martine","Columbus"]
>>> for Adam in names:
... print Adam
...
Alex
Mariah
Martine
Columbus
运行相同的代码会产生您看到的结果:
>>> names = [Adam,"Alex","Mariah","Martine","Columbus"]
>>> for Adam in names:
... print Adam
...
Columbus
Alex
Mariah
Martine
Columbus
对目标变量使用相同的变量不会导致语法错误。变量刚刚被覆盖
可能是您在早期的某个阶段将值
“Columbus”
分配给变量Adam
。我认为这是因为Adam
变量指向字符串“Columbus”@GrijeshChauhan你的意思是因为Codecademy labs的错误吗?@BrenBarn我认为你应该发表你的评论作为答案,因为这是唯一合理的解释。@deveshssaini我的意思是print Adam
将打印名称列表中的第一个字符串,并在名称列表中以非常量字符串文字打印第一个字符串但是一个引用变量Adam
,第一次打印的字符串将指向我的名称[0]
,假设您在早期阶段将值分配给变量Adam
。我想是因为Adam
变量指向字符串“Columbus”@GrijeshChauhan你的意思是因为Codecademy labs的错误吗?@BrenBarn我认为你应该发表你的评论作为答案,因为这是唯一合理的解释。@deveshssaini我的意思是print Adam
将打印名称列表中的第一个字符串,并在名称列表中以非常量字符串文字打印第一个字符串但是一个引用变量Adam
,第一次打印的字符串指向我的名称[0]
,似乎codeacademy实验室中的python解释器没有同样的效果。我想唯一的Adam=Colubus
是再次初始化列表。@alvas,我可以复制。请看我刚才添加到答案中的屏幕截图。@falsetru,是的,名称列表必须重新初始化才能出现“bug=)@alvas,我从一开始就这么说。这不是虫子。看见引用:循环完成时目标列表没有被删除,…似乎codeacademy实验室中的python解释器没有产生相同的效果。我认为唯一的问题是列表被重新初始化。@alvas,我可以复制。请看我刚才添加到答案中的屏幕截图。@falsetru,是的,名称列表必须重新初始化才能出现“bug=)@alvas,我从一开始就这么说。这不是虫子。看见QUOTE:循环完成后,目标列表不会被删除。。。