如何显示我在python中创建的max函数

如何显示我在python中创建的max函数,python,Python,我必须获取INT的用户输入并将它们存储在数组中,然后打印列表中的最大值。但我必须创建自己的max函数。我不确定要采取什么步骤将其实现到我的代码中 def getInt(prompt): n = int done = False while not done: try: n = int(input(prompt)) except ValueError: print("I was expectin

我必须获取INT的用户输入并将它们存储在数组中,然后打印列表中的最大值。但我必须创建自己的max函数。我不确定要采取什么步骤将其实现到我的代码中

def getInt(prompt):
    n = int
    done = False
    while not done:
        try:
            n = int(input(prompt))
        except ValueError:
            print("I was expecting a number, please try again...")
        if n == 0:
            done = True

    return n

def maxNum(l):
    maxi = [0]
    for num in l:
        if maxi > num:
            maxi = num
    return maxi

def result():
    print("The maxium value is: " + maxNum(i))

def main():
    num = []
    i = 0
    done = False
    while not done:
        num = getInt("Please enter an integer < 0 to finish >: ")
        if num == 0:
            done = True
        results = maxNum(i)
def getInt(提示):
n=int
完成=错误
虽然没有这样做:
尝试:
n=int(输入(提示))
除值错误外:
打印(“我在等一个号码,请再试一次…”)
如果n==0:
完成=正确
返回n
def最大值(l):
最大值=[0]
对于l中的num:
如果maxi>num:
maxi=num
返回最大值
def result():
打印(“最大值为:“+maxNum(i))
def main():
num=[]
i=0
完成=错误
虽然没有这样做:
num=getInt(“请输入一个整数<0以完成>:”)
如果num==0:
完成=正确
结果=最大数量(i)

python支持内置的
max
函数

max([1,2,3]) # return 3
你的代码完全错了

如果您想输入整数数组,getInt可能是这样的

def getInt():
    array = []
    while True:
    x = int(input('message'))
        if x == 0: break
        array.append(x)
    return array
主代码是

array = getInt()
max_value = max(array)
print (max_value)
如果您想要自己的max函数,可以

def max_func(array):
    max_val = array[0]
    for val in array:
        if val > max_val: max_val = val
    return max_val

以下是
maxNum
函数的固定版本:

def maxNum(l):
    if not l:
        return None # or return whatever you want if user did not input anything
    maxi = l[0] # it expects 'l' to be an array!
    for num in l[1:]:
        if maxi > num:
            maxi = num
    return maxi
def getInt(prompt):
    while True:
        try:
            return int(input(prompt))
        except ValueError:
            print("I was expecting a number, please try again...")
我们还将修复您的
getInt
函数:

def maxNum(l):
    if not l:
        return None # or return whatever you want if user did not input anything
    maxi = l[0] # it expects 'l' to be an array!
    for num in l[1:]:
        if maxi > num:
            maxi = num
    return maxi
def getInt(prompt):
    while True:
        try:
            return int(input(prompt))
        except ValueError:
            print("I was expecting a number, please try again...")
最后,您的“main”函数需要以下修复:

def main():
    num = []
    n = 1
    while n != 0:
        n = getInt("Please enter an integer < 0 to finish >: ") # store user input into n - do not overwrite num!
        num.append(n) # append each user value to the list num
    results = maxNum(num) # pass the entire *list* to maxNum
def main():
num=[]
n=1
而n!=0:
n=getInt(“请输入一个整数<0以完成>:”)#将用户输入存储到n中-不要覆盖num!
num.append(n)#将每个用户值附加到列表num
结果=maxNum(num)#将整个*列表*传递给maxNum

下面的代码正是您想要的

def getInt(prompt):
    try:
        n = int(input(prompt))
        return n
    except ValueError:
        print("I was expecting a number, please try again...")
        getInt()

def maxNum(lst):
    if not lst:     # if list is empty
        return None

    max_elem = lst[0]
    for x in lst:
        if x > max_elem:
            max_elem = x
    return max_elem


def main():
    nums = []
    while True:
        num = getInt("Please enter an integer < 0 to finish >: ")
        if num == 0:
            break
        nums.append(num)
    result = maxNum(nums)
    print("The maxium value is: " + str(result))

main()
def getInt(提示):
尝试:
n=int(输入(提示))
返回n
除值错误外:
打印(“我在等一个号码,请再试一次…”)
getInt()
def最大值(lst):
如果不是lst:#如果列表为空
一无所获
最大元素=lst[0]
对于lst中的x:
如果x>最大元素:
最大元素=x
返回最大元素
def main():
nums=[]
尽管如此:
num=getInt(“请输入一个整数<0以完成>:”)
如果num==0:
打破
nums.append(num)
结果=最大数量(nums)
打印(“最大值为:“+str(结果))
main()

能否请您解释一下您的代码中当前发生了哪些不符合预期的情况?同时提供您收到的任何错误消息。您为代码提供了哪些输入,以及您得到的不符合预期的输出是什么?请编辑问题以包含这些详细信息。(基于您缺乏解释,似乎您希望以某种方式获得输出)看起来您忘记调用函数了。调用
main()
在文件的末尾,我不断得到一个“TypeError:'int'object is not iterable”,也不确定如何获得最大值。您的程序似乎有几个Python可能无法接受的错误。我建议你先纠正错误。接下来可能会出现变量作用域引起的错误。他们在问题中指定,他们正在编写自己的
方法
Im不允许使用内置的max函数。我必须创建自己的附加自定义最大值函数。非常感谢。我知道我需要把.append放在哪里,但不知道放在哪里。很appreciated@HoseaG你确定吗?使用非整数输入进行测试会产生错误。OP忘记将
提示符
参数传递给
getInt()
中对
getInt()的递归调用。