Python 函数,该函数接受字符串并返回8个字符字符串的列表
我对编程很陌生。我需要创建一个函数,它接受任何字符串和一个填充字符,并返回一个包含8个字符串的列表。 例如:Python 函数,该函数接受字符串并返回8个字符字符串的列表,python,string,Python,String,我对编程很陌生。我需要创建一个函数,它接受任何字符串和一个填充字符,并返回一个包含8个字符串的列表。 例如: >>>segmentString("Hello, World!","-") ['Hello, W', 'orld!---'] 如您所见,字符串有13个字符。该函数拆分为2个字符串,其中第一个字符串包含8个字符,第二个字符串包含5个字符和3个填充字符 到目前为止,我已经知道了如何对少于8个字符的字符串执行此操作,但对于多于8个字符的字符串,如果字符串被拆分,则无法执行此
>>>segmentString("Hello, World!","-")
['Hello, W', 'orld!---']
如您所见,字符串有13个字符。该函数拆分为2个字符串,其中第一个字符串包含8个字符,第二个字符串包含5个字符和3个填充字符
到目前为止,我已经知道了如何对少于8个字符的字符串执行此操作,但对于多于8个字符的字符串,如果字符串被拆分,则无法执行此操作,这就是我一直坚持的方法
def segmentString(s1,x):
while len(s1)<8:
s1+=x
return s1
def段字符串(s1,x):
而len(s1)则可以使用稍微修改过的版本:
执行必要的填充。对@jpp的答案稍加修改后,首先用填充字符填充字符串,这样长度就可以被8整除:
def segmentString(s, c):
s = s + c * (8 - len(s) % 8)
return [s[i:i+8] for i in range(0, len(s), 8)]
>>> segmentString("Hello, World!","-")
['Hello, W', 'orld!---']
如果需要可变大小,只需添加一个size参数:
def segmentString(s, c, size):
s = s + c * (size - len(s) % size)
return [s[i:i+size] for i in range(0,len(s),size)]
>>> segmentString("Hello, World!","-",4)
['Hell', 'o, W', 'orld', '!---']
我也是编程新手,但我想你可以用这个
Word = "Hello, World!---"
print([Word[i:i+x] for i in range(0, len(Word), x)])
只需将x更改为您想要的任何值。。
退房
希望有帮助。还有一种可能性:
def segmentString(s1, x):
ret_list = []
while len(s1) > 8:
ret_list.append(s1[:8])
s1 = s1[8:]
if len(s1) > 0:
ret_list.append(s1 + x*(8-len(s1)))
return ret_list
以下是一个简单的答案,您可以理解,它通过几个简单的ifs解决了您的问题:
a= 'abcdefghijklmdddn'
def segmentString(stuff):
c=[]
i=0
hold=""
for letter in stuff:
i+=1
hold+=letter
if i%8==0:
c.append(hold)
hold=""
c.append(hold)
if hold=="":
print(c)
else:
if hold==c[-1]:
print(c)
else:
c.append(hold)
print(c)
我认为问题在于,单词不是“Hello,World!--”
,而是“Hello,World!”
,它需要被分成8个字符的块,当最后一个块不是8个字符时,-
作为填充,这是编写填充步骤的更简单的方法:产生x.ljust(n,char)
。无需反复计算所需的填充量。因为它甚至不需要知道x
的原始长度,所以您可以在循环体上画一行来生成L[i:i+n].ljust(n,char)
a= 'abcdefghijklmdddn'
def segmentString(stuff):
c=[]
i=0
hold=""
for letter in stuff:
i+=1
hold+=letter
if i%8==0:
c.append(hold)
hold=""
c.append(hold)
if hold=="":
print(c)
else:
if hold==c[-1]:
print(c)
else:
c.append(hold)
print(c)