在查找列表中第二大数的平方和python程序中,如何解决这个错误? def get_第二大(num): 最大=数值[0] 第二大=数值[0] 而i最大值: 第二大=最大 最大=num[i] elif num[i]>第二大: 第二大=nums[i] 返回第二大 i=int(输入(“输入数字”)) 列表_1=列表(即拆分(“,”) 第二大=获取第二大(列表1) 打印(“第二大数字为:”,第二大)
我得到了什么在查找列表中第二大数的平方和python程序中,如何解决这个错误? def get_第二大(num): 最大=数值[0] 第二大=数值[0] 而i最大值: 第二大=最大 最大=num[i] elif num[i]>第二大: 第二大=nums[i] 返回第二大 i=int(输入(“输入数字”)) 列表_1=列表(即拆分(“,”) 第二大=获取第二大(列表1) 打印(“第二大数字为:”,第二大),python,python-3.x,Python,Python 3.x,我得到了什么 def get_second_largest(num): largest = num[0] second_largest = num[0] while i < len(num) : if num[i] > largest: second_largest = largest largest = num[i] elif num[i] > second_largest
def get_second_largest(num):
largest = num[0]
second_largest = num[0]
while i < len(num) :
if num[i] > largest:
second_largest = largest
largest = num[i]
elif num[i] > second_largest:
second_largest = nums[i]
return second_largest
i = int(input("Enter Numbers "))
list_1 = list(i.split(" ,"))
second_largest = get_second_largest(list_1)
print("Second largest number is :", second_largest)
输入数字5 10
回溯(最近一次呼叫最后一次):
文件“C:\Users\user\Desktop\Python through atom\Find\u The\u Second\u max\u Num.py”,第15行,在
第二大=获取第二大(列表1)
文件“C:\Users\user\Desktop\Python through atom\Find\u Second\u max\u Num.py”,第4行,在get\u Second\u max中
而i TypeError:“当您使用Python内置函数读取某些输入时,它会将输入转换为字符串(去掉尾随的换行符)并返回该字符串
拆分时执行从string
到int
的显式转换将解决您的错误
>>> i = input("-->")
-->1 ,2 , 4 ,8
>>> i
'1 ,2 , 4 ,8'
>>> i.split(" ,")
['1', '2', ' 4', '8']
还有几件事需要指出:
int(输入(“输入”))
抛出ValueError,因为如中所述,输入函数返回字符串
list(i.split(“,”)
默认情况下返回单词列表。因此,不需要显式转换为list
实现您的目标(即找到第二大数字)的一种更具python风格的方法是利用/内置函数和列表索引。(根据@mohideen bin mohammed的建议)
当您使用Python内置函数读取某些输入时,它会将输入转换为字符串(去掉尾随的换行符)并返回该字符串
拆分时执行从string
到int
的显式转换将解决您的错误
>>> i = input("-->")
-->1 ,2 , 4 ,8
>>> i
'1 ,2 , 4 ,8'
>>> i.split(" ,")
['1', '2', ' 4', '8']
还有几件事需要指出:
int(输入(“输入”))
抛出ValueError,因为如中所述,输入函数返回字符串
list(i.split(“,”)
默认情况下返回单词列表。因此,不需要显式转换为list
实现您的目标(即找到第二大数字)的一种更具python风格的方法是利用/内置函数和列表索引。(根据@mohideen bin mohammed的建议)
最简单的方法
>>> l = [int(n) for n in i.split(" ,")]
>>> l
[1, 2, 4, 8]
你的错误是,
您正在比较字符串与字符串,即'10'>'20'
这将导致Python3中出现错误,但在Python2中可能会起作用。
你不能用最简单的方法来做
>>> l = [int(n) for n in i.split(" ,")]
>>> l
[1, 2, 4, 8]
你的错误是,
您正在比较字符串与字符串,即'10'>'20'
这将导致Python3中出现错误,但在Python2中可能会起作用。
你不能做>