我是python的新手,所以我道歉。我终于摆脱了所有的语法错误,但现在我只是不知道我做错了什么。
#Get the integers from the user
def main():
largest = 0
smallest = 0
number = int(input('Input a number: '))
while (number != -99):
if number > largest:
largest = number
elif number < smallest:
smallest = number
number = int(input('Input a number, enter -99 to stop'))
# This module displays the smallest and largest integer entered.
def showNumber(smallest, largest):
print('The smallest number is: ', smallest)
print('The largest number is: ', largest)
#Call the main
main()
showNumber(smallest, largest)
这应该向用户询问数字,直到它们放入-99,然后当它们放-99时它应该显示最小和最大的整数。 我知道,这太丑了。我只能使用简单的数据类型。
答案 0 :(得分:3)
您可以添加额外的4个字符(空格)以使其正确,即在一行添加缩进
def main():
largest = 0
smallest = 0
while (number != -99):
if number > largest:
largest = number
elif number < smallest:
smallest = number
number = int(input('Input a number, enter -99 to stop')) # Indent this line
您可以将代码与我上面显示的代码进行比较。我评论的行有不同之处,即前面的空格量(缩进)
因为while
循环不会结束,因为number
更新在之外的while
循环。
您的不正确的代码:
while (number != -99):
### The while loop starts here ###
if number > largest:
largest = number
elif number < smallest:
smallest = number
### The while loop ends here ###
number = int(input('Input a number, enter -99 to stop'))
因此while
循环永远不会结束,因为它会持续比较相同的number
,而不是与新输入进行比较。在这种情况下,您的程序不会像您所说的那样停止,而是卡住在所谓的无限循环
Python“代码块”由缩进定义,因此具有相同缩进级别的代码被视为在同一代码块中。因此,每次访问循环时,为了让number
更改,您需要将input
置于 while循环中:
更正了代码:
while (number != -99):
### The while loop starts here ###
if number > largest:
largest = number
elif number < smallest:
smallest = number
number = int(input('Input a number, enter -99 to stop'))
### The while loop ends here ###
更新(@MERM):
showNumber
函数也存在一些问题,因为它没有使用main
函数中的变量。您可以在showNumber
函数中调用main
函数,就像MERM所说:
def main():
largest = 0
smallest = 0
while (number != -99):
if number > largest:
largest = number
elif number < smallest:
smallest = number
number = int(input('Input a number, enter -99 to stop'))
showNumber(smallest, largest)
还有一些鼓励的话,你的代码并不难看。事实上它很好,很简洁,正是解决了你想要解决的问题。你似乎明白你应该如何在代码中布置你的逻辑,即使你说你“对python来说是一个非常新的”。
坚持下去!
答案 1 :(得分:2)
Python是缩进敏感的。
elif和number需要与if相同的缩进。此外,您需要从main内部调用showNumber,否则最小和最大的是未定义的(不在同一范围内)。
def main():
number = int(input('Input a number: '))
largest = number
smallest = number
while (number != -99):
if (number > largest):
largest = number
elif (number < smallest):
smallest = number
number = int(input('Input a number, enter -99 to stop'))
showNumber(smallest, largest)
应该照顾它。