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

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

Python:嘗試查找第一個大寫字母時字符串索引超出范圍

Python:嘗試查找第一個大寫字母時字符串索引超出范圍

四季花海 2023-09-12 19:47:41
我試圖獲取字符串中的第一個大寫字母,但我得到一個“index out of range error 我不知道這是否是遞歸的基本情況”。請有人幫助我這是我的代碼:def firstCapital(str, i):    if (str[i] == None):        return 0    if (str[i].isupper()):        return str[i]    return firstCapital(str, i + 1)name = "geoRge"res = firstCapital(name, 0)if (res == 0):    print("No uppercase letter")else:    print(res)
查看完整描述

3 回答

?
寶慕林4294392

TA貢獻(xiàn)2021條經(jīng)驗(yàn) 獲得超8個贊

str[i]如果大于或等于 的長度,將引發(fā)此index out of range異常。您應(yīng)該將基本情況更改為:istr

if (i >= len(str)):
    return 0


查看完整回答
反對 回復(fù) 2023-09-12
?
搖曳的薔薇

TA貢獻(xiàn)1793條經(jīng)驗(yàn) 獲得超6個贊

該行if (str[i] == None):不執(zhí)行您希望它執(zhí)行的操作。None這看起來像是在嘗試檢查索引是否超出了字符串的末尾,但 Python 中的字符串在最后一個真實(shí)字符之后沒有。相反,當(dāng)您嘗試索引超過末尾時,您會得到所描述的異常。

相反,您應(yīng)該比較ilen(str)它是數(shù)字字符串的長度。由于索引從零開始,索引等于 就len(str)在末尾,所以你可能想要:

if i >= len(str):
    return 0

我還會仔細(xì)檢查返回零是否是您想要執(zhí)行的操作。如果您找到大寫字母,則將從其他條件案例中返回它。在不同情況下返回不同類型并不總是理想的,因?yàn)檎{(diào)用者可能很難知道他們可以對結(jié)果使用哪些 API。返回一個空字符串,或者None可能比返回一個數(shù)字更有意義。


查看完整回答
反對 回復(fù) 2023-09-12
?
月關(guān)寶盒

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超5個贊

使用 str[i]==None 將“強(qiáng)制”python 確定 str[i] 的值,該值不存在,因此索引超出范圍錯誤。您可以使用 len(str) 和 i 來確定是否到達(dá)字符串末尾:


def firstCapital(str, i):

    if i>len(str)-1: #Instead of str[i]==None

       return 0

    if str[i].isupper():

        return str[i]

return firstCapital(str, i + 1)


input : ('Ali',0) 

Output: 'A'


Input: ('lia',0) 

Output:0


查看完整回答
反對 回復(fù) 2023-09-12
  • 3 回答
  • 0 關(guān)注
  • 168 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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