Python 如何获取阵列的用户输入?

Python 如何获取阵列的用户输入?,python,python-3.x,Python,Python 3.x,我想从用户的输入创建一个列表,然后从该列表返回一个随机值 这是我到目前为止的代码,但我不知道如何获取数组的输入 import random movie_array = ["movieA", "movieB", "movieC"] print(random.choice(movie_array)) 我知道输入函数,但不知道如何使用它创建数组/列表。我尝试了以下方法,但没有成功 movie_array = input() 但是当我在上面运行random.choice时,它只选择一个单独的字符 使

我想从用户的输入创建一个列表,然后从该列表返回一个随机值

这是我到目前为止的代码,但我不知道如何获取数组的输入

import random
movie_array = ["movieA", "movieB", "movieC"]
print(random.choice(movie_array))
我知道输入函数,但不知道如何使用它创建数组/列表。我尝试了以下方法,但没有成功

movie_array = input()
但是当我在上面运行random.choice时,它只选择一个单独的字符

使用循环

在循环体中,提示用户输入电影标题,或“q”退出。将每个条目附加到电影列表中。完成后,从电影列表中选择一部随机电影:

import random

movies = []
while True:
    entry = input('Enter a movie title (q to quit): ')
    if entry.lower() == 'q':
        break
    movies.append(entry)

if movies:
    print(random.choice(movies))
希望您的用户不想进入名为(1982)的电影。最好使用空条目作为哨兵,如下所示:

    entry = input('Enter a movie title (<Enter> to quit): ')
    if entry == '':
        break
>>> import random
>>> movie_array = [input("Input a movie: ") for i in  range(3)]
Input a movie: movieA
Input a movie: movieB
Input a movie: movieC
>>> print(random.choice(movie_array))
movieC
entry=input('输入电影标题(退出):')
如果条目=“”:
打破

您可以在用逗号分隔的单行中读取电影,然后将其拆分为数组

movie_array=raw_input("Enter Movies").split(',')
如果是Python3.x

movie_array=input("Enter Movies").split(',')

您可以这样做:

    entry = input('Enter a movie title (<Enter> to quit): ')
    if entry == '':
        break
>>> import random
>>> movie_array = [input("Input a movie: ") for i in  range(3)]
Input a movie: movieA
Input a movie: movieB
Input a movie: movieC
>>> print(random.choice(movie_array))
movieC

你可以这样给它

movie_array = [b for b in input().split()]
然后你可以像这样从用户那里得到输入

movieA movieB movieC

只是想澄清为什么您的解决方案尝试不起作用,即:

movie_array = input()
这是因为输入返回一个
字符串,即子字符串的列表
你可以看到
movie\u array='test'
作为
movie\u array=['t','e','s','t']

print(movie_array[1])
>>>'e'
为了解决您的问题,我建议@mhawke answer(使用
while
循环)

通过使用
while
循环,您可以检索多个输入并将它们存储在列表中。请注意,while循环必须能够“结束”,否则可能会导致问题。因此,您必须在
while
循环中的某个位置执行
中断。
否则,程序将无法正常运行,直到您强制关闭或崩溃为止

有关这方面的更多信息可在此处阅读:


还要检查官方wiki中的字符串和控制流。

尝试打开一个扫描仪,要求用户首先输入数组中的元素数(数组初始化的大小),然后使用相同的过程获取n个输入。@DebosmitRay:what是
扫描仪
?这是一个关于Python而不是Java的问题。这展示了如何将用户输入放入数组:请原谅使用word scanner。Python有这个功能,你可以使用。很多,很多,如果不是大多数电影标题都由一个以上的空格分隔的单词组成。也许如果电影之间用逗号分隔的话?是的。我差点忘了。列表理解没有意义-
input()。split()
已经返回了一个列表。2.如果用户想输入电影标题,如《星球大战》,该怎么办?在空白处拆分会将标题拆分为两个星球大战。