如何在Python3中定期拆分字符串

如何在Python3中定期拆分字符串,python,string,intervals,Python,String,Intervals,我需要以一个固定的间隔分割一个字符串,并返回一个具有相同字符(一个空格和字母)的字符串,每个间隔都有换行符,这样它就可以表示某种行/列矩形字符串。我需要返回如下内容(示例): 有人吗?像这样的吗 def puzzle(s,a,b): if a*b != len(s): print "Not possible" return start =0 end = b+1 output ="" for i in range(0,a):

我需要以一个固定的间隔分割一个字符串,并返回一个具有相同字符(一个空格和字母)的字符串,每个间隔都有换行符,这样它就可以表示某种行/列矩形字符串。我需要返回如下内容(示例):

有人吗?

像这样的吗

def puzzle(s,a,b):
    if a*b != len(s):
       print "Not possible"
       return
    start =0
    end = b+1
    output =""
    for i in range(0,a):
        output= output+s[start: end]+"\n"
        start = end+1
        end = end+b
    print output

明白了!多亏了Bhavish Agarwal

def puzzle(s, r, c):
assert r*c == len(s), 'not possible'
start = 0
end = c
output =""
for _ in range(0, r - 1):
    output= output+s[start: end]+"\n"
    start = end
    end = end + c
output= output+s[start: end]
return output

这是多么容易。感谢您的迅速回复。:)

我建议使用join来输入新行,并使用列表理解来进行拆分:

def make_slice(my_str, slice_length, slice_start):
    return mystr[slice_length * slice_start:slice_length * (slice_start + 1)]

def puzzle(my_string, substring_length):
    return '\n'.join([make_slice(my_string, substring_length, substring_index)
                      for substring_index 
                      in range((len(my_string) // substring_length) + 1)])

这个变体不需要指定拼图的高度,只需要指定子字符串的长度。拼图的最后一行可能需要填充空格,以达到与其他行相同的长度。

这听起来像是一个非常简单的练习。你被困在哪里?我不确定我是否理解你的要求。你不需要一个字符串和两个整数的函数拼图。在你的例子中,字符串应该在5个字符处分开。3是什么,即第一个int?我不是真的卡住了,但我需要我的焦点在别处。3代表行,5代表列。在一个更大的计划中需要。就这一点而言,我正在经历的是一场停电。
puzzle(s,3,6)
的预期输出是什么?不管你怎么想。势利小人,谢谢,我可以用这个。不管怎么说,我之所以要问这个看似简单(但又具体又小)的问题,是为了能在某个截止日期前解决更大的任务,也为了能更多地关注编程领域之外的其他义务。再次感谢。这真的很有帮助。你的很近,但不在那里。在第一行之后,它用新行代替字母,而不是插入新行。但我得到了灵感。
def make_slice(my_str, slice_length, slice_start):
    return mystr[slice_length * slice_start:slice_length * (slice_start + 1)]

def puzzle(my_string, substring_length):
    return '\n'.join([make_slice(my_string, substring_length, substring_index)
                      for substring_index 
                      in range((len(my_string) // substring_length) + 1)])