将类型从“列表”类更改为整数时出现错误。我遇到的错误是这样
des = int(ces)
TypeError: int() argument must be a string, a bytes-like object or a number, not 'list'.
代码:
print('Please enter a latitude or longitude value in DMS or DD format.')
a = [int(x) for x in input("Please enter DMS or DD in integer format: ").split(',')]
if len(a) == 3:
d,b,c = a
dd = float(d) + float(b)/60 + float(c)/(60*60);
print("The input value is in DMS form and the DD is", dd)
elif len(a) == 1:
ces = str(a)
des = int(ces)
md = abs(ces - des) * 60
m = int(md)
sd = (md - m) * 60
print[des, m, sd]
else: print("Incorrect input format")
答案 0 :(得分:0)
列表a是整数列表。我不知道为什么要把它变成一个字符串然后再变成一个整数,但是:
>>>> str([0])
'[0]'
然后,尝试再次将其转换为整数失败:
>>>> int('[0]')
ValueError: invalid literal for int() with base 10: '[0]'
即使可行,下一步也将毫无意义,因为它始终为0:
ces = str(a[0])
des = int(ces)
md = abs(a[0] - a[0]) * 60 # This is always 0
我不确定您的代码应该做什么。
答案 1 :(得分:0)
问题是您尝试将一个对象容器(在此为列表)强制转换为数字类型(在此为整数)。但是,现在不管您要尝试多长时间和多长时间使这种物理咖啡杯尝起来像Americano一样,它都不是真正的东西,您真的想要在杯子中放入好东西。
要获取它,您需要访问第一个列表元素,正如我在评论中指出的那样。例如,
a = [42.42]
是包含数字42.42的列表。这个清单就像一杯咖啡,里面含有美味的意式浓缩咖啡(注意:不太好的纸质里面的美味液体)。如果您想获取该号码(容器中的内容),则需要
a[0]
> 42.42
现在有了数字,您可以得到整数部分:
int(a[0])
> 42
并再次减去:
a[0] - int(a[0])
> 0.42
至少我认为这是您要尝试做的。我可能是错的。