magnitude = input("Enter the value of magnitude: ")
for mag in magnitude:
if float(mag) <= 1.9:
print(mag1)
elif float(mag) <= 2.9:
print(mag2)
elif float(mag) <= 3.9:
print(mag3)
如果我用小数点做任何输入,我就会得到这个错误
Traceback (most recent call last): line 36, in effects
if float(mag) <= 1.9:
ValueError: could not convert string to float: '.'
我尝试在循环之前将原始的input语句转换为float,但它只会给我一个不同的错误。你知道吗
假设python3.x,
input()
给您一个字符串,因此magnitude
是一个字符串。你知道吗执行
for mag in magnitude:
操作时,将迭代输入字符串中的每个字符,因此,如果输入类似5.4
的内容,mag
将首先是5
,然后是.
,然后是4
。当您尝试将'.'
转换为float时,这会导致问题。你知道吗如果输入的是一个十进制数,则不需要循环,只需执行-
假设前面定义了
mag1
/mag2
/mag3
。你知道吗如果您的输入是以空格分隔的十进制数,如
5.4 4.5 ...
,则在字符串上使用.split()
根据任何空格进行拆分(这样您就可以得到所有数字的列表),然后在拆分列表上迭代,例如-再次假设前面定义了
mag1
/mag2
/mag3
。你知道吗函数
input
总是给你一个字符串。在本例中,您尝试对字符串进行迭代。如果将此值更改为浮点值,则会遇到类似的问题。你知道吗Python字符串作为序列操作,其中每个字符都是一个元素。 因此,如果输入字符串“2.5”,那么
for mag in magnitude:
行将依次遍历每个字符。你知道吗例如:
将产生:
字符
4
和9
可以强制为数字类型,但是.
不能,这会导致错误。你知道吗相关问题 更多 >
编程相关推荐