如何从Python中的列表中选择随机字符串?

时间:2016-02-10 07:04:14

标签: python random

add = ""

addmovie = raw_input("Type 'a' to add a title, 'b' to pick a movie or '/' to quit: ")
while addmovie == 'a' or addmovie == '/' or addmovie == 'b':
    if addmovie == 'a':
    add = list(add) + list(raw_input("Enter movie name: "))
    elif addmovie == '/':
        print 'Goodbye.'
        sys.exit()
    elif addmovie == 'b':
        break
    addmovie = raw_input("Type 'a' to add a title, 'b' to pick a movie or '/' to quit: ")

# Define Movie_list and random choice

Movie_list = list(add) #+ movie_list

random_movie = random.choice(Movie_list)

print random_movie

movie_list之前已定义

如果只有while循环可行,而if / elif / else则有用。我只学到了这些材料。

1 个答案:

答案 0 :(得分:1)

首先,您可能想要检查pythons list()函数对字符串的作用。 python doc

简单地列出列表(" foo")将创建列表[' f',' o',' o']。我猜这可能不是你期望的功能:)

您将所有电影存储在一个字符串中,这可能没问题,但我建议使用一个简单的数组(特别是如果您想再次使用这些数据,例如选择一个随机项目)。

所以不要连接所有输入影片名称:

add = list(add) + list(raw_input("Enter movie name: "))

您可以简单地将它们附加到数组中:

movies.append(raw_input("Enter movie name: "))

然后,如果您使用random.choice(电影),将返回该数组中的伪随机项。

所以你的代码可能如下所示:

import sys, random

# Movie_List is now here
movies = []

addmovie = raw_input("Type 'a' to add a title, 'b' to pick a movie or '/' to quit: ")
 while addmovie == 'a' or addmovie == '/' or addmovie == 'b':
    if addmovie == 'a':
        movies.append(raw_input("Enter movie name: "))
    elif addmovie == '/':
        print 'Goodbye.'
        sys.exit()
    elif addmovie == 'b':
        break
    addmovie = raw_input("Type 'a' to add a title, 'b' to pick a movie or '/' to quit: ")

# random choice
random_movie = random.choice(movies)
print random_movie