在python2中打出一个数字版的九九乘法表还是相当简单的,
for i in range (1, 10):
for j in range (1, i+1):
print "%s * %s = %s" %(j, i ,j*i),"\t",
print
运行结果:
那么怎么把这个表换成中文的呢?
小白的想法极其简单,把每个数字对应一个中文就好了,上代码`
#coding:UTF-8
#Author:LSH
Num = ["一","二", "三", "四", "五", "六", "七", "八", "九" ] #你得有一些中文
for j in range(1, 10): #*************
for k in range(1, j+1): # 和上面一样这部分是用来算结果的
c = j * k #*************
if c < 10: # 中文的乘法表10以内是不同的,例如一一得一,它多了一个得字
e = Num[j-1] # e是一个中介,把j的值换成中文,而j依然是数字,下次循环j依然可以计算
f = Num[k-1] # 同理
b = Num[c-1]
print f,e,"得",b,"\t",
elif c == 10: #这个我不知道怎么搞,就直接打出来了
print "二 五 一 十","\t",
elif c < 20: #(10,20)以内的
c = c - 10
e = Num[j-1]
f = Num[k-1]
b = Num[c-1]
print f,e,"十",b,"\t", #想法很简单,把十几减去10就剩个位数,得字不要换成十,个位数字换中文
# 以下都同理
elif c == 20:
print "四 五 二 十","\t",
elif c < 30:
c = c - 20
e = Num[j-1]
f = Num[k-1]
b = Num[c-1]
print f,e,"二 十",b,"\t",
elif c == 30:
print "五 六 三 十","\t",
elif c < 40:
c = c - 30
e = Num[j-1]
f = Num[k-1]
b = Num[c-1]
print f,e,"三 十",b,"\t",
elif c == 40:
print "五 八 四 十","\t",
elif c < 50:
c = c - 40
e = Num[j-1]
f = Num[k-1]
b = Num[c-1]
print f,e,"四 十",b,"\t",
elif c == 40:
print "五八四十","\t",
elif c < 60:
c = c - 50
e = Num[j-1]
f = Num[k-1]
b = Num[c-1]
print f,e,"五 十",b,"\t",
elif c < 70:
c = c - 60
e = Num[j-1]
f = Num[k-1]
b = Num[c-1]
print f,e,"六 十",b,"\t",
elif c < 70:
c = c - 60
e = Num[j-1]
f = Num[k-1]
b = Num[c-1]
print f,e,"六 十",b,"\t",
elif c < 80:
c = c - 70
e = Num[j-1]
f = Num[k-1]
b = Num[c-1]
print f,e,"七 十",b,"\t",
else:
print "九 九 八 十 一"
print
运行结果就是上面那样
小白第一次尝试,这代码纯粹瞎搞,大佬勿喷,有什么改进的建议小弟欢迎至极!
感谢各位大佬阅完。