【问题标题】:While loop is not producing multiplication table [duplicate]虽然循环不产生乘法表[重复]
【发布时间】:2020-03-02 01:30:33
【问题描述】:
i = 0
d =  input("Enter the no. you want ")
while i < 11 :
    print(i * d)
    i+= 1

它应该给出 d 的乘法表,但它给出了以下结果,例如。 '3' 代替

3 

33

333

3333

33333

333333

3333333

33333333

333333333

3333333333

【问题讨论】:

  • d 是一个字符串。将其类型转换为int
  • d 是一个字符串,而不是一个数字。 i * di 的实例d 连接到自身。您需要尝试使用内置的 intd 解析为数字。

标签: python loops while-loop multiplication


【解决方案1】:

input() 返回一个字符串而不是 int,如果你在 Python 中将一个字符串与一个整数 num 相乘,那么你将得到一个重复 num 次的字符串。例如,

s = "stack"
print(s * 3) # Returns "stackstackstack"

您需要使用int() 构造函数将输入从str 转换为int。

d =  int(input("Enter the no. you want "))

试试这个:

d = int(input("Enter the no. you want "))
for i in range(1,11):
    print(i * d)

在上面的代码中,我用for looprange() 替换了你的while 循环结构,以获取数字序列。

奖励:

要以更好的方式打印/显示表格,请尝试以下代码:

for i in range(1,11):
    print("%d X %d = %d" % (d, i, i * d))

输出:

Enter the no. you want 2
2 X 1 = 2
2 X 2 = 4
2 X 3 = 6
2 X 4 = 8
2 X 5 = 10
2 X 6 = 12
2 X 7 = 14
2 X 8 = 16
2 X 9 = 18
2 X 10 = 20

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多