0 python
我一直在为课堂上的一个问题而苦苦挣扎,当我想出一个解决方案时,我的教授告诉我这是不正确的,尽管我得到了他要求的输出,同时遵守了他为该问题制定的规则。
该问题要求我执行以下操作:
编写一个 Python 程序,从键盘读取一个整数并将其反转写入屏幕。您需要使用 for 循环,不要使用反向函数或列表。
我的代码如下所示:
num = int(input("So you like things backwards eh? Well, enter a number and
I'll do my best: "))
Onum = str(num)
revStr = ""
for x in Onum:
revStr = x + revStr
print("Your wish is my command! Your" , num, "looks like", revStr, "Backwards!")
Run Code Online (Sandbox Code Playgroud)
它适用于任何以 0 结尾的偶数。
考虑到这些限制,我不知道还能怎么做。我可能做错了什么?
小智 5
尝试这个:
def reverse(n):
m = 0
while n > 0:
n, r = divmod(n, 10)
m = 10 * m + r
return m
Run Code Online (Sandbox Code Playgroud)
然而,对于真正的应用程序,我希望以下速度更快:
def reverse(n):
return int(str(n)[::-1])
Run Code Online (Sandbox Code Playgroud)
尝试满足评论中给出的愚蠢约束的其他一些方法:
n = 45712090
s = str(n)
t = ""
m = len(s)
for i in range(m):
t = s[i] + t
print(t)
n = 45712090
s = str(n)
m = len(s)
for i in range(m - 1, -1, -1):
print(s[i], end="")
print()
import math
n = 45712090
m = math.ceil(math.log10(max(1, n)))
for i in range(m):
n, r = divmod(n, 10)
print(r, end="")
print()
Run Code Online (Sandbox Code Playgroud)