#python
#python
Вопрос:
Я пытаюсь создать простой ввод. Задача состоит в том, чтобы пользователь угадал сумму трех случайных чисел
Я пытался
guessr1 = input("Guess a number:")
answer1= print(random.randrange(1, 5))
guessr2 = input("Guess a number:")
answer2 = print(random.randrange(1, 5))
guessr3 = input("Guess a number:")
answer3 = print(random.randrange(1, 5))
final_sum_guess = answer1 asnwer2 answer3
- Я не знаю всех функций python
- Я знаю только: переменные, ввод (), печать (), подсчет(), замена (), и, или, если, elif, не, в, isinstance, если еще, конкатенация , f»{var}»
- Я ищу ответ в пределах своих знаний в python
Комментарии:
1. Почему у пользователя есть входные данные, если ему просто нужно найти сумму, почему ему нужно указывать отдельные значения?
2. Ввод был просто для пояснения процесса, который я использовал. Но тогда я мог бы просто использовать guessr2 = print(random.randrange(1, 5))? Если да, то как я суммирую догадки и печатаю их?
3. Это очень непонятно, что вы пытаетесь сделать, не так ли: выберите 3 случайных числа, суммируйте их, затем пользователь должен угадать сумму? Потому что, если да, это на 100% то же самое, что угадать одно случайное число, просто диапазон возможностей ОС, если в 3 раза больше
4. Да, азро, это было бы 1- угадайте числа 2- теперь вы знаете числа, которые вы угадали 3- затем вы суммируете числа, которые вы угадали #### и диапазон от 1 до 5
Ответ №1:
Я хочу отметить, что возврат инструкции print равен None . Это означает, что после этой строки answer1= print(random.randrange(1, 5))
type(answer1)
NoneType
. Вы не можете суммировать NoneType
.
Это может сработать.
import random
guessr1 = input("Guess a number:")
answer1= random.randrange(1, 5)
print(answer1)
guessr2 = input("Guess a number:")
answer2 = random.randrange(1, 5)
print(answer2)
guessr3 = input("Guess a number:")
answer3 = random.randrange(1, 5)
print(answer3)
final_sum_guess = answer1 answer2 answer3
print(final_sum_guess )
Комментарии:
1. Хороший улов! 1. Кроме того, в Python 3.8 и далее можно использовать выражение присваивания для присваивания и печати в одном и том же операторе:
print(answer1:=random.randrange(1, 5))
сохранит результатrandom.randrange(1, 5)
inanswer1
, а также напечатает этот результат.2. Спасибо, что поделились с нами информацией. У меня вопрос.
:
Правильно ли это? Кажется, это необычный синтаксис?3. Спасибо, mosc9575, за ответ. Ценю это. Но конкатенация применяется только к строкам, и если мы объединим, это даст нам строку, а не целое число. Я прав? или функция печати в этом случае не изменяет тип информации?
4. Вы хотите напечатать строку? Затем вы можете привести каждый ответ в виде строки с
str(answer1) ' ' str(answer1) ' ' str(answer2) ' ' str(answer2)
помощью .5. @mosc9575 Да, выражение
:=
называется «оператор моржа». Примеры здесь .
Ответ №2:
Может быть, вы можете просто использовать:
print(final_sum_guess)
или, может быть, так:
print(f'Th answer is {final_sum_guess}')