Python - 编写一个循环显示给定数字的反向形式

2 投票
6 回答
28001 浏览
提问于 2025-04-17 21:34

我想让用户输入一个数字,然后让电脑把这个数字反过来输出。你们觉得我该怎么做呢?

num = int(input("insert a number of your choice "))
for i in 

这就是我目前的进展……我用的是3.3.4版本。

6 个回答

0

我不太想替你解决问题,因为你似乎并没有真正尝试去解决它,也没有具体说明你遇到了什么困难。不过:

 num = str(input("..."))
 output = [num[-i] for i in range(len(num))]
 print(output)
1

这里有很多不同的回答,很多看起来都差不多。

for i in str(num)[::-1]: 
    print i

这个简洁的变体做了几件值得用简单话说的事情,具体来说:

  1. num 转换成字符串
  2. 反转它(用 [::-1],这是一个切片的例子,我建议你多了解一下这个用法)
  3. 最后,遍历这个反转后的字符串(因为字符串是可以迭代的,你可以逐个字符地处理它们)
  4. 并打印出每个字符。

几乎所有的回答都使用 [::-1] 来反转列表——随着你阅读更多的代码,你会在更多地方看到这个用法。我建议你在 S.O. 上多了解一下 这里

1

为什么要把它变成数字呢?“反向”这个说法听起来像是字符串。所以不如别把它转换成整数,而是直接当作字符串来用,反向遍历它就行了。

4

你不需要先把它变成整数再变回字符串!直接这样做就行:

num = input("insert a number of your choice ")
print (num[::-1])

或者,你可以试试用for循环来做:

>>> rev = ''
>>> for i in range(len(num), 0, -1):
...     rev += num[i-1]
>>> print(int(rev))

最好的方法是反向遍历Python字符串,说的是最有效和推荐的方式是:

>>> for c in reversed(num):
...     print(c, end='')
5

这里有一个答案,它通过不断地把一个数字除以10,并每次取余数,来输出这个数字的反向结果,而不是反转一个字符串:

num = int(input("Enter a number: "))

while num > 0:
    num, remainder = divmod(num, 10)
    print remainder,

哦,我也没有仔细阅读要求!它必须用一个for循环。唉。

from math import ceil, log10

num = int(input("Enter a number: "))

for i in range(int(ceil(math.log10(num)))): # => how many digits in the number
    num, remainder = divmod(num, 10)
    print remainder,

撰写回答