Я могу выбрать случайным образом из списка ... но как я могу использовать это в качестве переменной для различных команд?питон - PullRequest
0 голосов
/ 01 апреля 2011

Допустим, у меня есть следующее:

foo = ('animal', 'vegetable', 'mineral')

Я хочу иметь возможность случайного выбора из списка, ТО, в зависимости от того, какая из них выбрана, есть набор команд для подражания.

Например, если «животный» был выбран случайным образом, я хочу распечатать сообщение («rawr I \ 'ma тигр»), или если это был «растительный» отпечаток («Woof, я - морковь») иличто-то.

Я знаю, чтобы случайно выбрать это:

from random import choice
print choice(foo)

но я не хочу, чтобы выбор был напечатан, я хочу, чтобы он был секретным.Помогите пожалуйста.

Ответы [ 4 ]

5 голосов
/ 01 апреля 2011
import random
messages = {
    'animal': "rawr I'm a tiger",
    'vegetable': "Woof, I'm a carrot",
    'mineral': "Rumble, I'm a rock",
}
print messages[random.choice(messages.keys())]

Если вы хотите перейти к другим разделам приложения, лучше подойдет что-то вроде этого:

import random

def animal():
    print "rawr I'm a tiger"

def vegetable():
    print "Woof, I'm a carrot"

def mineral():
    print "Rumble, I'm a rock"

sections = {
    'animal': animal,
    'vegetable': vegetable,
    'mineral': mineral,
}

section = sections[random.choice(sections.keys())]
section()
1 голос
/ 01 апреля 2011

Вы просто назначаете свой случайно выбранный элемент переменной.

1 голос
/ 01 апреля 2011

Если вы не хотите печатать его, просто назначьте его переменной:

element = choice(foo)

Чтобы затем выбрать соответствующее сообщение, вам может потребоваться словарь из типа элемента (animal / mineral /vegetable) к списку случайных сообщений, связанных с этим типом элемента.Возьмите список из словаря, затем выберите случайный элемент для печати ...

0 голосов
/ 01 апреля 2011
>>> messages = {"animal" : "Rawr I am a tiger", "vegtable" :"Woof, I'm a carrot", "mineral" : "I shine"}
>>> foo = ('animal', 'vegtable', 'mineral')                                     >>> messages[random.choice(foo)]"Woof, I'm a carrot"

>>> messages[random.choice(foo)]
"Woof, I'm a carrot"

или более, если вам не нужно хранить кортеж:

messages[random.choice(messages.keys())]
...