我需要找出列表中数字之间的最小差异。你知道吗
由于某些原因,当我在控制台中输入数字时,它不起作用,我得到这个错误TypeError: unsupported operand type(s) for -: 'str' and 'str'
def najmanja_razlika(): #smallest_diff
a=input('unesite brojeve liste')
b=len(a)
razlika=10**20 #difference
for i in range(b-1):
for j in range(i+1,b):
if int(abs(a[i]-a[j]))<razlika:
razlika=abs(a[i]-a[j])
return razlika
print(str(najmanja_razlika()))
当我运行这个时得到的是:
无硅锌锌锌合金板5,4,9,3
Traceback (most recent call last):
File "C:/Users/Nina/PycharmProjects/klkOR/klk4.py", line 19, in <module>
print(str(najmanja_razlika()))
File "C:/Users/Nina/PycharmProjects/klkOR/klk4.py", line 11, in najmanja_razlika
if int(abs(a[i]-a[j]))<razlika:
TypeError: unsupported operand type(s) for -: 'str' and 'str'
如果没有将字符串输入转换为int或float,则可能需要执行以下操作。你知道吗
另外,请注意缩进在Python中很重要。你知道吗
这是我得到的结果:
顺便说一句,如果先对向量排序,就可以将复杂性从O(n^2)降低到O(nlogn)。你知道吗
如果您安装了
numpy
,您可以使用它来有效地计算最小差异(它总是比纯Python循环快)。我还将使用json
(标准库的一部分,不需要安装它)来解析输入字符串。你知道吗相关问题 更多 >
编程相关推荐