python-3.x - 如何使用地板除法返回浮点值
问题描述
在 Python 3 中,我想返回整数值的单位,然后是十位,然后是数百位,依此类推。假设我有一个整数 456,首先我要返回 6,然后是 5,然后是 4。有什么办法吗?我尝试了楼层划分和 for 循环,但没有奏效。
解决方案
如果您想根据以下要求在代码的不同位置检索数字,请编写一个生成器。
如果您对 Python 的生成器不太熟悉,请快速查看https://www.programiz.com/python-programming/generator。
» 这里get_digits()是一个生成器。
def get_digits(n):
while str(n):
yield n % 10
n = n // 10
if not n:
break
digit = get_digits(1729)
print(next(digit)) # 9
print(next(digit)) # 2
print(next(digit)) # 7
print(next(digit)) # 1
» 如果您希望迭代数字,您也可以按照以下方式进行。
for digit in get_digits(74831965):
print(digit)
# 5
# 6
# 9
# 1
# 3
# 8
# 4
# 7
»关于其用法的快速概述(在 Python3 的交互式终端上)。
>>> def letter(name):
... for ch in name:
... yield ch
...
>>>
>>> char = letter("RISHIKESH")
>>>
>>> next(char)
'R'
>>>
>>> "Second letter is my name is: " + next(char)
'Second letter is my name is: I'
>>>
>>> "3rd one: " + next(char)
'3rd one: S'
>>>
>>> next(char)
'H'
>>>