编写一个Python程序,从用户那里获取一个数字,并从左到右打印它的数字

fzsnzjdm  于 2023-06-28  发布在  Python
关注(0)|答案(5)|浏览(102)

我必须写一个程序,从用户那里得到一个数字,然后从左到右打印它的数字。(如果用户给出32768,则输出应为3 2 7 6 8)。
我写了这个代码,前半部分计算数字,后半部分分离数字并打印它们。这两个代码块单独工作(比如如果你在第二个代码块中给予count和n的值,它就工作了),但合在一起就不工作了(),输出显示0 0 0 0 0

count=0
while n>0:
  count=count+1
  n=n//10

x=10**(count-1)
for a in range(1,count+1,1):
   y=int(n//x)
   n=n%x
   x=x/10

   print(y,end=" ")
nnsrf1az

nnsrf1az1#

你可以简单地做:

# take user input 
n = int(input())
print(' '.join(str(n)))

输入:

32768

输出:

3 2 7 6 8
5f0d552i

5f0d552i2#

如果你的代码在后半部分,你试图把数字分开并打印出来。问题是你在循环中修改了n的值,这会导致不正确的结果。

试试modyfing它像这样:

count = 0
original_n = n  # Store the original value of n

while n > 0:
    count += 1
    n //= 10

x = 10**(count-1)
n = original_n  # Reset n to the original value

for _ in range(1, count+1, 1):
    y = n // x
    n %= x
    x //= 10

    print(y, end=" ")
  • original_n用于跟踪n的原始值,而n本身在循环内被修改以进行数字分离。

希望能帮上忙!如果是的话,请留下你的意见!!^^

eufgjt7s

eufgjt7s3#

你必须从用户那里得到一个整数(input)。不允许使用str.join()。
因此:

n = int(input())

d = [] if n > 0 else [0]

while n > 0:
    d.insert(0, n % 10)
    n //= 10

print(*d)

控制台:

3456
3 4 5 6

注:

这对负数无效

oaxa6hgo

oaxa6hgo4#

我解决了!!这是一个愚蠢的问题()谢谢你编码的人没有嘲笑我。我只需要把输入n放到另一个变量中,然后在下半部分使用它。

n=int(input())
k=n
count=0
while n>0:
  count=count+1
  n=n//10

x=10**(count-1)
for a in range(1,count+1,1):
   y=int(k//x)
   k=k%x
   x=x/10

   print(y,end=" ")
vof42yt1

vof42yt15#

你可以使用for循环来打印数字,一个接一个,后面加一个空格:

for digit in digits:
    print(digit, end=" ")

相关问题