Нам поручают сделать в школе игру «камень, ножницы, бумага, ящерица, спок» (введение в программирование). У меня проблема с получением моего кода для печати текста, который у меня есть в def handResult. Проблема в:
если у меня есть print (handResult (playerHand, enemyHand)) в строке 105, это напечатает, например, «Камень сокрушает Ящерицу. Игрок побеждает!» Но это также напечатает "2" (из-за функции возврата, которую я использую так что он ведет счет результатов).
Если у меня нет print (handResult (playerHand, enemyHand)) в строке 105 он не печатает возвращаемую функцию (0,1,2), но также не выводит напечатайте другой текст («« Камень сокрушает Ящерицу. Игрок побеждает! »)
так что мой вопрос: Как мне заставить его печатать текст («« Рок сокрушает Ящерицу. Игрок побеждает! »), Но не указывать возвращаемый номер?
Извините за странное объяснение - я новичок во всем этом, поэтому не знаю, как правильно объяснять.






Проблема в том, что у вас есть оператор print в функции handResult! Каждый раз, когда вы вызываете функцию, она выводит результат.
Но у вас также есть такая строчка: print(handResult(playerHand, enemyHand)).
Это строка, которая фактически выводит число, возвращаемое функцией.
Жестокий способ решить эту проблему - удалить печать в print(handResult(playerHand, enemyHand)) (оставив только handResult(playerHand, enemyHand)), но это не оптимально, потому что несколькими строками выше в result = (handResult(playerHand, enemyHand)) программа все равно что-то распечатает (что нежелательно).
Решение состоит в том, чтобы переместить всю структуру печати, указанную выше, и удалить строку, содержащую print(handResult(playerHand, enemyHand)), поскольку строка result = (handResult(playerHand, enemyHand)) уже печатает то, что вам нужно.
Пример кода ниже:
if playerHand in validHands:
# Selects random enemy hand
enemyHand = random.choice(validHands)
print(clearScreen)
print("Round " + repr(round))
print(separator)
print("Your hand: " + hands[playerHand - 1])
print("Enemy hand: " + hands[enemyHand - 1])
print("")
result = (handResult(playerHand, enemyHand))
# Present results
if result == 2:
pScore += 1
if result == +1:
eScore += 1
round += 1
print("")
printScore(pScore, eScore)
print(separator, flush = True) # Flush = true makes it so that it prints before sleeping
Ааа, я этого не знал! И это отлично сработало! Большое спасибо :)
Без проблем! Если ответ удовлетворительный, то выберите его как принятый :)
Возможно, вы хотели бы опубликовать минимальный воспроизводимый пример.