第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 for 循環(huán)中使用 if...else 返回一個字符串

在 for 循環(huán)中使用 if...else 返回一個字符串

一只萌萌小番薯 2022-05-24 13:25:12
所以在這里我試圖將字符串轉(zhuǎn)換' ABcsad f!,'為字符串'abcsadf',所以基本上我試圖將空格和非 alpha 替換為 '' 但我的代碼根本不起作用......s = ' ABcsad f!,'def norm(s):    b=''    i=0    for i in range(0,len(s)+1):        if (s[i].isalpha() is False) or (s[i].isspace() is False) :            return b+=''        else:            return b+=s[i]        i = i+1   print(norm(s))誰能告訴我哪里出錯了?
查看完整描述

3 回答

?
侃侃爾雅

TA貢獻1801條經(jīng)驗 獲得超16個贊

試試這個 :


s = ' ABcsad f!,'

def norm(s):

    return ''.join(i for i in s.lower() if i.isalpha())

print(norm(s))

輸出:


'abcsadf'


查看完整回答
反對 回復(fù) 2022-05-24
?
喵喔喔

TA貢獻1735條經(jīng)驗 獲得超5個贊

這是你出錯的地方

  1. 您將 return 放在 for 循環(huán)中。Return 退出整個norm函數(shù),而不是讓 for 循環(huán)完成。它需要搬到外面。

  2. len(s) + 1導(dǎo)致超出范圍的錯誤。它應(yīng)該只是len(s)

  3. 當(dāng)您要刪除空格時,s[i].isspace()應(yīng)檢查是否為真。

  4. 如果你想要所有的小寫,你需要s[i]s[i].lower()

  5. 您可以使用b += ...但不能在其自己的返回語句中使用它。無論如何,這無關(guān)緊要,因為您不應(yīng)該在那里使用 return 。

def norm(s):

    b=''

    for i in range(0,len(s)):

        if (s[i].isalpha() is False) or (s[i].isspace() is True):

            b += ""

        else:

            b += s[i].lower()

        i = i+1

    return b


s = ' ABcsad f!,'

print(norm(s))


查看完整回答
反對 回復(fù) 2022-05-24
?
慕無忌1623718

TA貢獻1744條經(jīng)驗 獲得超4個贊

可能與正則表達式:


import re


mystring = ' ABcsad f!,'

print (re.sub('[^A-Za-z0-9]+', '', mystring)).lower()

輸出:


abcsadf


查看完整回答
反對 回復(fù) 2022-05-24
  • 3 回答
  • 0 關(guān)注
  • 164 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號