Python中的乘法表

时间:2018-11-24 16:32:18

标签: python

这是我现在的代码:

1   2   3   4   5
2   4   6   8   10
3   6   9   12  15
4   8   12  16  20
5   10  15  20  25

这是应该打印的:

1 2 3 4 1
2 4 6 8 2
3 6 9 12 3
4 8 12 16 4
5 10 15 20 5

但它会打印:

from pandas import *
table_name="ADI"
file_name=pandas.read_excel('supermarke.xlsx')    
def SQL_Insert(SOURCE, TARGET):
    sql_texts = []
    for index, row in SOURCE.iterrows():
        sql_texts.append(
            'INSERT INTO ' + TARGET + ' (' + str(', '.join(SOURCE.columns)) + ')   VALUES ' + str(tuple(row.values))+";")

    return ('\n'.join(sql_texts))
print(SQL_Insert(file_name, table_name)) 

3 个答案:

答案 0 :(得分:3)

您需要rangemystery_int + 1,因为在range中,第二个参数是排他的。例如,range(1,6)给出1到5之间的数字。

我还添加了一个空的print(),它基本上添加了换行符以与所需的输出匹配。 使用end='\t'可以进一步正确对齐输出。

loop_count = 1
mystery_int = 5

for i in range(mystery_int):
    for x in range(1, mystery_int + 1):
        print(x * loop_count, end='\t')
    print()
    loop_count += 1

答案 1 :(得分:0)

x的范围应为range(1,mystery_int+1),并且您还错误地在每一行的末尾打印loop_count(我将其替换为空字符串,只是为了产生换行符)

loop_count = 1
for i in range(mystery_int):
    for x in range(1,mystery_int+1):
        print(x*loop_count, end=" ")
    print('')
    loop_count+=1

请注意,实际上并不需要loop_count变量。您可以将程序编写为:

for i in range(1,mystery_int+1):
    for x in range(1,mystery_int+1):
        print(x*i, end=" ")
    print('')

甚至更好:

for i in range(1,mystery_int+1):
    print(*[x*i for x in range(1,mystery_int+1)], sep=" ")

答案 2 :(得分:-1)

除了使用另一个计数器,您还在两个for循环上运行,我建议仅坚持使用循环:

for i in range(1,mystery_int+1):
    for x in range(1,mystery_int+1):
        print(i*x, end=" ")
    print("") # new line