我正在尝试从用户输入中使用python 3.6.7中的for循环获取浮点数:
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'
有什么想法吗?预先感谢。
答案 0 :(得分:2)
输入内容并按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