至少有四种思路来写
Topic source对于写法一中的一个疑问点:为什么使用 s[:1] 可以,而使用 s[0] 会报错,这是因为:
s[0] 表示索引(index),s[:1] 表示切片(slice),这两个操作在 python 内部的实现原理是不同的。仅当操作对象是字符串,且字符串不为空时,s[0]和s[:1]的表现结果"恰好"一致。对于列表和元组,这两种写法的结果并不相同。示例如下:
>>> l = [1,2,3]
>>> l[0]
1
>>> l[:1]
[1]
>>> s = "abc"
>>> s[0]
'a'
>>> s[:1]
'a'
>>> t = (1,2,3)
>>> t[0]
1
>>> t[:1]
(1,)
因此这两种方法不能混用。
参考链接:
Python String index out of range, difference between s[0] and s[:1] [duplicate]
- 1
要四个字哦
第一种,使用两个 for/while 循环,分别去掉字符串首尾的空格。其中最简洁的写法已经有多位同学写出,借鉴如下:
第二种,鉴于很多循环都可以写成递归函数的形式,因此使用递归函数写法也能写出,评论中也有同学写出来,大家可以翻一下评论参考一下。
第三种,仅使用一次 while 循环,将字符串转成列表,利用列表翻转的方法实现:
第四种,仅使用一个 for 循环,通过 enumerate 函数获取首尾非空格的索引,直接截断字符串: