11-22 对“大数字”的变形

来源:互联网 发布:mac 命令行复制文件夹 编辑:程序博客网 时间:2024/05/18 03:53

将之前的大数字程序做一个变形,不再打印*,而是用对于的数字代替。

效果如下:

    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 sysZero=["   ****   ",      "  *    *  ",      " *      * ",      " *      * ",      " *      * ",      "  *    *  ",      "   ****   ",]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+=1bigdigts([1,2,3,4,5,6,7,8,9,0])


这个是在前面的大数字程序上做修改的,要实现这个效果有两个办法:

  1. 把前面定义的数字的*改成对应的数字,不过这样写太死板了。
  2. 这里用的方法是不再先把字符串一次添加到一行再输出,而是逐个输出,当遇到*的时候就替换成对应的数字。