005开始进入第一个学习瓶颈期

也不是什么太大的问题,只是最后的结果和我想象的不同,现在时间晚了,脑子有些乱,需要明天早上起来再试试看咯,很好嘛,终于开始有挑战性了。



# ********************************

# 功能:统计字符出现的次数V4.1

# 说明:由用户控制随机字符串的长度,并计算每个字符出现次数

# 编写人:Frank 编写时间:2022年11月12日

# 修改人:      修改内容:

# *******************************************************************

import random,string

usernumber= int(input('请输入需要的字符长度'))

# 字符串长度分配

mother_len= usernumber//3 #定义母串

child_len= usernumber-mother_len#定义子串

print('母串长度', mother_len)

print('子串长度',child_len)

# 获取原始字符串

# 定义相关长度随机数

n1=random.randint(1,10)

n2=random.randint(1,52)

n3=random.randint(1,32)

# print(type(n1))

# 获取随机长度指定字符的内容

con1=random.choices(string.digits,k=n1)

con2=random.choices(string.ascii_letters,k=n2)

con3=random.choices(string.punctuation,k=n3)

# print(n2,n3,n1)

# 进行相关内容的合并

r1=''.join(con1)

r2=''.join(con2)

r3=''.join(con3)

# print(r1,r2,r3)

result=r1+r2+r3

ori_mother_len=len(result)

print('原始母串长度', ori_mother_len)

# 如果原始母串的长度大于规定长度,则随机进行截取

if(ori_mother_len> mother_len):

    r=random.sample(result,mother_len)

    r=''.join(r)

    print('进行随机截取操作')

    print('截取后字符串长度:', len(r))

    print('截取后的母串:', r)

# 如果原始母串长度小于规定长度,则增加对应长度补齐

elif(ori_mother_len< mother_len):

    # 循环构造补齐长

    # 初始化空列表

    print('进行补齐操作')

    tmplist=[]

    for iin range(0,mother_len-ori_mother_len):

        tmplist.append(random.choice(result))

        r=''.join(tmplist)

    print('添加补齐后母串:',r)

    print('补齐后字符串长度',len(r))

# 进行数据类型转换


listr=list(result) 问题出在这里


# print("数据类型",type(listr),listr)

print('初始数据:',listr)

number=len(listr)

print(number)

# 遍历循环

for iin range(0,child_len):

    n= random.randint(1,number-1)  #选择起始位置为1,而不是0,因为选择为零后,就等于没有添加

    m= random.randint(0,number-1)

    # print(i)

    # 取出随机内容

    tmp= listr[m]

    listr.insert(n,tmp)

    # print('添加位置n:',n)

    # print('取出位置m:',m)

    # print('添加内容',tmp)

print('添加后数据:',listr)

print(len(listr))

# strCon=''.join(listr)

# print(len(strCon),strCon)

# dicData={}

#

# for x in listr:

#    # print(x)

#    # r=strCon.count(x)

#    # print(x,r)

#    dicData[x]=listr.count(x)

# print('次数统计:',dicData)

# print(type(dicData))




你可能感兴趣的:(005开始进入第一个学习瓶颈期)