Вопрос или проблема
Помощь с домашним заданием по Python: Использование входных данных в качестве аргументов для randint() [закрыто]
[вставьте описание изображения здесь][1]У меня есть следующий код, и я пытаюсь использовать введённые значения, присвоенные lower_bound и upper_bound, в качестве аргументов для randint(). Однако я получаю ошибку на картинке. Это мой первый опыт работы с Python. Я должен разработать эту программу согласно приложенному заданию. Поэтому, пожалуйста, предложите только, как я могу правильно сгенерировать случайное число.
вставьте описание изображения здесь
# Игра в угадывание
# main.py
from random import randint
import math
# Ввод данных для нижней и верхней границ диапазона и числа попыток
lower_bound = int(input("Введите нижнюю границу: "))
upper_bound = int(input("Введите верхнюю границу: "))
n_Guesses = int(input ("Введите максимальное количество попыток: "))
# Генерация случайного числа между нижней и верхней границей
x = randint(lower_bound, upper_bound)
print("У вас только " + str(n_Guesses) + " шанса угадать целое число между " + str(lower_bound) + " и " + str(upper_bound))
# Инициализация счета попыток.
count = 0
while count < n_Guesses:
count += 1
# ввод числа для угадывания
guess = int(input ("Введите число: "))
# Проверка условия для угадывания
if guess < x:
print ("Вы угадали слишком мало!")
if guess > x:
print ("Вы угадали слишком много!")
# Если число попыток превышает необходимое количество, выводится этот результат.
if count >= n_Guesses:
print("\nЧисло: %d" % x)
print("\tУдачи в следующий раз!")
[1]: https://i.sstatic.net/8d7RoCTK.png
Ответ или решение
Ваш вопрос касается использования функции randint()
в Python для создания игры на угадывание числа. В вашем коде есть несколько ошибок, которые необходимо исправить. Давайте рассмотрим, как это сделать шаг за шагом.
Полный исправленный код:
# Игра на угадывание
from random import randint
# Запрашиваем у пользователя нижнюю и верхнюю границы диапазона и количество попыток
lower_bound = int(input("Введите нижнюю границу: "))
upper_bound = int(input("Введите верхнюю границу: "))
n_Guesses = int(input("Введите максимальное количество попыток: "))
# Генерируем случайное число между нижней и верхней границей
x = randint(lower_bound, upper_bound)
print("У вас есть только " + str(n_Guesses) + " попыток угадать целое число между " + str(lower_bound) + " и " + str(upper_bound))
# Инициализируем счетчик попыток
count = 0
# Начинаем цикл для угадывания
while count < n_Guesses:
count += 1
# Запрашиваем у пользователя число для угадывания
guess = int(input("Введите число: "))
# Проверяем угаданное число
if guess < x:
print("Вы угадали слишком мало!")
elif guess > x:
print("Вы угадали слишком высоко!")
else:
print("Поздравляем! Вы угадали число за " + str(count) + " попыток!")
break
# Если попытки закончились, выводим загаданное число
if count >= n_Guesses:
print("\nЗагаданное число: %d" % x)
print("\tУдачи в следующий раз!")
Объяснение изменений:
-
Исправление ввода данных: Значения, которые вы вводите для
guess
, а также в выводах передаются как строки. Чтобы сравнивать их с загаданным числом, нужно конвертировать их в типint
. Я добавилint
к вызовуinput
дляguess
. -
Использование
str()
для вывода: Для корректного объединения строк в функцииprint
, вам следует использоватьstr()
для конвертирования числовых значений в строки. -
Условия для проверки попыток: Я исправил обработку условия, когда пользователь угадывает число правильно. Теперь, если число угадано, программа завершит цикл и сообщит об этом.
- Улучшение вывода сообщений: Сообщения теперь более четкие и правильно информируют пользователя о результате игры.
Таким образом, исправленный код теперь позволит вам без ошибок выполнить задание и организовать игру на угадывание числа с использованием функций и условий.