Python 2.7 在while循环中请求用户输入

Python 2.7 在while循环中请求用户输入,python-2.7,Python 2.7,本例假设得到5个单词,然后按相反顺序打印 这就是我所尝试的: n = 5 while n > 0: print "tell me word", n word(n) = raw_input() n = n - 1 print r = 1 while r < 6: print word(r) r = r + 1 这样分配的正确方法是什么?您可以使用列表进行分配 words = [] Python不允许使用以前未分配的索引进行分配,因此需要调用a

本例假设得到5个单词,然后按相反顺序打印

这就是我所尝试的:

n = 5
while n > 0:
    print "tell me word", n
    word(n) = raw_input()
    n = n - 1
print
r = 1
while r < 6:
    print word(r)
    r = r + 1

这样分配的正确方法是什么?

您可以使用列表进行分配

words = []
Python不允许使用以前未分配的索引进行分配,因此需要调用append方法:

请注意,我可以使用raw_input的第一个参数来打印提示,因此不需要单独执行。您还可以使用更快的-=来减少和重新分配n

while循环在这里是一种不寻常的选择,尽管它可以工作。最好使用Python内置的range函数进行for循环

for n in range(5):
    words.append(raw_input('Tell me a word: '))
一旦你这样做了,你甚至可以将其缩短为一个列表,并一次分配所有列表:

words = [raw_input('Tell me a word: ') for n in range(5)]
一旦你得到了你的清单,倒转它就很简单了:

print list(reversed(words))
要在尝试时一行一行地打印它们,您需要在列表上进行如下迭代:

for word in reversed(words):
    print word
如果您希望它们是空格分隔的,那么Python2使用了一种技巧:用一个尾随逗号打印

for word in reversed(words):
    print word,  # note the comma!
我个人认为这里的Python 3版本更具可读性。您可以通过在文件顶部执行“从未来导入打印”功能来使用它:

for word in reversed(words):
    print(word, end=' ')
请注意,如果您这样做1。它必须位于文件的顶部,并且2。所有打印调用都需要括号,因为它现在是一个函数

完整脚本示例Python 2:

words = [raw_input('Tell me a word: ') for n in range(5)]
for word in reversed(words):
    print word,
PS-如果您只是在学习Python,为什么不使用Python 3呢

words = [input('Tell me a word: ') for n in range(5)]
for word in reversed(words):
    print(word, end=' ')
print()

谢谢你,伙计。。你可能会发现我仍然有一些基本的想法。。你教了我很多。。列表的方括号,定义列表的第一个单词=[]并使用append。。再加上一些捷径和更多。。你是冠军
words = [input('Tell me a word: ') for n in range(5)]
for word in reversed(words):
    print(word, end=' ')
print()