Fizz嗡嗡声延长



我知道如何制作一个基本的fizzbuzz,但是现在我被要求扩展它并使它使用户输入数字,我似乎无法使它像示例代码那样工作。

{游戏要求:提供欢迎信息;要求用户输入一个值,根据序列中的存储值检查它是否正确,如果值是正确的,它应该移动到下一个数字如果该值不正确,则游戏应该结束}

print("Welcome to FizzBuzz.")
print("Enter a number, Fizz, Buzz or FizzBuzz:")
for x in range (1,16):
answer = input()
fizz = (x%3 == 0)
buzz = (x%5 == 0) 
fizzbuzz = (x%3 and x%5 == 0)
if answer == x:
print ("next")
elif answer == "fizz": 
print("Next")
elif answer == "buzz":
print("Next")
elif answer == "Fizzbuzz":
print("next")
else:
print("incorrect, game over")

如果输入任何数字,结果是不正确的,当我刚写进去的时候,嘶嘶声和嗡嗡声。我刚开始编程,所以我可能有一些非常错误的东西。

这里的代码将它从控制台接收到的输入分配给一个名为'answer'的变量。因为它从控制台得到的输入是一个字符串,所以'answer'变量的类型变成了一个字符串。

answer = input()

当你尝试将字符串与整数进行比较时,它总是返回false。这就是这里发生的事情。

if answer == x:

为了解决这个问题,您需要确保在比较两个类型是否相等时它们是相同的类型。您可以通过使用str(argument)内置函数来修复此问题,该函数接受参数并将其作为字符串返回。您可以在代码中实现它,如下所示。

if answer == str(x):

在你的代码中也有很多逻辑错误。我用两个变量做了一个简单的例子,这两个变量应该更容易理解。

print("Welcome to FizzBuzz.")
print("Enter a number, Fizz, Buzz or FizzBuzz:")
for currentInteger in range (1,16):
enteredInput = input() #enteredInput is now a string.
desiredInput = ""
fizz = (currentInteger % 3 == 0)
buzz = (currentInteger % 5 == 0)
if fizz:
desiredInput += "fizz"
if buzz:
desiredInput += "buzz"
if not buzz and not fizz:
desiredInput = str(currentInteger) #Since our desiredInput is a string we need to convert our iteration integer to a string in order to assign it to desiredInput variable.
if desiredInput == enteredInput:
print("Next: ")
else:
print("Wrong input game over.")
break

最新更新