3 回答

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超1個贊
如果您只想要 @ 所在的字符串索引,為什么不使用 string.index()
>>> email = "email@gmail.com"
>>> email.index('@')
5

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超1個贊
您需要在循環(huán)counter 內(nèi)設(shè)置變量。您也不需要該count變量,因?yàn)槟呀?jīng)有了i,它是迭代次數(shù)(從 0 開始)。根據(jù)您的描述,當(dāng)您找到一個@標(biāo)志時,您還需要從循環(huán)中中斷,以防有多個標(biāo)志(即使對于電子郵件地址來說不應(yīng)該有)。
所以你可以這樣做:
email = "email@gmail.com"
length = len(email)
for i in range(length):
counter = email[i]
if counter == "@":
print(counter)
print(i+1)
break
您還可以在迭代電子郵件時使用enumerate給您提供的函數(shù)來簡化代碼:icounter
email = "email@gmail.com"
for i, counter in enumerate(email):
if counter == "@":
print(counter)
print(i+1)
break

TA貢獻(xiàn)1873條經(jīng)驗(yàn) 獲得超9個贊
問題是您沒有在循環(huán)內(nèi)設(shè)置計(jì)數(shù)器的值,它被設(shè)置為第一個值,然后再也不會設(shè)置。您還需要設(shè)置 email[i] 的計(jì)數(shù)器,因?yàn)?i 是遞增的變量。
以下代碼有效:
email = "email@gmail.com"
length = len(email)
count = 0
for i in range(length):
counter = email[i] # This is the line I changed!
if counter == "@":
print(counter)
print(count)
i = 0
else:
count = count + 1
請記住,由于索引從 0 開始,因此您將得到“@ 5”的輸出。
添加回答
舉報