这是我的代码,在get_response()
函数中,如果输入'y'或'n',它首次表示无效,但第二次表示无效。
我该如何解决这个问题?
import random
MIN = 1
MAX = 6
def main():
userValue = 0
compValue = 0
again = get_response()
while again == 'y':
userRoll, compRoll = rollDice()
userValue += userRoll
compValue += compRoll
if userValue > 21:
print("User's points: ", userValue)
print("Computer's points: ", compValue)
print("Computer wins")
else:
print('Points: ', userValue, sep='')
again = get_response()
if again == 'n':
print("User's points: ", userValue)
print("Computer's points: ", compValue)
if userValue > compValue:
print('User wins')
elif userValue == compValue:
print('Tie Game!')
else:
print('Computer wins')
def rollDice():
userRoll = random.randint(MIN, MAX)
compRoll = random.randint(MIN, MAX)
return userRoll, compRoll
def get_response():
answer = input('Do you want to roll? ')
if answer != 'y' or answer != 'n':
print("Invalid response. Please enter 'y' or 'n'.")
answer = input('Do you want to roll? ')
main()
答案 0 :(得分:2)
answer != 'y' or answer != 'n':
永远是真的; or
应为and
。
答案 1 :(得分:0)
应为answer != 'y' and answer != 'n':
答案 2 :(得分:0)
您从逻辑上认为"答案不是和/或,而是在
的代码中j
应用DeMorgans'你得到的规则
not (answer == 'y' or answer == 'n')
也许您应该使用answer != 'y' and answer != 'n'
进行重组。
您还想in
return answer