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