我正在尝试从用户输入中获取浮点数,for for for in python 3.6.7:
for _ in range(int(input())):
foo = float(input())
Input:
1
12.3
没有错误,但是出现多个值错误时:
for _ in range(int(input())):
foo = float(input())
Input:
2
2.5 3.1
ValueError: Could not convert string to float: '2.5 3.1'
有什么想法吗?预先感谢。
当您输入某些内容并按Enter时,input
将数据视为单字符串。因此,3.141<hit Enter>
是一个字符串"3.141"
,可以将其转换为float
的浮点数。
但是, 3.141 5926<hit Enter here>
是单字符串 "3.141 5926"
。这是单个(浮点)数字的表示吗?它不是(有两个数字),因此float
由于空间而无法将其转换为单> 数字。
如果要将这些数字视为单个数字分开的这些数字,请split
字符串,然后转换每个数字:
data = input().split() # gives ['3.141', '5926']
for x in data:
print(float(x)) # converts each string to a number