最近刚学python遇到不懂的地方,特来请教一下各位友友!
自己编写去除左右两端的空格,不用strip函数怎么实现呢?
我自己的思路是通过循环用pop()函数先去掉左边的空格,然后再去掉右边的空格,可是输出怎么都不对,有没有友友帮我一下,如果有源码给我借鉴借鉴就再好不过啦!
【若能帮到您,望给个采纳答案哦,谢谢!】
1、效果如下
这里采用的是循环字符串,逐个字符判断是否是空格
2、代码如下
str=" c s d n "
# 先循环左边,记录下最后一个空格的下标值
startIndex=0
for char in str:
if char.isspace():
startIndex+=1
else:
break
# 再循环右边,反向输出,记录下最近一个空格的下标
endIndex=len(str)
for char in str[::-1]:
if char.isspace():
endIndex-=1
else:
break
# 最后输出非空格区域的字符串即可
print(str[startIndex:endIndex])
感觉自己写挺麻烦。
提供个思路,供参考
s1 = " test abc ddd "
s_lst = list(s1)
mv_lst = []
# 记录 前面的空格
i = 0
s = s_lst[i]
while s == " ":
mv_lst.append(i)
i += 1
s = s_lst[i]
# 记录后面的空格
i = len(s_lst)-1
s = s_lst[i]
while s == " ":
mv_lst.append(i)
i -= 1
s = s_lst[i]
# 生成新字符串
s2 = "".join([s1[i] for i in range(len(s1)) if i not in mv_lst])
print(s2)
s = input(">>>")
i = 0
while i < len(s):
if s[i] != ' ':
break
i +=1
s = s[i:]
j = len(s) -1
while j > -1:
if s[j] != ' ':
break
j -=1
print(s[:j+1])