Как вернуть плавающие значения, используя деление на пол - PullRequest
1 голос
/ 20 марта 2019

В Python 3 я хочу вернуть единицы измерения целочисленного значения, затем десятки, затем сотни и так далее.Предположим, у меня есть целое число 456, сначала я хочу вернуть 6, затем 5, а затем 4. Есть ли способ?Я пробовал деление на пол и петлю, но не сработало.

Ответы [ 2 ]

0 голосов
/ 20 марта 2019

Напишите генератор , если вы хотите получить цифры в разных местах вашего кода, основываясь на следующих требованиях.

Если вы не очень хорошо знакомы с генератором 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'
>>> 
0 голосов
/ 20 марта 2019

Если вы посмотрите список основных операторов из документации, например, здесь ,

Operator    Description     Example
% Modulus   Divides left hand operand by right hand operand and returns remainder   b % a = 1
//  Floor Division - The division of operands where the result is the quotient in which the digits after the decimal point are removed. But if one of the operands is negative, the result is floored, i.e., rounded away from zero (towards negative infinity):    9//2 = 4 and 9.0//2.0 = 4.0, -11//3 = -4, -11.0//3 = -4.0

С этим знанием вы можете получить то, что вы хотите, следующим образом:

In [1]: a = 456 

In [2]: a % 10 
Out[2]: 6

In [3]: (a % 100) // 10 
Out[3]: 5

In [4]: a // 100 
Out[4]: 4
...