Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python ';对于x中的a:';未在'上工作;对于x中的x:';_Python - Fatal编程技术网

Python ';对于x中的a:';未在'上工作;对于x中的x:';

Python ';对于x中的a:';未在'上工作;对于x中的x:';,python,Python,我正在写一个程序,将输入的名字按字母顺序排列。 输出应为: 学生:彭·伊万·艾伦·乔迪·梅西 班级名单 艾伦 伊万 乔迪 梅西 彭 我有代码,但当我在单独的行上打印名称时,如果我写: for a in names: print(names) for names in names: print(names) 它在一行上打印所有内容,但如果我写: for a in names: print(names) for names in names: print(names) 它

我正在写一个程序,将输入的名字按字母顺序排列。 输出应为:

学生:彭·伊万·艾伦·乔迪·梅西

班级名单

艾伦

伊万

乔迪

梅西

我有代码,但当我在单独的行上打印名称时,如果我写:

for a in names:
  print(names)
for names in names:
   print(names)
它在一行上打印所有内容,但如果我写:

for a in names:
  print(names)
for names in names:
   print(names)
它很好用。 (名称是名称列表)。 为什么会这样

names = ['Alan','Ivan','Jodi','Macy','Peng']

# This will print whatever is assigned to `names` for the number of times `names` is iterated
for a in names:
  print(names)
输出:

['Alan', 'Ivan', 'Jodi', 'Macy', 'Peng']
['Alan', 'Ivan', 'Jodi', 'Macy', 'Peng']
['Alan', 'Ivan', 'Jodi', 'Macy', 'Peng']
['Alan', 'Ivan', 'Jodi', 'Macy', 'Peng']
['Alan', 'Ivan', 'Jodi', 'Macy', 'Peng']
Alan
Ivan
Jodi
Macy
Peng
Alan
Ivan
Jodi
Macy
Peng
现在:

额外注意:正如@buran所述:这是有效的,但不适合使用, 因为在
的末尾,name的值将是
列表,而不是原始列表
名称

输出:

['Alan', 'Ivan', 'Jodi', 'Macy', 'Peng']
['Alan', 'Ivan', 'Jodi', 'Macy', 'Peng']
['Alan', 'Ivan', 'Jodi', 'Macy', 'Peng']
['Alan', 'Ivan', 'Jodi', 'Macy', 'Peng']
['Alan', 'Ivan', 'Jodi', 'Macy', 'Peng']
Alan
Ivan
Jodi
Macy
Peng
Alan
Ivan
Jodi
Macy
Peng
最后:

# This is what you need i.e. for each name in names, print the name
for name in names
   print(name)
输出:

['Alan', 'Ivan', 'Jodi', 'Macy', 'Peng']
['Alan', 'Ivan', 'Jodi', 'Macy', 'Peng']
['Alan', 'Ivan', 'Jodi', 'Macy', 'Peng']
['Alan', 'Ivan', 'Jodi', 'Macy', 'Peng']
['Alan', 'Ivan', 'Jodi', 'Macy', 'Peng']
Alan
Ivan
Jodi
Macy
Peng
Alan
Ivan
Jodi
Macy
Peng

发生这种情况是因为您使用相同的变量
名称
进行打印

尝试:


在for循环中,您将每个迭代值存储在变量中,而在print语句中,您将引用保存所有值的names变量。这就是它在同一行打印所有值的原因:

更改代码

for a in names:
  print(names)


这是因为您使用了相同的变量名,即
名称
,在任何情况下,我认为您的意思是:
对于一个In-names:print(a)
对于一个In-names:…print(names)
即使您正在迭代
名称
,在每次迭代中,您仍在打印完整的
名称
。在第一个示例中,您试图打印分配给
名称
的内容,因为
名称
被迭代的次数,相反,您应该
打印(a)
,因为
a
是for循环分配每个元素的位置。对于a in-names:print(a),可能需要注意的是,在names
中使用
名称是有效的,但不希望使用,因为在
名称的末尾,name
将是列表中的最后一个元素,而不是原始列表
names