如何修复毕达哥拉斯定理代码中的While语句?

2024-09-29 05:17:13 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,我试图写一个简单的代码,将为我做毕达哥拉斯定理后,我输入了a,B和C,但代码是跳过我的While语句,我试图重写他们,如果语句,看看是否工作,它会跳过它,我需要一些帮助,请和谢谢你顺便说一句,我意识到在图片中,我的While循环是开放的,没有结束它们的东西,但我确实有一次在那里,但当我改为If语句时,我把它们去掉了。My Code I cant seem to understand


Tags: to代码ifmy图片code语句意识
3条回答

正如python文档所指出的,input函数返回一个字符串:

input([prompt]) If the prompt argument is present, it is written to standard output without a trailing newline. The function then reads a line from input, converts it to a string (stripping a trailing newline), and returns that. When EOF is read, EOFError is raised.

如果您不知道这一点,并且希望进行调试和解决,那么可以执行类似于print(type(Yes_No))的操作,您可以看到它是一个字符串类型,因此当您计算这个表达式:while Yes_No == 1时,它将返回false。你知道吗

因此,这种情况下的解决方法是将输入行更改为

 Yes_No = int(input("Do you have the hypotenuse? For yes press 1 or for no press 2"))

使用input()时,输入以字符串形式出现,在while循环中,您将条件设置为等于1(作为整数)。你知道吗

解决办法是:

varname = int(input("")) #this way it converts your input into an integer

当您从用户获取input()时,它将作为字符串返回。假设用户输入1,它将被存储为"1" # which is a string。现在当你比较Yes_No == 1时,它返回False,因为"1" == 1False。你知道吗


因此,您需要将其解析(转换)为一个数字(整数),这可以通过将字符串传递给int()函数来完成。它将返回该字符串的整数表示形式。对所有的输入做同样的操作,你的问题就会得到解决!你知道吗


代码的另一个问题是没有更新任何while循环中的Yes_No值。这意味着它将导致无限循环,它将继续执行while循环,因为一旦条件变成True,它就不会变成False,因为Yes_No的值没有更新。你知道吗

相关问题 更多 >