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)
我尝试了这个,但它不起作用,我被卡住了。
答案 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)