3 回答

TA貢獻1829條經驗 獲得超7個贊
我們是否在尋找第一個數字的位置/索引值,然后將循環分解為下面的打印語句?
是的,這是真的。它會中斷,因為一旦找到一個數字,在下一次迭代while not found條件中就會給出while False和中斷while循環。值得注意的是and短路,因此甚至不評估第二個條件。
如果未找到數字,則position遞增直至等于len(inputString),此時while循環通過第二個條件即 中斷position < len(inputString)。
編寫while循環的一種更 Pythonic / 慣用的方法是通過for循環和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 開始計數,我們可以利用這樣一個事實,如果找到一個數字,它必須是“Truthy”,即非零。因此,我們不需要額外的found變量。

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

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