如何在PYTHON中找到输入数字的数千,数百,数十和1的数字?例如:256有6个,5个等等

时间:2015-09-24 03:18:05

标签: python numbers operators

num = int(input("Please give me a number: "))
print(num)
thou = int((num // 1000))
print(thou)
hun = int((num // 100))
print(hun)
ten =int((num // 10))
print(ten)
one = int((num // 1))
print(one)

我尝试了这个,但它不起作用,我被卡住了。

9 个答案:

答案 0 :(得分:3)

喜欢这个吗?

a = str(input('Please give me a number: '))

for i in a[::-1]:
    print(i)

<强>演示:

Please give me a number: 1324
4
2
3
1

所以第一个数字是1,接下来是数字等等。

答案 1 :(得分:2)

您可能想尝试如下操作:

def get_pos_nums(num):
    pos_nums = []
    while num != 0:
        pos_nums.append(num % 10)
        num = num // 10
    return pos_nums

并按以下方式调用此方法。

>>> get_pos_nums(9876)
[6, 7, 8, 9]

0th索引将包含单位,1st索引将包含数十,2nd索引将包含数百,依此类推...

此功能将失败,并带有负数。我把负数的处理留给您算作练习。

答案 2 :(得分:1)

num = 1234

thousands = num // 1000
hundreds = (num % 1000) // 100
tens = (num % 100) // 10
units = (num % 10)

print(thousands, hundreds, tens, units)
# expected output: 1 2 3 4

"//" 在 Python 中代表整数除法。它在很大程度上从浮点数中去除小数部分并返回一个整数

例如:

4/3 = 1.333333
4//3 = 1

答案 3 :(得分:0)

请注意,我从6pack kid的上述答案中获得了启发,以获取此代码。我添加的只是一种获取确切位置值的方法,而不仅仅是将数字分开。

num = int(input("Enter Number: "))
c = 1
pos_nums = []
while num != 0:
    z = num % 10
    pos_nums.append(z *c)
    num = num // 10
    c = c*10
print(pos_nums)

运行此代码后,对于12345的输入,将是输出:

Enter Number: 12345
[5, 40, 300, 2000, 10000]

这有助于我找到所需的答案。

答案 4 :(得分:0)

money = int(input("Enter amount: "))
thousand = int(money // 1000)
five_hundred = int(money % 1000 / 500)
two_hundred = int(money % 1000 % 500 / 200)
one_hundred = int(money % 1000 % 500 % 200 / 100)
fifty  = int(money % 1000 % 500 % 200 % 100 / 50)
twenty  = int(money % 1000 % 500 % 200 % 100 % 50 / 20)
ten  = int(money % 1000 % 500 % 200 % 100 % 50 % 20 / 10)
five  = int(money % 1000 % 500 % 200 % 100 % 50 % 20 % 10 / 5)
one = int(money % 1000 % 500 % 200 % 100 % 50 % 20 % 10 % 5 / 1)
if thousand >=1: 
  print ("P1000: " , thousand)
if five_hundred >= 1:
  print ("P500: " , five_hundred)
if two_hundred >= 1:
  print ("P200: " , two_hundred)
if one_hundred >= 1:
  print ("P100: " , one_hundred)
if fifty >= 1:
  print ("P50: " , fifty)
if twenty >= 1:
  print ("P20: " , twenty)
if ten >= 1:
  print ("P10: " , ten)
if five >= 1:
  print ("P5: " , five)
if one >= 1:
  print ("P1: " , one)

答案 5 :(得分:0)

您可以尝试使用此函数拆分数字:

def get_place_values(n):
    return [int(value) * 10**place for place, value in enumerate(str(n)[::-1])]

例如:

get_place_values(342)
>>> [2, 40, 300]

接下来,您可以编写一个辅助函数:

def get_place_val_to_word(n):
    n_str = str(n)
    num_to_word = {
        "0": "ones",
        "1": "tens",
        "2": "hundreds",
        "3": "thousands"
    }
    return f"{n_str[0]} {num_to_word[str(n_str.count('0'))]}"

然后你可以像这样将两者结合起来:

def print_place_values(n):
    for value in get_place_values(n):
        print(get_place_val_to_word(value))

例如:

num = int(input("Please give me a number: "))
# User enters 342
print_place_values(num)
>>> 2 ones
4 tens
3 hundreds

答案 6 :(得分:0)

最快的方法:

num = str(input("Please give me a number: "))
print([int(i) for i in num[::-1]])

答案 7 :(得分:-1)

在 Python 中,您可以尝试使用此方法打印数字的任何位置。

例如,如果要打印数字的 10 位置, 将数字位置乘以 10,将是 100, 将输入的模数除以 100,然后除以 10。

注意:如果位置增加,则模数和除法中的零数也会增加:

input = 1234

print(int(input % 100) / 10 )

输出:

3

答案 8 :(得分:-1)

所以我看到另一个用户的回答是什么,我试了一下,但效果不佳,这是我解决问题的方法

# Getting an input from the user

input = int(input())

# Finding the tenth place of the number

print(int(input % 100) // 10)