#首先,输入句子 lines = '' while True: try: line = input() lines += line except EOFError: break #其次,创建一个字典存储每个字母以及其个数初始化为0 lower_cnt_dict = {} for i in range(26): ch = chr(ord('a') + i) lower_cnt_dict[ch] = 0 #判断句子中的字母,然后对字母的个数+1 for ch in lines: if ch.isalpha() and ch.islower(): lower_cnt_dict[ch] += 1 #找出个数最多的数量,确定柱状图的行数 max_cnt = 0 for cnt in lower_cnt_dict.values(): if max_cnt < cnt: max_cnt = cnt #根据确定的行数创建相应数量的列表,每个列表长度为26,值为空白格 diagram = [] for i in range(max_cnt): diagram.append([' '] * 26) #给每行的列表相应位置赋值* for c in range(26): ch = chr(ord('a') + c) cnt = lower_cnt_dict[ch] for r in range(cnt): diagram[max_cnt - r - 1][c] = '*' #循环输出每行列表 for r in range(max_cnt): print(''.join(diagram[r])) for c in range(26): ch = chr(ord('a') + c) print(ch, end='')
小写字母频率柱状图
最新推荐文章于 2021-05-29 22:18:06 发布