python中的乘法表不';行不通
我想写一个乘法表程序。我的问题是程序无法打印到右侧 程序将要求用户启动和停止。例如:python中的乘法表不';行不通,python,python-3.x,Python,Python 3.x,我想写一个乘法表程序。我的问题是程序无法打印到右侧 程序将要求用户启动和停止。例如: start_number = 2 stop_number = 4 输出应如下所示: 2 x 1 = 2 3 x 1 = 3 4 x 1 = 4 2 x 2 = 4 3 x 2 = 6 4 x 2 = 8 2 x 3 = 6 3 x 3 = 9 4 x 3 = 12 2 x 4 = 8 3 x 4 = 12 4 x 4 = 16 2 x 5 = 10
start_number = 2
stop_number = 4
输出应如下所示:
2 x 1 = 2 3 x 1 = 3 4 x 1 = 4
2 x 2 = 4 3 x 2 = 6 4 x 2 = 8
2 x 3 = 6 3 x 3 = 9 4 x 3 = 12
2 x 4 = 8 3 x 4 = 12 4 x 4 = 16
2 x 5 = 10 3 x 5 = 15 4 x 5 = 20
2 x 6 = 12 3 x 6 = 18 4 x 6 = 24
2 x 7 = 14 3 x 7 = 21 4 x 7 = 28
2 x 8 = 16 3 x 8 = 24 4 x 8 = 32
2 x 9 = 18 3 x 9 = 27 4 x 9 = 36
2 x 10 = 20 3 x 10 = 30 4 x 10 = 40
2 x 11 = 22 3 x 11 = 33 4 x 11 = 44
2 x 12 = 24 3 x 12 = 36 4 x 12 = 48
这是我的代码:
start = int(input("Enter start number : "))
stop = int(input("Enter stop number : "))
def multi_num(start,stop):
for i in range(start, stop+1):
for j in range(1, 13):
print("%d x %d = %d" % (i, j, i * j))
multi_num(start, stop)
这是我的输出:
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
2 x 11 = 22
2 x 12 = 24
3 x 1 = 3
3 x 2 = 6
3 x 3 = 9
3 x 4 = 12
3 x 5 = 15
3 x 6 = 18
3 x 7 = 21
3 x 8 = 24
3 x 9 = 27
3 x 10 = 30
3 x 11 = 33
3 x 12 = 36
4 x 1 = 4
4 x 2 = 8
4 x 3 = 12
4 x 4 = 16
4 x 5 = 20
4 x 6 = 24
4 x 7 = 28
4 x 8 = 32
4 x 9 = 36
4 x 10 = 40
4 x 11 = 44
4 x 12 = 48
我试图使用end=“”
,但它不起作用-程序在一行中打印输出:
2 x 1 = 22 x 2 = 42 x 3 = 62 x 4 = 82 x 5 = 102 x 6 = 122 x 7 = 142 x 8 = 162 x 9 = 182 x 10 = 202 x 11 = 222 x 12 = 243 x 1 = 33 x 2 = 63 x 3 = 93 x 4 = 123 x 5 = 153 x 6 = 183 x 7 = 213 x 8 = 243 x 9 = 273 x 10 = 303 x 11 = 333 x 12 = 364 x 1 = 44 x 2 = 84 x 3 = 124 x 4 = 164 x 5 = 204 x 6 = 244 x 7 = 284 x 8 = 324 x 9 = 364 x 10 = 404 x 11 = 444 x 12 = 48
请尝试以下代码:
start=int(输入(“输入起始编号”))
stop=int(输入(“输入停止编号:”)
def multi_num(启动、停止):
对于范围(1,13)内的j:
行=['{}X{}={}'。范围内n的格式(n,j,n*j)(开始,停止+1)]
打印('\t'.连接(行))
多个(开始、停止)
我试图使用end=”“
,但它不起作用
不过它确实可以工作:end=”“
将抑制默认情况下使用的换行符,因此没有换行符=>所有内容都在同一行上。它做的正是它应该做的
实际的问题是,你是按列思考,但终端是一行一行地工作的:你打印一行,转到下一行,打印下一行,…,就像磁带或打字机一样(原来的计算机IO是一台加大功率的打字机用于输入,一台行打印机用于输出)
您可以通过列生成输出,然后在打印前将列粘贴在一起,或者将终端切换到原始模式,并根据需要管理终端
但最简单的解决方案是围绕终端想要什么而不是期望什么来思考,并执行逐行生成:切换两个循环,使每个i
用于每个j
,生成一整行,然后在进入下一个j
之前添加新行:
start=int(输入(“输入起始编号”))
stop=int(输入(“输入停止编号:”)
def multi_num(启动、停止):
对于范围(1,13)内的j:
对于范围内的i(开始、停止+1):
打印(f{i}x{j}={i*j},end='\t')
打印()
多个(开始、停止)
结果:
Enter start number : 2
Enter stop number : 5
2 x 1 = 2 3 x 1 = 3 4 x 1 = 4 5 x 1 = 5
2 x 2 = 4 3 x 2 = 6 4 x 2 = 8 5 x 2 = 10
2 x 3 = 6 3 x 3 = 9 4 x 3 = 12 5 x 3 = 15
2 x 4 = 8 3 x 4 = 12 4 x 4 = 16 5 x 4 = 20
2 x 5 = 10 3 x 5 = 15 4 x 5 = 20 5 x 5 = 25
2 x 6 = 12 3 x 6 = 18 4 x 6 = 24 5 x 6 = 30
2 x 7 = 14 3 x 7 = 21 4 x 7 = 28 5 x 7 = 35
2 x 8 = 16 3 x 8 = 24 4 x 8 = 32 5 x 8 = 40
2 x 9 = 18 3 x 9 = 27 4 x 9 = 36 5 x 9 = 45
2 x 10 = 20 3 x 10 = 30 4 x 10 = 40 5 x 10 = 50
2 x 11 = 22 3 x 11 = 33 4 x 11 = 44 5 x 11 = 55
2 x 12 = 24 3 x 12 = 36 4 x 12 = 48 5 x 12 = 60
您必须自己格式化它——例如,请参阅。它可以工作。谢谢您的帮助!!!