2013-07-02 3 views
-2

Я начинающий на python, и у меня есть этот код для флеш-карты, которую я написал. Следующий код - лишь малая его часть.Python. отображение элементов в произвольном порядке

remove = 0 
     while remove < 2: 
      a = random.choice(list(key))  
      if (a) == line27: 
       print(a) 
       x = input(random.choice(defi)) 
       x = input(random.choice(defi)) 
       x = input(line28) 

       if x == ('c'): 
        remove = remove + 1 
        print('you got it right') 
        score = (score + 1) 
        print('score =', score) 
       if x == ('b', 'a'): 
        print('thats wrong') 
       print() 
       t = t + 1 

       if remove == 2: 
        key.remove(line27) 

я должен быть в состоянии показать это:

x = input(random.choice(defi)) 
x = input(random.choice(defi)) 
x = input(line28) 

в случайном порядке каждый раз, когда оно показывает. поэтому два случайных выбора должны отображаться в разных позициях, а также строка 28. два случайных выбора находятся в списке, а строка 28 находится в другом списке, если это какая-либо помощь.

+4

несколько вещей: 'x' всегда будет результат последнего оператора присваивания, и' input' здесь не делать то, что вы думаете, это является. 'x' никогда не будет равным _tuple_' ('b', 'a') '; и, наконец, вы забыли задать вопрос. –

+0

Что происходит, когда вы запускаете этот код? Предположительно, вы видите неожиданный выход? Наверное, вы запрашиваете случайный ввод данных от пользователя? Трудно сказать, чего вы ожидаете, без большего контекста, и x ВСЕГДА будет равным вводу (строка 28), поэтому первые два назначения х являются избыточными. Что содержится в «defi»? Что такое line28 и line27? Что такое t? Кажется, это бесполезно ... Я хотел бы помочь вам, но сначала вам нужно будет определить проблему более четко. – Luke

+0

Я знаю, что делает ввод, поскольку я тестировал его здесь, и он отлично работает. Извините –

ответ

2

Может, этого достаточно? Похоже, это то, что вы просите, но я не знаю ...

def randomInput(list): 
    randIdx = random.randint(0, len(list)-1) 
    in = input(list[randIdx]) 
    list.remove(randIdx) 
    return in, list 

inputs = [random.choice(defi), random.choice(defi), line28] 
x, inputs = randomInput(inputs) 
x, inputs = randomInput(inputs) 
x, inputs = randomInput(inputs) 

Кроме того, как сказал Бурхан Халид, х никогда не будет равна кортеж («B», «а») ... Я полагаю, что ты имел в виду

x == 'b' or x == 'a' 
+1

Да, спасибо, что барсук. :-) –

+0

Счастливые помочь. :) – Luke

Смежные вопросы