如何根据用户输入数字循环切片字符串并逐行打印?
需求与问题
需要实现功能:让用户输入字符串和一个数字,根据该数字对字符串进行切片,每次切片后逐行打印结果。示例如下:
Welcome to the jungle. 5 Welco me to the jungl e.
目前已掌握单次切片方法,但不清楚如何实现循环切片直至处理完整个字符串,现有代码如下:
y=input('enter a sentence ') x=int(input('enter a number ')) z=0 while z==0: z==0 print(y[0:x]) print(y[x:]
解决方案
你的现有代码存在两处问题:一是while循环逻辑错误(z==0是判断语句而非赋值,会导致无限循环);二是仅完成了一次切片拆分,未循环处理剩余字符串。
可以通过迭代字符串的起始索引来实现循环切片,直到覆盖整个字符串,有两种简洁写法:
方法一:while循环实现
sentence = input('请输入句子:') slice_len = int(input('请输入切片长度:')) start = 0 while start < len(sentence): # 截取当前起始位置到起始位置+切片长度的子串,超出字符串长度时自动截断 print(sentence[start:start+slice_len]) # 起始索引向后移动指定切片长度 start += slice_len
方法二:for循环实现(更简洁)
sentence = input('请输入句子:') slice_len = int(input('请输入切片长度:')) # 按切片长度步长遍历字符串索引 for i in range(0, len(sentence), slice_len): print(sentence[i:i+slice_len])
两种写法都会从字符串起始位置开始,每次按指定长度切片并打印,直至处理完所有字符,完全符合示例要求。
内容的提问来源于stack exchange,提问作者Mattx21
相关产品推荐
相关产品推荐

