如何解决如何仅使用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 举报,一经查实,本站将立刻删除。