把输入的数字列表输出为“大数字”
效果如下:
* ***** **** * *** **** ******** **** ****** ****
* * * * * * ** * * * * * * * * *
* * * * * * * * * * * * * * *
* * *** * * *** * ** * * **** ****** * *
* * * ******* * * * * * * * * *
* * * * * * * * * * * * * *
*** ******* **** * *** * ** * * **** * ****
练习题原题是用记事本写好脚本再用python命令行启动的,但是我写好之后在python测试却报错,错误是列表越界。但是我的代码是跟习题答案是一样的,但就是运行不出来。无奈之下,我只好试着用pycharm写成函数看看行不行吧,最后还是能运行成功的哈哈。
下面贴个代码吧,比较长,因为我的大字都是竖着赋值的,横着写脑子实在转不过来哎。
—————————————————————————————————————————————————————————————————————————————
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)
line = line + Digits[i][row] + " "
print(line)
row+=1
bigdigts([1,2,3,4,5,6,7,8,9,0])
—————————————————————————————————————————————————————————————————————————————
说明:bidgits是主函数,要求输入一个数字列表,函数的第二个参数默认设成10个大数字的字符串,(刚开始学python,不知道这样会不会不规范哎)
逻辑是这样的:
- 首先我的大数字都是七个字符串组成的列表,每个字符串代表每个大数字的每一行(每个大数字分成7行显示)
- 函数开头先判断列表是否为空,是的话输出ERROR,否的话继续
- 由于输出的的大数字可以分成7行,所以我是每行遍历一次列表,把每一行依次输出,最后显示列表的大数字
- 在每一行中,用line把列表的每个数字对应的大数字的那一行拼接起来,然后把所有数字的这一行输出
- 循环一遍之后,就得到结果了
—————————————————————————————————————————————————————————————————————————————
遇到的问题:
- 开始读每个数字的某一行的时候总是报错,后来才发现是每个字符串间的逗号忘了写,估计是因为竖着写没注意
- 判断列表是否为空,刚开始想用digit[]==ull,但是发现并不能用null,后来百度了一下,可以用列表的长度是否等于零 len(digit)==0 来判断,这个方法很好哈哈。
- 还有一个知识点,就是sys.argv[]的使用 引用一下别人的解释:
import sys
print(sys.argv[0])
print(sys.argv[1])
print(sys.argv[2])
print(sys.argv[3])
输入python test.py arg1 arg2 arg3
输出
test.py
arg1
arg2
arg3
今天的练习就到此吧
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
想起来也是有点惭愧,读了快四年的信息管理与信息系统了,接触过c++、java、R、这些语言,每一个都是只懂些皮毛,真要用还拿不出手,真的,连找工作都不敢说自己会编程了。好好学吧,希望Python能学得6起来,网站、爬虫、数据分析这三块目前看还是挺有兴趣的。
再hea下去就真的活的太差劲了,还是要每天学习,给大脑充充电才行。
对了 ,还要坚持健身,不然就真的越来越瘦,别人看到我这样说估计很想打我哈哈哈
好啦,去睡觉了。明天继续学习!!
这里放个引用图片 跟文章没任何关系的