第11行错误IndexError列表索引超出范围
def max (first, second):
if first>second:
return first
else:
return second
numb=input("Enter Number?")
list=numb.split(".")
first= list[0]
second= list[1]
result=max(first,second)
print(result)
答案 0 :(得分:0)
仅当用户输入不带小数点的数字时才会发生此异常。看这里:
numb=input("Enter Number?")
list=numb.split(".")
如果用户输入一个整数,例如2,那么结果就是这个列表:[2]
。因此,当您执行second= list[1]
时,会导致错误,因为列表只有一个项目。您应该实施检查以确保列表具有适当数量的元素:
list=numb.split(".")
if len(list) == 2:
first = list[0]
second = list[1]
else:
print("No decimal point, try again")
一些额外的说明。首先,对要比较的两个数字使用number.number
是很奇怪的。相反,使用这个:
n = input("Enter two numbers separated by a space: ")
l = n.split(" ")
此外,您通过input()
从用户处获得的所有内容都是字符串。因此,为了进行比较,您需要将两个数字字符串转换为整数:
first = int(list[0])
second = int(list[1])
答案 1 :(得分:0)
你的程序工作正常,给你输入格式 - > num1.num2 说实话,这是一种奇怪的格式。我建议你用
list=numb.split(" ")
输入两个数字,两者之间有空格。
答案 2 :(得分:0)
您的代码存在一些问题,因此我会尝试通过它们,1乘1.
首先,你是通过一个点分裂,这意味着当你输入数字时,它们必须用你的点分开。否则,您将获得超出范围错误的索引。
此外,"数字"你发送到你的函数实际上是字符串,所以这里可能是你的代码的修改版本稍微好一点
def max (first, second):
if first>second:
return first
else:
return second
numb=input("Enter Number?")
list=numb.split(".") #maybe convert that to space
first= list[0]
second= list[1]
result=max(int(first),int(second))
print(result)