Проблема с перебором элементов в цикле python

248 просмотра
0
0 Комментариев

Должно получиться что–то типа игры — человек вводит число, а машина перебирает варианты, пытаясь его угадать.
Сама проблема в if — даже если задаваемое число равно выводу кода, равенство не выполняется.

Я начинающий и любая обоснованная критика или замечание будут восприняты с благодарностью

    print ('choose number from 0 up to 10 - ')
    choice = int(input())
 
    L = [[i+1] for i in range(10)]
    shuffle(L)
 
    for i in L:
        if i == choice:
            print("that is")
            print(i)
            break
        else:
            print("next time")
            print(i)


Добавить комментарий

1 Ответы

Python Опубликовано 09.12.2018
0

В вашем коде есть две проблемы:

  1. Вы забыли импортировать функцию shuffle из библиотеки random
  2. Вы заполняете массив L не целыми числами, а массивами единичной длины. Это происходит потом, что [i+1] на самом деле возвращает массив а не скаляр.

Правильный, работоспособный код, может иметь вид:

from random import shuffle
 
print ('choose number from 0 up to 10 - ')
choice = int(input())
 
L = [i+1 for i in range(10)]
shuffle(L)
 
for i in L:
    if i == choice:
        print("that is")
        print(i)
        break
    else:
        print("next time")
        print(i)

Добавить комментарий
Напишите свой ответ на данный вопрос.
Scroll Up