[問題] 反轉文字 程式哪裡錯了

看板Python作者 (Naruto)時間14年前 (2010/12/06 14:37), 編輯推噓3(3012)
留言15則, 6人參與, 最新討論串1/1
def reverse(x): y = " " for c in x: y = y+c return y print reverse("apple") 請問如果要把apple變成elppa的話程式哪裡錯了? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.212.197

12/06 15:04, , 1F
請思考 y = y+c 的意思是什麼...我覺得你需要找個好教材
12/06 15:04, 1F

12/06 15:09, , 2F
我試過y = y+c[-1::] 指定他從後面一個字一個字取也不
12/06 15:09, 2F

12/06 15:09, , 3F
12/06 15:09, 3F

12/06 15:26, , 4F
for c in range(len(x)-1,-1,-1): y+=x[c]
12/06 15:26, 4F

12/06 15:27, , 5F
不知道是不是貼上來時貼錯, return 的位置你也要記得修正
12/06 15:27, 5F

12/06 15:45, , 6F
感謝大家! 因為我第一次學程式 Orz...很多都看不懂
12/06 15:45, 6F

12/06 15:52, , 7F
for c in x 是從前面開始, 所以你要從後面開始附加
12/06 15:52, 7F

12/06 15:53, , 8F
所以用 y = c + y 就會反過來, 可以試著想想為什麼
12/06 15:53, 8F

12/06 15:53, , 9F
另外如果實際用不要傻傻的這個轉, x[::-1] 就搞定了...
12/06 15:53, 9F

12/06 16:04, , 10F
@@"原來只是反過來就可以了...
12/06 16:04, 10F

12/06 17:04, , 11F
學到slice的[::]方法 ,感謝!
12/06 17:04, 11F

12/06 19:48, , 12F
推x[::-1] 這一招
12/06 19:48, 12F

12/06 20:48, , 13F
''.join([x[k-1:k] for k in range(len(x),0,-1)])
12/06 20:48, 13F

12/06 21:38, , 14F
'apple'[::-1]
12/06 21:38, 14F

12/06 22:33, , 15F
0.0 原來我-1錯位子了...
12/06 22:33, 15F
文章代碼(AID): #1C_8IO15 (Python)
文章代碼(AID): #1C_8IO15 (Python)