python输入几个数字并用符号*表示输出,比如下图?
code_number={0:[[1,1,1,1,1,1],
[1,0,0,0,0,1],
[1,0,0,0,0,1],
[1,0,0,0,0,1],
[1,0,0,0,0,1],
[1,0,0,0,0,1],
[1,1,1,1,1,1]],
1:[[1],
[1],
[1],
[1],
[1],
[1],
[1]],
2:[[1,1,1,1,1,1],
[0,0,0,0,0,1],
[0,0,0,0,0,1],
[1,1,1,1,1,1],
[1,0,0,0,0,0],
[1,0,0,0,0,0],
[1,1,1,1,1,1]],
3:[[1,1,1,1,1,1],
[0,0,0,0,0,1],
[0,0,0,0,0,1],
[1,1,1,1,1,1],
[0,0,0,0,0,1],
[0,0,0,0,0,1],
[1,1,1,1,1,1]],
4:[[1,0,0,1,0,0],
[1,0,0,1,0,0],
[1,0,0,1,0,0],
[1,0,0,1,0,0],
[1,1,1,1,1,1],
[0,0,0,1,0,0],
[0,0,0,1,0,0]],
5:[[1,1,1,1,1,1],
[1,0,0,0,0,0],
[1,0,0,0,0,0],
[1,1,1,1,1,1],
[0,0,0,0,0,1],
[0,0,0,0,0,1],
[1,1,1,1,1,1]],
6:[[1,1,1,1,1,1],
[1,0,0,0,0,0],
[1,0,0,0,0,0],
[1,1,1,1,1,1],
[1,0,0,0,0,1],
[1,0,0,0,0,1],
[1,1,1,1,1,1]],
7:[[1,1,1,1,1,1],
[0,0,0,0,0,1],
[0,0,0,0,0,1],
[0,0,0,0,0,1],
[0,0,0,0,0,1],
[0,0,0,0,0,1],
[0,0,0,0,0,1]],
8:[[1,1,1,1,1,1],
[1,0,0,0,0,1],
[1,0,0,0,0,1],
[1,1,1,1,1,1],
[1,0,0,0,0,1],
[1,0,0,0,0,1],
[1,1,1,1,1,1]],
9:[[1,1,1,1,1,1],
[1,0,0,0,0,1],
[1,0,0,0,0,1],
[1,1,1,1,1,1],
[0,0,0,0,0,1],
[0,0,0,0,0,1],
[1,1,1,1,1,1]]}
def num_to_code(num):
num_list=[code_number[int(i)] for i in num]
for num_row in zip(*num_list):
for row_nums in num_row:
for i in row_nums:
print('*' if i else ' ',end='')
print(' ',end='')
print('')
num = input('输入数字:')
num_to_code(num)
我的答案有一点长,我看到另一位网友做了一个版本的,但似乎没有考虑浮点数的情况,对浮点数的情况进行了一些补充,如有问题,欢迎追问,代码如下(这个回答界面很不良心,没有可以嵌入格式化代码的工具可以用,所以我只好截图,截图中我保持了两张图有交叠部分,以便能够看出上下关联,如仍不清楚,源码文件可以发给你):
以下为测试代码(这里我直接给入了数值再转换为了字符串,如果按照要求需要从命令行读入,可采用input方法,则获取的输入就已经是字符串形式):
if __name__ == '__main__':
a = 123456
num_printer = Num()
res = num_printer.get_number(str(a))
print(res)
对上面的代码,我进行了简单的测试,结果如下:
此外,对于科学记数法表示的数值我在这里没有进行考虑,因为通常情况下从命令行输入的形式也不会采用科学计数法进行输入。另外,以上我仅对简单的情况进行了测试,没有考虑更多的测试用例,如有bug,还请指出,以便进一步沟通和修改。