0

我对编码完全陌生,刚拿到一个树莓派,我是从零开始的。我正在尝试一个简单的程序来显示从用户输入中选择的乘法表。下面列出了整个代码 - 抱歉,如果它邋遢

我正在寻找的输出是例如

1 x 5 = 5
2 x 5 = 10
3 x 5 = 15

ETC...

我实际得到的是:

(((1, "x"), 5), ' + ') 5)
(((2, "x"), 5), ' + ') 10)
(((3, "x"), 5), ' + ') 15)

ETC...

谁能帮我解释一下为什么会这样?我很欣赏代码可能有点邋遢和臃肿。为了实验,我正在尝试使用几种不同的方法来设置变量等。

提前谢谢你,迈克

m = int(1)
z = input ("What table would you like to see?")
t = int(z)
while m <13:
    e = int(m*t)
    sumA = (m, " x ")
    sumB = (sumA, t)
    sumC = (sumB, " + ")
    print (sumC, e)
    m += 1
4

2 回答 2

2

不要使用元组作为中间变量;只需打印整个内容:

while m <13:
    e = m * t
    print(m, 'x', t, '+', e)
    m += 1

并且您可能希望使用range()基于 - 的循环而不是while

z = input ("What table would you like to see?")
t = int(z)
for m in range(1, 13):
    e = m * t
    print(m, 'x', t, '+', e)

注意不需要调用int()这么多次;在 的返回值上使用它input(),否则它是一个字符串。

于 2013-10-07T21:31:49.353 回答
2
  1. 你不需要在 python 中指定类型。而不是m = int(1), 你可以说m= 1, 和e = m* t

  2. 您正在构建元组而不是格式化输出,如果您想格式化 pirntout,这里最简单的方法是使用formatpython 文档中讨论的方法:http: //docs.python.org/2/library/string.html。代码就像,

    print("{0} x {1} = {2}".format(m, t, e))
    
于 2013-10-07T21:32:18.930 回答