2024-04-23 09:00:48 发布
网友
我有一些代码从input()中获取用空格分隔的数字。我试图对它调用.split(),但由于某种原因它将[56 78 90 1 2 3]变成了[78.0,90.0,1.0,2.0]。谢谢
def insert(self, lst): for x in lst.split(): try: self.theList.append(float(x)) except: 3+4
从字符串lst = "[56 78 90 1 2 3]"开始。它被给出['[56', '78', '90', '1', '2', '3]']的空格分割。注意第一个和最后一个元素中的括号!你知道吗
lst = "[56 78 90 1 2 3]"
['[56', '78', '90', '1', '2', '3]']
然后将每个元素解释为在float('[56')和float('3]')上失败的浮点,从而导致程序进入您谨慎选择不使用的except情况。你知道吗
float('[56')
float('3]')
except
下面是如何将整数字符串转换为可以迭代的正确列表,以便您可以将数字重新解释为浮点数,无论您出于何种原因:
import ast ast.literal_eval(lst.replace(" ", ", ")
你为什么要把一堆整数当作字符串来传递呢?你能告诉我在你的代码中"[56 78 90 1 2 3]"是在什么地方出现的吗?你知道吗
"[56 78 90 1 2 3]"
“某种原因”是您正在调用float,它将值转换为float类型。你知道吗
float
它这样做是因为您使用的是float(x)。如果所有数字都是整数,请使用整数值。否则,在使用float函数时,您可能需要额外的小数位。你知道吗
从字符串
lst = "[56 78 90 1 2 3]"
开始。它被给出['[56', '78', '90', '1', '2', '3]']
的空格分割。注意第一个和最后一个元素中的括号!你知道吗然后将每个元素解释为在
float('[56')
和float('3]')
上失败的浮点,从而导致程序进入您谨慎选择不使用的except
情况。你知道吗下面是如何将整数字符串转换为可以迭代的正确列表,以便您可以将数字重新解释为浮点数,无论您出于何种原因:
你为什么要把一堆整数当作字符串来传递呢?你能告诉我在你的代码中
"[56 78 90 1 2 3]"
是在什么地方出现的吗?你知道吗“某种原因”是您正在调用
float
,它将值转换为float
类型。你知道吗它这样做是因为您使用的是float(x)。如果所有数字都是整数,请使用整数值。否则,在使用float函数时,您可能需要额外的小数位。你知道吗
相关问题 更多 >
编程相关推荐