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