亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

python3的教程中,利用切片操作,實現strip()方法怎么做?(知道做法了,但問題刪不了了0.0)

題目:利用切片操作,實現一個trim()函數,去除字符串首尾的空格,注意不要調用str的strip()方法。

有‘ ?lck’, ' ? lck ?', 'lck ? ?' ?這3種情況,而且幾個空格也無法判斷,怎么切片?

正在回答

9 回答

def trim(s):

? ? start, end = 0, 0

????for i in range(len(s)):

????????if s[i] == ' ':

????????????continue

????????else:

????????????start = i

????????????break

????for j in range(-1, -1-len(s), -1):

????????if s[j] == ' ':

????????????continue

????????else:

????????????end = j

????????????break

????????if start == end:

????????????new_s = ''

????????else:

????????????new_s = s[start : len(s) + end + 1]

????return new_s

已驗證代碼,高效,包括全空格字符串和空字符串都可以識別

0 回復 有任何疑惑可以回復我~
def?trim(s):
????if?s=='':
????????return?s
????i=0
????p=len(s)-1
????while?s[i]=='?':
????????i=i+1
????while?s[p]=='?':
????????p=p-1
????print(s[i:p+1])


trim('')
trim('abd?')
trim('?abd?')
trim('?abd')
trim('?hello?world?')


0 回復 有任何疑惑可以回復我~
def?trim(s):
????i?=?len(s)
????j=0
????r=[]
????if?s=='':
????????return?''
????while?s[j]=='?':
????????j=j+1
????????if?j>i-1:
????????????break
????while?s[i-1]=='?':
????????i=i-1
????????if?i<1:
????????????break
????if?i<j:
????????return?''
????else:
????????r=s[j:i]
????return?r

也是笨辦法 能用

0 回復 有任何疑惑可以回復我~
trim(s):
????index_first?=?index_last=-i?((s)):
????????s[i]?!=?:
????????????index_first=i
????????????i?((s)):
????????s[i]?!=?:
????????????index_last=i
????s:
????????s?=.join(s[index_first:index_last+])
????s


0 回復 有任何疑惑可以回復我~
trim(s):
????index_first?=?index_last=-i?((s)):
????????s[i]?!=?:
????????????index_first=i
????????????i?((s)):
????????s[i]?!=?:
????????????index_last=i
????s:
????????s?=.join(s[index_first:index_last+])
????s


0 回復 有任何疑惑可以回復我~
#1

慕用2704297

def trim(s): index_first = 0 index_last=-1 for i in range(len(s)): if s[i] != ' ': index_first=i break for i in range(len(s)): if s[i] != ' ': index_last=i if s: s =''.join(s[index_first:index_last+1]) return s
2018-01-28 回復 有任何疑惑可以回復我~

def trim(s):

? ? if s=='':

? ? ? ? return s

? ? elif s[0]!=' 'and s[-1]!=' ':

? ? ? ? return s

? ? elif s[0]==' ' and s[-1]==' ':

? ? ? ? s=s[1:-1]

? ? ? ? if s=='':

? ? ? ? ? ? return s

? ? ? ? else:

? ? ? ? ? ? return trim(s)

? ? elif s[0] == ' ' and s[-1] != ' ':

? ? ? ? s=s[1:]

? ? ? ? return trim(s)

? ? elif s[0] != ' ' and s[-1] == ' ':

? ? ? ? s=s[:-1]

? ? ? ? return trim(s)

比較笨,但是能用。


0 回復 有任何疑惑可以回復我~

def myTrim(n):

length=len(n)

for i in range(length):

if n[i] == ' ':

continue

else:

n = n[i:length]

break

length = len(n) -1

while n[length] == '':

if length == i:

break

length -= 1

return n[:length]


print(myTrim(' I am is Harry '))


1 回復 有任何疑惑可以回復我~
def?trim(string):
????length=len(string)
????for?i?in?range(length):
????????if?string[i]=='?':
????????????continue
????????else:
????????????break
????j=length-1
????while?string[j]=='?':
????????if?j==i:
????????????break
????????j-=1
????new=string[i:j+1]
????return?new

strip()不應該去除中間的空格,所以分別從頭到尾,從尾到頭掃描兩遍,遇到字符就跳出循環。為了避免全是空格的情況,設置一個下標值是否相同的判斷條件。

3 回復 有任何疑惑可以回復我~
#1

Liebesleid_z

運行不出來啊,哥。。
2018-02-03 回復 有任何疑惑可以回復我~
def?myTrim(s):
????ss?=?''
????for?i?in?range(len(s)):
????????if?cmp(s[i],?'?')?==?0?:
????????????continue
????????else:
????????????ss?=?ss?+?s[i]
????return?ss;


2 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
初識Python
  • 參與學習       758392    人
  • 解答問題       8967    個

學python入門視頻教程,讓你快速入門并能編寫簡單的Python程序

進入課程

python3的教程中,利用切片操作,實現strip()方法怎么做?(知道做法了,但問題刪不了了0.0)

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號