Re: [閒聊] python小白問個問題

作者: erimow (Erimo)   2024-08-06 10:45:05
Write a function called "swap" that takes a string as input, and returns a new
string with lowercase changed to uppercase, uppercase changed to lowercase.
雖然很醜
但經過我的努力
我可以把大寫小寫對調
但是為甚麼都跑到第二個字母就停了
def swap(string):
for index in range(0, len(string)):
for index2 in range(0, len(string)):
if (
string[index] == string[index].upper()
and string[index2] == string[index2].lower()
):
newstring = string[index].lower() + string[index2].upper()
print("newstring")
return "newstring"
swap("Aloha")
# returns "aLOHA"
swap("Love you.")
# returns "lOVE YOU."
但returns實際長這樣
aL
lO
作者: erimow (Erimo)   2024-08-06 10:48:00
我爛啊
作者: Wardyal (Wardyal)   2024-08-06 10:48:00
用一個for去掃 判斷大小寫 然後換掉不就好了
作者: sustainer123 (caster)   2024-08-06 10:48:00
他就return了R 所以只有兩個字你要寫在if外面
作者: Rushia (みけねこ的鼻屎)   2024-08-06 10:49:00
return
作者: Wardyal (Wardyal)   2024-08-06 10:49:00
而且你這樣排板 if的條件跟執行內容會不會容易搞混
作者: Rushia (みけねこ的鼻屎)   2024-08-06 10:50:00
python沒事不要用括號
作者: sustainer123 (caster)   2024-08-06 10:50:00
確實 為啥python要這樣括號 又不是C
作者: MurasakiSion (紫咲シオン)   2024-08-06 10:51:00
而且你說先能過再優化 你這改掉return也不會過
作者: Rushia (みけねこ的鼻屎)   2024-08-06 10:51:00
你print就print 沒事別return了ㄅ
作者: sustainer123 (caster)   2024-08-06 10:52:00
加個 nonlocal newstring
作者: Rushia (みけねこ的鼻屎)   2024-08-06 10:52:00
python又不像java有返回值就一定要return
作者: MurasakiSion (紫咲シオン)   2024-08-06 10:52:00
看描述不是單純大寫換小寫 小寫換大寫嗎
作者: erimow (Erimo)   2024-08-06 10:52:00
對啊
作者: erimow (Erimo)   2024-08-06 10:53:00
別逼
作者: sustainer123 (caster)   2024-08-06 10:53:00
確實 不就大小寫互換 為啥要兩個迴圈
作者: Wardyal (Wardyal)   2024-08-06 10:53:00
所以為什麼兩個for 我想知道思路
作者: MurasakiSion (紫咲シオン)   2024-08-06 10:54:00
你這樣如果開頭不是大寫直接一個都不會變
作者: Wardyal (Wardyal)   2024-08-06 10:54:00
string[index].upper() 跟 .lower() 分開
作者: erimow (Erimo)   2024-08-06 10:54:00
喔 對耶寫個新的
作者: sustainer123 (caster)   2024-08-06 10:55:00
你就一個迴圈 判斷小寫大寫 然後更改
作者: erimow (Erimo)   2024-08-06 10:55:00
一句話判斷大寫小寫要怎麼寫
作者: Rushia (みけねこ的鼻屎)   2024-08-06 10:55:00
if(大寫) 轉小寫 elif(小寫) 轉大寫
作者: erimow (Erimo)   2024-08-06 10:56:00
作者: Rushia (みけねこ的鼻屎)   2024-08-06 10:56:00
isupper(), islower()
作者: MurasakiSion (紫咲シオン)   2024-08-06 11:02:00
string[index].lower() 單純只會回傳一個字而已==不會去動到原本的值
作者: erimow (Erimo)   2024-08-06 11:03:00
喔 大概懂你意思 我好像學過但我忘了
作者: sustainer123 (caster)   2024-08-06 11:03:00
newstring += string[index]
作者: erimow (Erimo)   2024-08-06 11:05:00
結果一樣沒轉到
作者: Wardyal (Wardyal)   2024-08-06 11:05:00
卡了是什麼意思 編不過嗎7
作者: sustainer123 (caster)   2024-08-06 11:05:00
少打轉換函式 反正就加上轉換好的
作者: Rushia (みけねこ的鼻屎)   2024-08-06 11:06:00
作者: erimow (Erimo)   2024-08-06 11:06:00
喔靠北懂了那邊就要先加進去我今天進度還要寫一題 我先自己寫==

Links booklink

Contact Us: admin [ a t ] ucptt.com