python如何实现平分字符串为n份,不能整除的从开头补齐

#python如何实现平分字符串为n份,不能整除的从开头补齐

想要将一条序列平均分为n份 如果不能整除则从开头补齐

例如 str = ABCDEFGH 平分为3段

则str1 =ABC str2= DEF str3 = GHA

请教一下该如何实现,我想到的是通过判断整除来补齐,但是不知如何均分,求指点

下面是一个实现,供参考:
参考链接:
python取整的几种常见方式-向上取整、向下取整、四舍五入取整、int()取整、“//”整除取整_旋转小马的博客-CSDN博客_python 向上取整
Python字符串截取方式_luckjump的博客-CSDN博客_python 字符串截取


import math
str = "ABCDEFGH"
oristr = "ABCDEFGH"  #用于当均分时,作为str的备份进行复制拼接操作
result=[]
n = int(input("请输入要平分字符串为多少份:"))
#https://blog.csdn.net/u014543416/article/details/120773898
length = int(math.ceil(len(str)/n)) #每份均分字符串的长度

i = 0
start = 0
end = length
while i< n: #均分n次字符串,如果没有超过次数则一直进行均分字符串操作,直到完成n次菊粉
    #https://blog.csdn.net/luckjump/article/details/119251647
    if end > len(str): #如果均分字符串超过了str字符串的尾部,则再拼接一个str字符串备份,以从开开始均分
        str+=oristr
    tstr =str[start:end] #均分字符串str一份
    #print("start=",start,",end=",end,"tsrt=",tstr)
    result.append(tstr) #把这一份字符串存入result列表中
   #重置均分字符串的起始位置和结束位置,开始下一轮均分字符串操作
    start = end  
    end = start+length
   # print("result=",result)
    i+=1 #均分次数+1

print("result=",result)   


    
    

    

img

fill_str = '0'  # 填充字符
str_ = 'abcdefg'  # 字符串
n = 3  # 平均几份

str_ = fill_str * (n - len(str_) % n) + str_
for i in range(0, len(str_), n):
    print(str_[i:i+n])


import re
from math import ceil


def cut_text(text, length):
    """将字符串切割成指定长度"""
    len_text = len(text)
    if len_text < length:
        return
    textArr = re.findall('.{' + str(length) + '}', text)
    # print(textArr)
    if len_text - len(textArr) * length > 0:
        textArr.append(text[(len(textArr) * length):])
        # 判断最后一段的长度是否小于指定长度
        len_last = len(textArr[-1])
        if 0 < len_last < length:
            textArr[-1] += text[:length-len(textArr[-1])]
    return textArr

str1 = 'ABCDEFGH'
n = 4
len_str1 = len(str1)
length = int(len_str1 / n) if len_str1 % n == 0 else ceil(len(str1) / n)
print(length)
print(cut_text(str1, length))