在统计票数时,我们经常使用正字计数方式来计数得票数。一个正字五笔,每笔对应一票。 在此用3*3字符模拟正字计数方式,数字1,2,3,4,5对应的字符如下所示,3*3字符阵列中的可见字符为制表符。需要特别注意的是:在此3*3字符矩阵的空白处为全角中文空格字符(Unicode编码为0x3000)。 表示1的3*3字符阵列如下: ━━━ 表示2的3*3字符阵列如下: ━┳━ ┃ 表示3的3*3字符阵列如下: ━┳━ ┣━ 表示4的3*3字符阵列如下: ━┳━ ┃┣━ 表示5的3*3字符阵列如下: ━┳━ ┃┣━ ┻┻━ 输入 一组空格分隔的非负整数,表示某次投票的得票数。 输出 对于每个票数,用一行正字计数的方式输出。同行的两个正字的3*3字符阵列之间用一个半角空格(即英文状态的空格分隔)。 如果得票数为0,则用3个空行表示(即改行除了换行符无任何其它字符)。怎么用Python解答
时间: 2024-02-03 11:11:30 浏览: 140
可以使用一个字典来存储每个数字对应的字符阵列,然后按照输入的得票数逐个输出相应的字符阵列即可。具体实现可以参考以下代码:
```python
# 定义数字对应的字符阵列
num_to_char = {
0: [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '],
1: ['━', ' ', ' ', ' ', '━', ' ', ' ', ' ', '━'],
2: ['━', '┳', '━', ' ', ' ', ' ', ' ', ' ', ' '],
3: ['━', '┳', '━', ' ', '┣', '━', ' ', ' ', ' '],
4: ['━', '┳', '━', '┃', '┣', '━', ' ', ' ', ' '],
5: ['━', '┳', '━', '┃', '┣', '━', '┻', '━', '┻']
}
while True:
try:
votes = input().split() # 输入得票数
if not votes: # 如果输入为空,退出循环
break
for vote in votes:
if int(vote) == 0: # 如果得票数为0,输出3个空行
print('\n\n')
else:
chars = [num_to_char[int(digit)] for digit in vote] # 获取每个数字对应的字符阵列
for i in range(3): # 按行输出字符阵列
print(' '.join([chars[j][i] for j in range(len(chars))]))
print() # 输出一个空行,用于分隔不同的得票数
except:
break
```
示例输入:
```
0
1 23
45 0
```
示例输出:
```
━ ━ ━
━ ┳ ━
━ ┳ ━ ┣━
━ ┳ ━ ┃┣━
━ ┳ ━ ┃┣━ ┻┻━
━┳━ ┻┻━
┃
━┻━
━ ━ ┳━
━ ┳ ━ ┃
━ ┳ ━ ┣━
━ ┳ ━ ┃┣━
━ ┳ ━ ┃┣━ ┻┻━
━┳━ ┻┻━
┃
━┻━
━┳━ ━ ━
┃ ━ ━ ━
━┻━ ┃ ┃
━┻━ ━┛
━┳━ ━
┃ ┃ ┃ ━
┣━┫ ┣━┓
┃ ┃ ┃ ┃
━┻━┻━ ━┻━┛
```
阅读全文