使用浮动问题
Using Float questions
我想写一个定义,这样当我输入一个数字时,我想把它分成一个元组内的不同列表。
我可以让它与整数一起工作,但是当数字是浮点数时我似乎无法让函数工作。
到目前为止我知道:
First=[]
Second=[]
Third=[]
First.append([int(i) for i in str(number)][0])
Second.append([int(i) for i in str(number)][1:])
第三个元组我希望小数点后的任何数字都在第三个=[] 中。
def divide(numbers):
然后最后我知道我会
打印((第一,第二,第三)
我真的很不会写函数,所以任何关于如何形成函数的帮助将不胜感激。我正在使用 Python.
编辑:
我希望 divide(123456) 的输出为 ([1], [2, 3, 4, 5, 6], [])
divide(123.456) 得到 ([1], [2, 3], [4, 5, 6])
的输出
较大数字中的第一个数字将始终进入它自己的列表,然后是另一个列表及其后面的任何内容(但在小数点之前),然后是我想要的最后一个列表后面的内容小数点。一个元组中应该始终包含三个列表。
我会使用 partition
将数字分成整数和小数部分。这甚至适用于没有小数点的数字。然后您可以使用您当前的代码,基本不变,并以类似于第二个的方式生成您的第三个列表。
def divide(x):
left, _, right = str(x).partition(".")
first = [int(left[0])]
second = [int(i) for i in left[1:]]
third = [int(i) for i in right]
return first, second, third
print divide(123456)
print divide(123.456)
结果:
([1], [2, 3, 4, 5, 6], [])
([1], [2, 3], [4, 5, 6])
请注意,这仅适用于 "nice" 浮点数,其字符串表示形式只是一系列数字和一个可选的小数点。例如,它不适用于 float("inf")
或 5e301
.
编辑:对于没有整数部分的负数和浮点数,您可以使用一些额外的特殊外壳。
def divide(x):
if x < 0:
x = -x
left, _, right = str(x).partition(".")
first = [int(left[0])]
second = [int(i) for i in left[1:]]
third = [int(i) for i in right]
if first == [0] and third:
first = []
return first, second, third
我想写一个定义,这样当我输入一个数字时,我想把它分成一个元组内的不同列表。
我可以让它与整数一起工作,但是当数字是浮点数时我似乎无法让函数工作。
到目前为止我知道:
First=[]
Second=[]
Third=[]
First.append([int(i) for i in str(number)][0])
Second.append([int(i) for i in str(number)][1:])
第三个元组我希望小数点后的任何数字都在第三个=[] 中。
def divide(numbers):
然后最后我知道我会 打印((第一,第二,第三)
我真的很不会写函数,所以任何关于如何形成函数的帮助将不胜感激。我正在使用 Python.
编辑: 我希望 divide(123456) 的输出为 ([1], [2, 3, 4, 5, 6], []) divide(123.456) 得到 ([1], [2, 3], [4, 5, 6])
的输出较大数字中的第一个数字将始终进入它自己的列表,然后是另一个列表及其后面的任何内容(但在小数点之前),然后是我想要的最后一个列表后面的内容小数点。一个元组中应该始终包含三个列表。
我会使用 partition
将数字分成整数和小数部分。这甚至适用于没有小数点的数字。然后您可以使用您当前的代码,基本不变,并以类似于第二个的方式生成您的第三个列表。
def divide(x):
left, _, right = str(x).partition(".")
first = [int(left[0])]
second = [int(i) for i in left[1:]]
third = [int(i) for i in right]
return first, second, third
print divide(123456)
print divide(123.456)
结果:
([1], [2, 3, 4, 5, 6], [])
([1], [2, 3], [4, 5, 6])
请注意,这仅适用于 "nice" 浮点数,其字符串表示形式只是一系列数字和一个可选的小数点。例如,它不适用于 float("inf")
或 5e301
.
编辑:对于没有整数部分的负数和浮点数,您可以使用一些额外的特殊外壳。
def divide(x):
if x < 0:
x = -x
left, _, right = str(x).partition(".")
first = [int(left[0])]
second = [int(i) for i in left[1:]]
third = [int(i) for i in right]
if first == [0] and third:
first = []
return first, second, third