我正试图在pycharm中设置一个while循环,它只有在你输入数字10时才会停止,而当我输入10时,它会要求我输入另一个数字。当我运行它时,没有任何语法错误。我收到了一个警告,上面写着“PEP 8:在文件末尾没有新行”。这会不会与为什么它不能正常工作有关?
我已经尝试在使用break之前打印数字。
while True
line = input(“number: “)
if line == 10:
break
我预计当用户在输入中键入10时程序会停止。它继续索要数字,而不是停止。
发布于 2019-06-24 09:17:12
你的代码有两个问题。在while
循环中的条件后面缺少冒号(应该是while True
),这是一个语法错误。
更确切地说,您的逻辑是错误的;input
的结果始终是一个字符串,它永远不会等于一个整数;因此,您需要对其进行强制转换。由于强制转换可能会失败,因此您还需要相应地检查输入;可能如下所示:
while True:
line = input(“number: “)
if (line.isdigit()) and (int(line) == 10):
break
至于你最初的问题,这并不重要。
严格地说,是a text file must end with a newline。如果不这样做,一些程序就不能很好地工作。
在这个时代,考虑到Python及其工具链的级别有多高,您实际上可能不会遇到任何问题。然而,您的集成开发环境应该自动在末尾添加一个换行符(如果没有,您应该能够将其配置为),并且通常情况下,最好遵循PEP8,直到您获得足够的经验来理解何时不应该这样做。
https://stackoverflow.com/questions/56728554
复制相似问题