按顺序打印3位数字的数字

时间:2015-10-02 14:50:04

标签: python

我目前正在尝试创建一个程序,该程序向用户请求一个3位数字,并按顺序打印出该数字的各个数字,例如:

"Input 3 digits: 123"
1
2
3

我不允许使用任何形式的字符串,只是数学运算。

另外,我已经得到了第二和第三位的公式,但是在我的生命中无法得到第一个,当我运行程序时,第一个和第二个数字返回一个十进制数,我不知道如何避免。

我的代码:

n = eval(input('Enter a 3-digit number: '))
c = n % 10
b = n - c
b = b / 10
b = b % 10
a = n / b
a = a % 10
print(a)
print(b)
print(c)

5 个答案:

答案 0 :(得分:2)

有一种更简单的方法可以做到这一点并不需要任何数学计算。在Python中,字符串是可迭代的,input()返回一个字符串。所以你可以这样做:

n = input('enter a number: ')
for x in n:
    print(x)

答案 1 :(得分:1)

在拨打int

之前,将您的号码除以100

输入3位数:435

firstDigit = int(n / 100)

firstDigit将是4

答案 2 :(得分:1)

您可以将输入作为字符串输入,因此,使用您的示例,您将获得' 123'。 如果您没有义务使用公式,您可以按如下方式获得每个数字:

user_input = input('Enter a 3-digit number: ')
first_digit, second_digit, third_digit = [int(digit) for digit in user_input]
print first_digit
print second_digit
print third_digit 

答案 3 :(得分:0)

问题在于你将n除以b - 没有理由将原始数除以第二位数。你可能想再次除以10。

如果你记得当你划分整数时会更容易,你会得到一个整数 - 例如:     329/10 给     32 这样可以省去必须减去(同样,更清晰的变量名称使其更具可读性):

dig3 = n % 10
n = n/10
dig2 = n % 10
dig1 = n/10

答案 4 :(得分:0)

我认为你正在寻找这个:

n = eval(input('Enter a 3-digit number: '))
c = n % 10
b = int(n / 10)
b = b % 10
a = int(n / 100)
a = a % 10
print(a)
print(b)
print(c)