我想根据用户的输入创建一个列表,然后从该列表中返回一个随机值。
这是我到目前为止的代码,但我无法弄清楚如何获取数组的输入。
import random
movie_array = ["movieA", "movieB", "movieC"]
print(random.choice(movie_array))
我知道输入功能,但我不确定如何使用它来创建数组/列表。我尝试了以下但它没有工作
movie_array = input()
但是当我运行random.choice时,它只选择一个单独的字符。
答案 0 :(得分:3)
你可以这样做:
>>> 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
答案 1 :(得分:1)
使用循环。
在循环体中提示用户输入电影标题,或者' 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))
希望您的用户不想输入名为"Q"(1982)的电影。使用空条目作为哨兵可能更好,如下所示:
entry = input('Enter a movie title (<Enter> to quit): ')
if entry == '':
break
答案 2 :(得分:0)
您可以用逗号分隔的单行读取电影,然后将其拆分为数组。
movie_array=raw_input("Enter Movies").split(',')
如果是python 3.x
movie_array=input("Enter Movies").split(',')
答案 3 :(得分:0)
只是想澄清一下为什么你的解决方案尝试不起作用IE:
movie_array = input()
这是因为输入返回string
I.E 子串列表所以
您可以将movie_array = 'test'
视为movie_array = ['t','e','s','t']
print(movie_array[1])
>>>'e'
为了解决您的问题,我建议@mhawke回答(使用while
循环)
通过使用while
循环,您可以检索多个输入并将每个输入存储在列表中。请注意,虽然while循环必须能够&#34; END&#34; ,否则可能会导致问题。因此,您必须在break
循环中的某处while
。
否则,程序将无限期地运行,直到你强制它关闭或直到它崩溃。
有关这方面的更多信息,请点击此处:
还要检查官方维基上的字符串和控制流程。
答案 4 :(得分:-1)
你可以这样给它。
movie_array = [b for b in input().split()]
然后你可以从这样的用户那里获得输入,
movieA movieB movieC