为啥我在 Python 中没有得到 333

Posted

技术标签:

【中文标题】为啥我在 Python 中没有得到 333【英文标题】:Why am I not getting 333 in Python为什么我在 Python 中没有得到 333 【发布时间】:2022-01-22 22:53:36 【问题描述】:
num=int(input("what is your number"))
total=int(input("how many times do you want this number to appear"))
new_num=0
for i in range (total):
    new_num=num*10
    new_num=new_num+num
print (new_num)

即使我将范围更改为 (total+1),我也一直得到 33。我必须做什么才能获得 333

【问题讨论】:

您输入的总计值是多少?请同时指定它们。 【参考方案1】:

当您遇到此类问题时,请使用调试器(python 在 pdb 中包含一个)来单步调试代码并查看变量如何变化。

在简单的情况下,只需使用 print。在这种情况下,在每次分配给 new_num 之后添加一个print(new_num)

在这种情况下,您会注意到 new_num 被设置为错误值的位置。

您继续分配 new_num=num*10 而不是将 new_num 乘以 10

【讨论】:

【参考方案2】:

正如我从您的问题中了解到的那样,您将 num 的值视为3。对于total 以及相同的3

注意:在发布您的问题时,请务必尝试提供一些示例,以便回答者可以阅读、理解和建议、帮助。

我这里有一个快速的解决方案,只是尝试修改以用于其他目的。

int(f'num' * total) 足以满足您的要求。你可以稍微改变一下,也可以为浮点数做。

>>> num=int(input("what is your number: "))
what is your number: 3
>>> 
>>> total=int(input("how many times do you want this number to appear: "))
how many times do you want this number to appear: 3
>>> 
>>> int(f'num' * total)
333
>>> 

谢谢。

【讨论】:

以上是关于为啥我在 Python 中没有得到 333的主要内容,如果未能解决你的问题,请参考以下文章

为啥我在 python 的 sklearn 中使用管道和没有管道得到不同的值

为啥在 Array.ForEach 输出 333 而不是 0112? [复制]

为啥我在这个 python 片段中得到 float 是不可迭代的? [复制]

当 ssl 设置看起来正常时,为啥我在 Python 中得到 [SSL: CERTIFICATE_VERIFY_FAILED]?

BOOST ASIO:为啥我在 Windows 中没有得到“绑定:地址已在使用”(但在 Linux 中得到它)?

调试为啥我在 Apache 2.4 中得到“你没有访问权限”