Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python3中迭代浮点?_Python_Python 3.x_For Loop_Floating Point - Fatal编程技术网

如何在Python3中迭代浮点?

如何在Python3中迭代浮点?,python,python-3.x,for-loop,floating-point,Python,Python 3.x,For Loop,Floating Point,现在我有一个变量,x=1001.0010101 从这个x,我想分为两部分: x = 1001.0010101 val_int = int(x) #get val_int = 1001 val_fract = {0:.5f}".format(a - val_int) #get val_fract = 0.00101 是否可以使用for循环迭代val_fract如下:(忽略int部分和小数点) 我试了很多次,但都没能完成,系统告诉我 Traceb

现在我有一个变量,x=1001.0010101

从这个x,我想分为两部分:

x = 1001.0010101
val_int = int(x)                         #get val_int   = 1001
val_fract = {0:.5f}".format(a - val_int) #get val_fract = 0.00101
是否可以使用for循环迭代val_fract如下:(忽略int部分和小数点)

我试了很多次,但都没能完成,系统告诉我

Traceback (most recent call last):
  File "python", line 46, in <module>
TypeError: 'float' object is not iterable
回溯(最近一次呼叫最后一次):
文件“python”,第46行,在
TypeError:“float”对象不可编辑

非常感谢您的帮助,非常感谢。

您可以使用python中的
math
模块来分隔小数部分和整数部分

import math 
x = 1001.0010101
math.modf(x)
#output:(0.0010101000000304339, 1001.0)
根据需要迭代


如果您对十进制读取末尾的额外数字有疑问,可以使用python中的
math
模块来分隔十进制部分和整数部分

import math 
x = 1001.0010101
math.modf(x)
#output:(0.0010101000000304339, 1001.0)
根据需要迭代


我不知道,为什么您在评论中建议缺少前导零:

x = 1001.0010101
#separate fractional from integer part
frac = str(x).split(".")

for digit in frac[1]:
    print(digit)
或者,您可以将这两个部分转换为整数列表:

#integer digits
x_int = list(map(int, frac[0]))
#fractional digits
x_frac = list(map(int, frac[1]))

我不知道,为什么您在评论中建议缺少前导零:

x = 1001.0010101
#separate fractional from integer part
frac = str(x).split(".")

for digit in frac[1]:
    print(digit)
或者,您可以将这两个部分转换为整数列表:

#integer digits
x_int = list(map(int, frac[0]))
#fractional digits
x_frac = list(map(int, frac[1]))
输出

0
0
1
0
1
输出

0
0
1
0
1

您可能希望将变量转换为字符串对象,然后使用正则表达式获得所需的内容。但是,小数部分没有完全分开,我的意思是第二部分只取10101,**00**(这两个零)10101缺失。你的拆分方法代码是什么,你能把它附加到你的问题中吗?你能解释一下这是为了什么吗?这是一件奇怪的事情,我怀疑有更好的方法来解决潜在的问题。请注意,值
1001.0010101
不能在Python
float
中表示。您所能得到的最好结果是
1001.00101010000030433875508606433868408203125
。要查看小数部分中的所有数字吗?如果不是,那么您截断它们的标准是什么?那么您肯定不应该将
1001.0010101
存储在Python
float
中。您应该将其表示为字符串,而不是数字。您可能希望将变量转换为字符串对象,然后使用正则表达式来获取所需内容。我刚刚尝试使用拆分方法来分隔两部分。但是,小数部分没有完全分开,我的意思是第二部分只取10101,**00**(这两个零)10101缺失。你的拆分方法代码是什么,你能把它附加到你的问题中吗?你能解释一下这是为了什么吗?这是一件奇怪的事情,我怀疑有更好的方法来解决潜在的问题。请注意,值
1001.0010101
不能在Python
float
中表示。您所能得到的最好结果是
1001.00101010000030433875508606433868408203125
。要查看小数部分中的所有数字吗?如果不是,那么您截断它们的标准是什么?那么您肯定不应该将
1001.0010101
存储在Python
float
中。你应该把它表示成一个字符串,而不是一个数字。这个答案没有满足我的愿望!哈哈,没关系,我有新东西!谢谢这个答案没有实现我的愿望!哈哈,没关系,我有新东西!谢谢谢谢你,伙计!很好!因为我就像用
num=123.456 split\u num=str(num)转换小数部分一样。split('.')int\u part=int(split\u num[0])decimal\u part=int(split\u num[1])
请参考,使用这种方法有它的缺点。谢谢!很好!因为我就像用
num=123.456 split\u num=str(num)转换小数部分一样。split('.')int\u part=int(split\u num[0])decimal\u part=int(split\u num[1])
请参考它,使用这种方法有缺点。欢迎。如果它解决了您的问题,请接受ans。谢谢,不客气。如果它解决了您的问题,请接受ans。谢谢