希望有人帮写这个程序,用简单Python语言就好,本人需要过程截图,谢谢各位啦
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)
你题目的解答代码如下:
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}')
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
我来试试
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
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')