В чем проблема кода? Дилетант в этом деле :)
Я новичок. Буду признателен, если вы мне поможете.
Код:
# Игра "Отгадай число"
# Описываю правила игры
print("\tДобро пожаловать на игру 'Отгадай число'\n")
print("Правила просты: " + "\nВведите число от 1 до 100, но если неугадаете - выполните любое простое действие.\n")
# импортирую библиотеку генерации случайных чисел
import random
# задаю переменную под random
one_hundred = random.randint(1, 100)
# создаю цикл
guess = int(input("Введите значение: "))
guess1 = int(input("Введите значение: "))
if guess != one_hundred:
print("Не угадали :) " + "\nЗагаданное число: ", one_hundred)
continue1 = str(input("Продолжаем? " + "\n(чтобы автоматизировать следующие игры, напишите 'авто', а также, чтбы отключить напишите 'отмена авто')")
if continue1 == "да":
print(guess)
elif continue1 == "нет":
input("\n\nНажмите Enter, чтобы выйти. ")
elif continue1 == "авто":
while guess1 != "отмена авто":
print(guess1)
if guess1 != one_hundred:
print("Не угадали :) " + "\nЗагаданное число: ", one_hundred)
print(guess1)
elif guess1 == one_hundred:
victory = str(input("Вы угадали, поздравляю :) "))
print(guess1)
elif guess != "отмена авто":
print(guess)
else:
win = str(input("Поздравляю, вы выйграли! :) " + "\nСыграем ещё? "))
while win != "да" or "нет":
print ("Введите ответ (да или нет) ")
if win == "да":
print(guess)
elif win == "нет":
input("\n\nНажмите Enter, чтобы выйти. ")
Ответы (2 шт):
Для начала у Вас 2 ошибки.
1 - В continue1 намудрили со скобками + ненужное приведение к строке (input и так строка)
2 - Ошибка в табуляции. Следующий блок if как бы вложенный в continue1 что тоже ошибка.
Приложил исправленный кусок кода
if guess != one_hundred:
print("Не угадали :) " + "\nЗагаданное число: ", one_hundred)
continue1 = input("Продолжаем? " + "\n(чтобы автоматизировать следующие игры, напишите 'авто', а также, чтбы отключить напишите 'отмена авто')")
if continue1 == "да":
print(guess)
elif continue1 == "нет":
input("\n\nНажмите Enter, чтобы выйти. ")
break # для цикла который нужно создать
elif continue1 == "авто":
while guess1 != "отмена авто":
print(guess1)
P.S. это не все ошибки. Как минимум на следующую итерацию не ощищаются значение введенных попыток. Там где комментарий # создаю цикл и правда нужно создать цикл. авто так работать не будет.
Я поправил твой код.
# Игра "Отгадай число"
# импортирую библиотеку генерации случайных чисел
import random
# Описываю правила игры
print("\tДобро пожаловать на игру 'Отгадай число'\n")
print("Правила просты: " + "\nВведите число от 1 до 100, но если неугадаете - выполните любое простое действие.\n")
flag = True
# создаю цикл
while flag:
guess1 = int(input("Введите значение: "))
one_hundred = random.randint(1, 100)
if guess1 != one_hundred:
print("Не угадали :) " + "\nЗагаданное число: ", one_hundred)
continue1 = str(input(
"Продолжаем? " + "(чтобы автоматизировать следующие игры, напишите 'авто', а также, чтбы отключить "
"напишите 'отмена авто') "))
if continue1 == "да":
print(guess1)
elif continue1 == "нет":
flag = False
elif continue1 == "авто":
while guess1 != "отмена авто":
guess1 = input("Введите значение: ")
one_hundred = random.randint(1, 100)
if guess1.isdigit():
guess1 = int(guess1)
if guess1 != one_hundred:
print("Не угадали :) " + "\nЗагаданное число: ", one_hundred)
elif guess1 == one_hundred:
print("Вы угадали, поздравляю :)")
else:
win = str(input("Поздравляю, вы выйграли! :) " + "\nСыграем ещё? "))
if win == "да":
print(guess1)
elif win == "нет":
flag = False
Твои ошибки:
Ты не создал цикл, но написал комментарий :)
Если бы ты и создал цикл, то у тебя бы каждый раз было одно и тоже число, потому что ты не обновлял бы его.
Ошибка в табуляции.
if continue1 == "да": print(guess) elif continue1 == "нет": input("\n\nНажмите Enter, чтобы выйти. ") elif continue1 == "авто": while guess1 != "отмена авто": print(guess1)Зачем ты принимаешь 2 числа, если название твоей игры - отгадай числО, а не числА :)
Ошибка в табуляции.
if guess1 != one_hundred: print("Не угадали :) " + "\nЗагаданное число: ", one_hundred) print(guess1) elif guess1 == one_hundred: victory = str(input("Вы угадали, поздравляю :) ")) print(guess1)Во время "авто" ты не обновляешь рандомное число.
Во время "авто", сделал, чтобы принимал на вход строку и потом проверял, можно сделать по другому.
Удачи