求写这个程序,简单Python语言就好,本人需要截图,各位朋友们,需要得出字符的个数哦

希望有人帮写这个程序,用简单Python语言就好,本人需要过程截图,谢谢各位啦

img


import random

a = ['_']
for i in range(26):
    a.append(chr(i + ord('A')))
for i in range(26):
    a.append(chr(i + ord('a')))
for i in range(10):
    a.append(chr(i + ord('0')))

b = []
for i in range(26):
    i += 65
    r = chr(i)
    a.append(r)
for i in range(26):
    i += 97
    r = chr(i)
    a.append(r)
for i in range(7):
    s = random.randint(0, 63)
    b.append(a[s])
    print(a[s], end=' ')
print()
for i in range(5):
    if i != 2:
        for j in range(7):
            if j == 0 or j == 6 or j == 3:
                s = random.randint(0, 63)
                b.append(a[s])
                print(a[s], end=' ')
            else:
                print(" ", end=' ')
        print()
    else:
        for i in range(7):
            s = random.randint(0, 63)
            b.append(a[s])
            print(a[s], end=' ')
        print()
for i in range(7):
    s = random.randint(0, 63)
    b.append(a[s])
    print(a[s], end=' ')
print()
dic = {}
for i in b:
    dic[i] = b.count(i)
# print(dic)

img

你题目的解答代码如下:

import random
lst=list('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_')

width = int(input("请输入宽度:"))//2
s = "".join([random.choice(lst) for i in range(width*4+3)])+"\n"
for i in range(2):
    for j in range(width):
        s += random.choice(lst)+ " "*(width*2) +random.choice(lst)+ " "*(width*2) +random.choice(lst)+"\n"
    s += "".join([random.choice(lst) for i in range(width*4+3)])+"\n"
print(s)

dic = {}
for v in s:
    if v in lst:
        dic[v] = dic.get(v,0)+1
for k,v in dic.items():
    print(f'{k}:{v}')

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

我来试试

from random import randint
import string
word = string.ascii_letters+'_'
width = 21
lst = [word[randint(0,len(word)-1)] for i in range(width*6-9)]
index = 0
for i in range(width):
    if i==0 or i==width//2 or i==width-1:
        for j in range(width):
            print(lst[index], end=' ')
            index+=1
        print()
    else:
        print(lst[index], end=(' '*19))
        index+=1
        print(lst[index], end=(' '*19))
        index+=1
        print(lst[index])
        index+=1

img

from random import choices
from string import ascii_letters, digits

n = int(input()) //输入田字的边长
ASCII = ascii_letters+digits+'_'
lines = [choices(ASCII, k=n) for _ in range(n)]
lst = [0,len(lines)//2,len(lines)-1] #田字三条横线的行号
for i in range(len(lines)):
    if i not in lst:
        lines[i]=lines[i][:3]
        if len(lines)%2==0:
            lines[i][-1]=' '+lines[i][-1]
        #边长为偶数时,解决田字中的十不可能居中的显示问题

for i,n in enumerate(lines):
    t = '' if i in lst else ' '*((len(lines)-3)//2)  #输出时空格数
    print(t.join(n))

Letters = ''.join(sum(lines,[])).replace(' ','')  #把所有字符拼成一个字串
counter = {a:Letters.count(a) for a in Letters} #统计各字符个数

with open('letters.txt','w') as file:  # 遍历字典写入文件
    for k,v in counter.items():
        file.write(f'{k}:{v}\n')