如何显示我在python中创建的max函数
我必须获取INT的用户输入并将它们存储在数组中,然后打印列表中的最大值。但我必须创建自己的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
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()的递归调用。