Python, random.randint не выводит

#python #python-3.x

Вопрос:

это код ниже

Я не уверен, что из 22 переменных он не угадывает число или я сделал что-то не так

 print("pick a number between 1 and 10 and type it down below")
numberone = input()
n1 = random.randint(1,10)
n2 = random.randint(1,10)
n3 = random.randint(1,10)
n4 = random.randint(1,10)
n5 = random.randint(1,10)
n6 = random.randint(1,10)
n7 = random.randint(1,10)
n8 = random.randint(1,10)
n9 = random.randint(1,10)
n10 = random.randint(1,10)
n11 = random.randint(1,10)
n12 = random.randint(1,10)
n13 = random.randint(1,10)
n14 = random.randint(1,10)
n15 = random.randint(1,10)
n16 = random.randint(1,10)
n17 = random.randint(1,10)
n18 = random.randint(1,10)
n19 = random.randint(1,10)
n20 = random.randint(1,10)
n21 = random.randint(1,10)
n22 = random.randint(1,10)
if (n1,n22) == numberone:
  print("i guess your number and it is"   input())
 

если вы читаете это, большое вам спасибо за то, что вы просто пытаетесь кому-то помочь!
вы хороший человек и готовы помогать другим

Комментарии:

1. да, я пытаюсь проверить, равен ли номер одному любому из n1-n22

2. Что сказал @Carcigenicate. Используйте список вместо 22 переменных.

Ответ №1:

очень хорошо объяснить, что именно вы хотите сделать.

я предполагаю, что вы хотите угадать число с 22 попытками и проверить, получил ли кто-нибудь из них запись.

 import random

print("pick a number between 1 and 10 and type it down below")
number = int(input())

if not 0 < number < 11:
    print("you should've entered a number between 1 and 10 :(")    

guesses_result = []

for i in range(22):
    guesses_result.append(random.randint(1, 10))

if number in guesses_result:
   print(f"i guess your number and it is {number}")
 

Ответ №2:

Вы сравниваете a tuple с string типом данных. Это всегда будет Ложью.

Ответ №3:

Я предполагаю, что вы пытаетесь получить 22 случайных числа, и если они совпадают с вводом, то распечатайте их. Если да, то вот ошибки, которые вы совершили

1: Вместо создания 22 переменных используйте циклы

 n = 22
for i in range(n):
    guess = random.randint(1, 10)
 

и поскольку вы используете цикл, вам не нужно задавать количество догадок, вы можете просто угадывать, пока не получите ответ, используя цикл while.

2: Ваше заявление «если». (n1, n22) == numberone это не значит того, что ты думаешь. Что он на самом деле делает, так это сравнивает кортеж n1 и n22 с номером 1, который является кортежем ints в строку, поэтому он всегда возвращает false.

Наконец, вот как должна выглядеть улучшенная версия вашего кода

 from random import randint
number = int(input('Enter a number between 1 and 10n> '))
guess = randint(1, 10)

while(guess != number):
    guess = randint(1, 10)

print('Your number is: '   str(guess))