使用用户输入作为分配数据脚本的最小值和最大值

Minimum and maximum using user input as data script for assignment

我实际上开始了一门课程。非常简单的课程,即使我之前没有 Python 经验(该课程被称为“..... for everyone”)

我在完成课程前的最后一项作业,我必须创建一个脚本来查找 5 个不同输入列表的最小和最大数量 (7, 2, bob, 10, 4) 哪个无效以及我的脚本应输出“无效输入”消息。

这是他们给你的基本代码。

largest = None
smallest = None
while True:
num = input("Enter a number: ")
if num == "done" : break
print(num)`enter code here`

print("Maximum", largest)

largest = None
smallest = None
while True:
    num = input("Enter a number: ")
    if num == "Done" :
        break
    #print(num)
    try:
        fnum = float(num)
    except:
        print('Invalid input')
        continue
#for largest in fnum : possible
if largest is None :
    largest = fnum
elif fnum > largest :
    largest = fnum
#for smallest in fnum : possible
if smallest is None :
    smallest = fnum
elif fnum < smallest :
    smallest = fnum


print('Maximum is', largest)
print('Minimum is', smallest)

当我键入输入时,所有代码都能正常工作... 但是当我输入“完成”时,脚本就完成了。它总是给我最后一次输入的输入。 我看到了用于相同目的的不同脚本,但我不想复制其他人的任何脚本。我正在学习这门课程,我希望有人能帮我指出错误或给我一些建议。

对于一个 6 天的程序员来说真的不错:-)

小提示:当您计算一系列值的最小值或最大值时,您可以从相反的极限开始。我的意思是,如果您正在寻找最小值,则可以从将变量设置为最大值开始。与其他语言不同,Python 不固定整数限制,但您可以自己修复它们。例如这个表格:

smallest = None
for value in values:
  if smallest is None or smallest value < smallest:
    smallest = value
return smallest

可以像这样表达得更紧凑一点:

smallest = 1000000 # depending on your needs (in C we would write INT_MAX for instance)
for value in values:
    if value < smallest: smallest = value
return smallest

请注意,您永远不会 return 初始值。

终于明白了..这就是我应该做的:

largest = None
smallest = None
while True:
    num = input("Enter a number: ")
    if num == "Done" :
        break
    #print(num)
    try:
        fnum = float(num)
    except:
        print('Invalid input')
        continue
#for largest in fnum : possible
    if largest is None :
        largest = fnum
    elif fnum > largest :
        largest = fnum
    #for smallest in fnum : possible
    if smallest is None :
        smallest = fnum
    elif fnum < smallest :
        smallest = fnum
def done(largest,smallest):
    print ("Maximum is", int(largest))
    print ("Minimum is", int(smallest))

done(largest,smallest)

感谢@DSPR 的评论。