带有循环值的多个浮点输入()



我正在尝试从用户输入中获取浮点数,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

相关内容

  • 没有找到相关文章

最新更新