#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))