[閒聊] python小白問個問題

作者: erimow (Erimo)   2024-07-31 11:50:16
# Write a function called "position" that returns a tuple of the first
uppercase letter and its index location. If not found, returns -1.
剛剛在寫這個很簡單的
def position(string):
for num, s in enumerate(string): # enumerate (iterable, start=0)
if s == s.upper():
print((s, num))
return (s, num)
print(-1)
return -1
enumerate很好寫沒有問題
但我剛剛想說用index寫寫看
def position(string):
for index in range(0, len(string)):
if string[index] == string[index].upper():
print((string[index], index))
print(-1)
return -1
position("abcd") # returns -1
position("AbcD") # returns ('A', 0)
position("abCD") # returns ('C', 2)
理論上上下兩者return都會這樣
但後者卻長這樣
('A', 0)
('D', 3)
-1
('C', 2)
('D', 3)
-1
def position(string):
for index in range(0, len(string)):
if string[index] == string[index].upper():
print((string[index], index))
return (string[index], index)
print(-1)
return -1
我補上return這行才正確
-1
('A', 0)
('C', 2)
有沒有人可以跟土法煉鋼學習的我解釋一下這個return扮演甚麼角色
我只是很直覺得加上去,就寫對了==
不懂why
作者: bach8517 (palela)   2024-07-31 11:55:00
沒加會印所有大寫
作者: erimow (Erimo)   2024-07-31 11:56:00
對啊 我只是想問return是讓他跑到第一個就回報結果的意思
作者: Rushia (みけねこ的鼻屎)   2024-07-31 11:57:00
你是用直譯器寫的話他螢幕上顯示的不一定是print
作者: erimow (Erimo)   2024-07-31 11:58:00
我用visual studio寫
作者: Rushia (みけねこ的鼻屎)   2024-07-31 12:00:00
你函數都是返回-1當然都顯示-1其實我看了好幾分鐘都看不太懂你要問什麼
作者: erimow (Erimo)   2024-07-31 12:03:00
就為什麼我多打return那行 他就會是我預期的答案沒有多跑出來的東西
作者: Rushia (みけねこ的鼻屎)   2024-07-31 12:03:00
總之你return之後後面的程式都不會執行了
作者: sustainer123 (caster)   2024-07-31 12:03:00
因為return 就是不會再往下走你沒打return 他就會持續運行直到你走到return -1我猜你的疑問是這個?

Links booklink

Contact Us: admin [ a t ] ucptt.com