Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 项目赢得';t显示我列表中的最大数字_Python - Fatal编程技术网

Python 项目赢得';t显示我列表中的最大数字

Python 项目赢得';t显示我列表中的最大数字,python,Python,我试图显示用户输入数组中的最大数字。我不允许使用内置的排序功能。以下是我编写的代码。在运行时,它总是返回列表中的第一个整数,而不是最大的整数 integers = [] print("Please enter a list of integers.") print("To finish entering the integers, enter a 0 for the value.") def floatInput(): done = False while not done:

我试图显示用户输入数组中的最大数字。我不允许使用内置的排序功能。以下是我编写的代码。在运行时,它总是返回列表中的第一个整数,而不是最大的整数

integers = []

print("Please enter a list of integers.")
print("To finish entering the integers, enter a 0 for the value.")

def floatInput():
    done = False
    while not done:
        integerIn = input("Please enter an integer < 0 to finish >: ")
        try:
            integerIn = int(integerIn)            
        except:
            print("I was expecting an integer number, please try again...")
            integerIn = input("Please enter an integer < 0 to finish >: ")
        if integerIn == int("0"):
           done = True
        else:
            integers.append(integerIn)
    return integers

floatInput()

def largestNumber(array):
    maxNum = -1
    for i in array:
        if i > maxNum:
            maxNum = i
    return maxNum

def displayArray():
    print("The Maximum value is:  " + str(largestNumber(integers)))

displayArray()
整数=[]
打印(“请输入整数列表”)
打印(“要完成输入整数,请输入0作为值。”)
def floatInput():
完成=错误
虽然没有这样做:
integerIn=input(“请输入一个<0以完成>:”)
尝试:
integerIn=int(integerIn)
除:
打印(“我需要一个整数,请重试…”)
integerIn=input(“请输入一个<0以完成>:”)
如果integerIn==int(“0”):
完成=正确
其他:
integers.append(integerIn)
返回整数
floatInput()
def最大编号(数组):
maxNum=-1
对于数组中的i:
如果i>maxNum:
maxNum=i
返回最大值
def displayArray():
打印(“最大值为:”+str(最大数(整数)))
displayArray()

此任务的正确代码:

def float_input():
    integers = list()
    while True:
        value = int(input('Enter value (or 0 to exit): '))
        if value != 0:
            integers.append(value)
        elif value == 0:
            break

    return integers

print(max(float_input()))
或者,如果您想创建自己的
最大编号
函数,请使用以下功能:

def largest_number(lst):
    max_elem = lst[0]
    for j in lst[1:]:
        if j > max_elem:
            max_elem = j
    return max_elem

print(largest_number([1, 2, 5, 3, 4])) # print 5

我的意见是。。。4、5、7、2、0在我的机器上工作正常。按预期打印
最大值为:7
。是否确实没有将
返回最大值缩进另一个级别?这将导致您遇到的问题。返回语句上的缩进错误,我已经修复了它,现在程序可以运行了,很抱歉我的错误。这可能是缩进问题
如果integerIn==int(“0”):done=True
您的版本修复的他的
最大\u数
函数有什么问题?我能看到的唯一区别是,当列表包含负数时,您的操作正确。我建议使用standart Librarbry函数max和更短的float_input()函数创建一个新版本,这将如何帮助任何人理解他在原始版本中的错误?这应该是一个教育资源,而不仅仅是一个工作代码库。