之前都是用 VScode 来完成一切工作的,今天在别人的建议下尝试了 Pycharm。于是写了一个乘法表来熟悉一下手感。

1
2
3
4
5
6
7
8
9
10
for i in range(9):
for j in range(i + 1):
result = (i + 1) * (j + 1)
if result > 9:
IFS = " "
else:
IFS = " "
print(j + 1, "×", i + 1, "=", result, end=IFS)
else:
print()

输出:

1
2
3
4
5
6
7
8
9
10
11
12
D:\CodeBase\python-study\pythonProject\.venv\Scripts\python.exe D:\CodeBase\python-study\pythonProject\.venv\times-table.py 
1 × 1 = 1
1 × 2 = 2 2 × 2 = 4
1 × 3 = 3 2 × 3 = 6 3 × 3 = 9
1 × 4 = 4 2 × 4 = 8 3 × 4 = 12 4 × 4 = 16
1 × 5 = 5 2 × 5 = 10 3 × 5 = 15 4 × 5 = 20 5 × 5 = 25
1 × 6 = 6 2 × 6 = 12 3 × 6 = 18 4 × 6 = 24 5 × 6 = 30 6 × 6 = 36
1 × 7 = 7 2 × 7 = 14 3 × 7 = 21 4 × 7 = 28 5 × 7 = 35 6 × 7 = 42 7 × 7 = 49
1 × 8 = 8 2 × 8 = 16 3 × 8 = 24 4 × 8 = 32 5 × 8 = 40 6 × 8 = 48 7 × 8 = 56 8 × 8 = 64
1 × 9 = 9 2 × 9 = 18 3 × 9 = 27 4 × 9 = 36 5 × 9 = 45 6 × 9 = 54 7 × 9 = 63 8 × 9 = 72 9 × 9 = 81

进程已结束,退出代码为 0

运行是成功的。于是我在以上代码的基础上稍作改进,让它可以输出中文的乘法表:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# 定义一个元组(相当于被定义为常量的数组),用于储存中文数字字符
# 虽然在本例中用不到“零”但还是把它加了进去,这样元祖元素就和它对应的键值一致了
zhNumList = ("〇", "一", "二", "三", "四", "五", "六", "七", "八", "九")

def TransIntoZhNum(num):
"""
转译阿拉伯数字和中文数字

输入一个0~99的整数参数,返回相对应的中文数字
"""
if num < 10:
zhNum = zhNumList[num]
elif num%10 == 0:
zhNum = zhNumList[num//10] + "十"
elif num >= 10 and num < 20:
zhNum = "十" + zhNumList[num%10]
elif num >= 20 and num < 100:
zhNum = zhNumList[num//10] + "十" + zhNumList[num%10]
return zhNum

# Python的迭代器 range(n) 的迭代范围是 [0, n)
for i in range(9):
num_2 = i + 1
zhNum_2 = TransIntoZhNum(num_2)
for j in range(num_2):
num_1 = j + 1
zhNum_1 = TransIntoZhNum(num_1)
product = num_1 * num_2
zhNum_3 = TransIntoZhNum(product)
if product < 10:
equal = "得"
else:
equal = ""
# 此处使用了全角空格来作为填充格式化乘法表
sentence = "{: <6}".format(zhNum_1+zhNum_2+equal+zhNum_3)
print(sentence, end="")
else:
print()

输出:

1
2
3
4
5
6
7
8
9
10
11
12
D:\CodeBase\python-study\pythonProject\.venv\Scripts\python.exe D:\CodeBase\python-study\pythonProject\.venv\times-table2.py 
一一得一  
一二得二  二二得四  
一三得三  二三得六  三三得九  
一四得四  二四得八  三四十二  四四十六  
一五得五  二五一十  三五十五  四五二十  五五二十五 
一六得六  二六十二  三六十八  四六二十四 五六三十  六六三十六 
一七得七  二七十四  三七二十一 四七二十八 五七三十五 六七四十二 七七四十九 
一八得八  二八十六  三八二十四 四八三十二 五八四十  六八四十八 七八五十六 八八六十四 
一九得九  二九十八  三九二十七 四九三十六 五九四十五 六九五十四 七九六十三 八九七十二 九九八十一 

进程已结束,退出代码为 0