[闲聊] 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