小明问了我一个问题:
如何用python实现字符串指定步长换行
题目要求:
- 第一行包含一个字符串,S 。
- 第二行包含宽度,w。
- 按照宽度打印字符串
Sample Input:
ABCDEFGHIJKLIMNOQRSTUVWXYZ
4
Sample Output
ABCD
EFGH
IJKL
IMNO
QRST
UVWX
YZ
我的代码如下:
def wrap(string, max_width):
result1 = [string[i:i + max_width] for i in range(0, len(string), max_width)]
result = '\n'.join(result1)
return result
if __name__ == '__main__':
string, max_width = input(), int(input())
result = wrap(string, max_width)
print(result)
我的思路
- 看到这个题目的时候第一感觉就是简单,但是实际做的时候遇到了点麻烦。
- 把输入的字符串放到列表里面
- 根据输入的宽度就想到切片方法
- 用for循环对字符串进行一次遍历,步长就是输入的w
- 存到一个列表里面就变成了一个二维列表
- 利用join方法把列表转换为字符串
- 完美通过所有测试用例
学习体会
不是特别难的一个小练习。我个人感觉逻辑很简单,但是这个切片方法还用的不是特别的习惯。就算是加强了一遍记忆吧,每天来一个python小练习保持一下手感。编程能力总是在实战中练习起来的。