微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何仅使用for循环在python中反转给定数字

如何解决如何仅使用for循环在python中反转给定数字

我是在 while 循环中完成的,但无法在 for 循环中完成

我使用 while 循环的代码

x=int(input("enter a number: "))
i=0
while(x>0):
    remainder=x%10
    i=(i*10)+remainder
    x//=10
print(i)

解决方法

在您的示例中,您使用了算术,但为什么不转换为字符串以使生活更轻松?

FirebaseMessaging.getInstance().token.addOnCompleteListener(OnCompleteListener { task ->
    if (!task.isSuccessful) {
        Log.w(TAG,"Fetching FCM registration token failed",task.exception)
        return@OnCompleteListener
    }

    // Get new FCM registration token
    val token = task.result

    // Log and toast
    val msg = getString(R.string.msg_token_fmt,token)
    Log.d(TAG,msg)
    Toast.makeText(baseContext,msg,Toast.LENGTH_SHORT).show()
})

请注意,x = int(input("enter a number: ")) result = "" for char in str(x)[::-1]: result += char print(result) 表示“向后迭代”,如果您的数字以零结尾,它们将出现在反转字符串的开头。如果需要,您可以使用 [::-1]:

修剪它们
lstrip
,

如果你删除 int() 那么你就不需要循环

x = input("enter a number: ")

result = x[::-1]

print(result)

当您将 lstrip('0') 转换为 0 并且想要跳过 10 时,您可能需要 01 来删除 0

OR 在反转后转换为 int 并删除 0

x = input("enter a number: ")

result = x[::-1]
i = int(result)

print(i)

另一个例子 - 它使用 for-loop 但它在开始时仍然需要 str

x = input("enter a number: ")

i = 0

for char in reversed(x):
    i = i*10 + int(char)

print(i)

使用 for 循环,您必须将 int 转换为 str 才能知道它有多少数字。

for-loop 当你知道你有多少项目时很好。 while 当您不知道自己有多少项目,或者您不想一个一个处理项目而是跳过某些内容、重复它等时,效果会更好。

使用 for 循环,您最终可以使用 iterator/generator 它将在数据末尾引发 __StopIter__ - 但可能这个迭代器/生成器必须使用while :)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。