Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中的乘法表不';行不通_Python_Python 3.x - Fatal编程技术网

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 

您必须自己格式化它——例如,请参阅。它可以工作。谢谢您的帮助!!!