如何在python中的新行上打印数字而不使用逗号分隔参数



我正在尝试创建一个函数,在该函数中,python必须在不同的行中打印数字的每个数字。我必须用数学方法处理数字,而不是字符串。然而,当我最初接近它时,我使用字符串方法来掌握从哪里开始。然而,只有当用户输入用逗号分隔的组号时,我所做的代码才能正常工作。例如,我想让用户输入;(my_numbers(4523((:

4

5

2

3

这是我一直在研究的代码:

def my_numbers():
item = input('enter num:')
result='n'.join(item.split(','))
print(result)
my_numbers()

非字符串方法:

import math
def my_numbers():
item = int(input('enter num: '))
digits = [(item//(10**i))%10 for i in range(math.ceil(math.log(item, 10)), -1, -1)][bool(math.log(item,10)%1):]
for d in digits:
print(d)

请参阅:将单个数字转换为个位数Python

您还应该考虑负数和0。不幸的是,math.log无法处理此类输入。另一种选择是使用while循环。

def my_numbers():
item = int(input('enter num:'))
result = []
if item == 0:
print(item)
elif item < 0:
item = -item
print('-')
while item > 0:
# Extract last digit
digit = item % 10
result.insert(0, digit)
# Remove last digit
item = item // 10
for digit in result:
print(digit)
my_numbers()

最新更新