将之前的大数字程序做一个变形,不再打印*,而是用对于的数字代替。
效果如下:
1 22222 3333 4 555 6666 77777777 8888 999999 0000
1 1 2 2 3 3 44 5 6 7 8 8 9 9 0 0
1 2 2 3 4 4 5 6 7 8 8 9 9 0 0
1 2 333 4 4 555 6 66 6 7 8888 999999 0 0
1 2 3 4444444 5 6 6 7 8 8 9 0 0
1 2 3 3 4 5 6 6 7 8 8 9 0 0
111 2222222 3333 4 555 6 66 6 7 8888 9 0000
代码:
import sys
Zero=[" **** ",
" * * ",
" * * ",
" * * ",
" * * ",
" * * ",
" **** ",]
One=[ " * ",
" * * ",
" * ",
" * ",
" * ",
" * ",
" *** ",]
Two=[ " ***** ",
" * * ",
" * * ",
" * ",
" * ",
" * ",
" ******* ",
]
Three=[" **** ",
" * * ",
" * ",
" *** ",
" * ",
" * * ",
" **** ",]
Four=[" * ",
" ** ",
" * * ",
" * * ",
"******* ",
" * ",
" * ",]
Five=[" *** ",
" * ",
" * ",
" *** ",
" * ",
" * ",
" *** ",]
Six=[ " **** ",
" * ",
" * ",
" * ** * ",
" * * ",
" * * ",
" * ** * ",]
Seven=["********",
" *",
" * ",
" * ",
" * ",
" * ",
" * ",]
Eight=[" **** ",
" * * ",
" * * ",
" **** ",
" * * ",
" * * ",
" **** ",]
Nine=[ " ****** ",
"* *",
"* *",
" ******",
" *",
" * ",
" * ",]
Digits=[Zero,One,Two,Three,Four,Five,Six,Seven,Eight,Nine]
def bigdigts(digit,Digits=Digits):
# print(Digits)
row=0
if len(digit)==0: print("ERROR")
else:
while row<7:
line=""
for i in digit:
# print(i)
for j in Digits[i][row]:
if j=="*":
print(i,end="")
else:
print(j,end="")
print("")
row+=1
bigdigts([1,2,3,4,5,6,7,8,9,0])
这个是在前面的大数字程序上做修改的,要实现这个效果有两个办法:
- 把前面定义的数字的*改成对应的数字,不过这样写太死板了。
- 这里用的方法是不再先把字符串一次添加到一行再输出,而是逐个输出,当遇到*的时候就替换成对应的数字。