【发布时间】:2021-04-06 20:23:01
【问题描述】:
我想在python中制作自己的lower函数
就像我们使用的那样:
>>“你好,世界!”.lower()
>>你好,世界!
我想做自己的lower函数
我试过这段代码:
String = "Hello, World!"
def lowerFunction(MyStr):
if "A" in MyStr:
MyStr = MyStr.replace("A",'a')
if "B" in MyStr:
MyStr = MyStr.replace("B",'b')
if "C" in MyStr:
MyStr = MyStr.replace("C",'c')
if "D" in MyStr:
MyStr = MyStr.replace("D",'d')
if "E" in MyStr:
MyStr = MyStr.replace("E",'e')
if "F" in MyStr:
MyStr = MyStr.replace("F",'f')
if "G" in MyStr:
MyStr = MyStr.replace("G",'g')
if "H" in MyStr:
MyStr = MyStr.replace("H",'h')
if "I" in MyStr:
MyStr = MyStr.replace("I",'i')
if "J" in MyStr:
MyStr = MyStr.replace("J",'j')
if "K" in MyStr:
MyStr = MyStr.replace("K",'k')
if "L" in MyStr:
MyStr = MyStr.replace("L",'l')
if "M" in MyStr:
MyStr = MyStr.replace("M",'m')
if "N" in MyStr:
MyStr = MyStr.replace("N",'n')
if "O" in MyStr:
MyStr = MyStr.replace("O",'o')
if "P" in MyStr:
MyStr = MyStr.replace("P",'p')
if "Q" in MyStr:
MyStr = MyStr.replace("Q",'q')
if "R" in MyStr:
MyStr = MyStr.replace("R",'r')
if "S" in MyStr:
MyStr = MyStr.replace("S",'s')
if "T" in MyStr:
MyStr = MyStr.replace("T",'t')
if "U" in MyStr:
MyStr = MyStr.replace("U",'u')
if "V" in MyStr:
MyStr = MyStr.replace("V",'v')
if "W" in MyStr:
MyStr = MyStr.replace("W",'w')
if "X" in MyStr:
MyStr = MyStr.replace("X",'x')
if "Y" in MyStr:
MyStr = MyStr.replace("Y",'y')
if "Z" in MyStr:
MyStr = MyStr.replace("Z",'z')
return MyStr
print(lowerFunction(String))
但是这段代码太大了,我们可以用不同的技术来做吗?
提前致谢
【问题讨论】:
-
作为一个微小的优化,你可以放弃
ifs -
放弃
ifs是什么意思 -
replace替换所有匹配项——当没有匹配项时它什么也不做。因此,您可以在不事先检查if的情况下执行replaces。只需删除行并取消缩进其余行即可。 -
喜欢这个
MyStr.replace('A','a')?? -
提示:小写字母和大写字母的 ASCII 码相差正好 32(或 0x20)。