3 回答

TA貢獻1829條經(jīng)驗 獲得超7個贊
我們是否在尋找第一個數(shù)字的位置/索引值,然后將循環(huán)分解為下面的打印語句?
是的,這是真的。它會中斷,因為一旦找到一個數(shù)字,在下一次迭代while not found條件中就會給出while False和中斷while循環(huán)。值得注意的是and短路,因此甚至不評估第二個條件。
如果未找到數(shù)字,則position遞增直至等于len(inputString),此時while循環(huán)通過第二個條件即 中斷position < len(inputString)。
編寫while循環(huán)的一種更 Pythonic / 慣用的方法是通過for循環(huán)和enumerate:
for idx, val in enumerate(inputString, 1):
if val.isdigit():
position = idx
break
else:
position = 0
if position:
print('first digit is at position', position)
else:
print('There are no digits in the string')
注意,在這個解決方案中,由于我們從 1 開始計數(shù),我們可以利用這樣一個事實,如果找到一個數(shù)字,它必須是“Truthy”,即非零。因此,我們不需要額外的found變量。

TA貢獻1744條經(jīng)驗 獲得超4個贊
這position
是您的迭代變量,就像在for
循環(huán)中一樣。因此,每次找不到數(shù)字時,都會轉(zhuǎn)到字符串中的下一個字符。
TheinputString[position]
讀取什么代表position
's 在字符串中的位置。所以,如果你的字符串abcdefg
,然后inputString[2]= c
(不是b
因為Python從0開始計數(shù))。
在.isdigit()
隨后看,如果在此位置是一個數(shù)字。如果是數(shù)字,則found = True
while循環(huán)停止。(否則它繼續(xù)。)
循環(huán)結(jié)束后,該函數(shù)會根據(jù) .csv 文件中是否有數(shù)字來打印兩條消息之一inputString
。

TA貢獻1876條經(jīng)驗 獲得超5個贊
您正在尋找inputString
位置的 值,position
。position
首先初始化為零,然后while循環(huán)每個位置(注意position += 1
)以查看它是否.isdigit()
.
添加回答
舉報