尝试在 Python 3.7 中构建一个大写到小写的字符串转换器,这是我的代码:
def convertChar(char):
if char >= 'A' and char <= 'Z':
return chr(ord(char) + 32)
def toLowerCase(string):
for char in string:
string = string + convertChar(char)
return string
string = input("Enter string - ")
result = toLowerCase(string)
print(result)
这是我的输出:
Enter string - HELlo
Traceback (most recent call last):
File "loweralph.py", line 11, in <module>
string = toLowerCase(result)
File "loweralph.py", line 6, in toLowerCase
result = result + convertChar(char)
TypeError: can only concatenate str (not "NoneType") to str
我对 Python 真的很陌生,我看到了“列表到列表”TypeErrors 的答案和另一个答案for str 到 str,但我无法将其与我的代码联系起来。如果有人可以解释我做错了什么,那就太好了!
您需要在代码中添加一些异常情况。首先,如果输入的字符已经是小写怎么办?
你可以做这样的事情:
def convertChar(char):
if char >= 'A' and char <= 'Z':
return chr(ord(char) + 32)
return char
这可能不是最理想的解决方案,但它可以解决大部分问题。也就是说,只有输入的字符是大写时,才会转换为小写。对于所有其他情况(无论是小写字符、数字等等),字符将按原样返回。
其次,如果您正在制作大写到小写转换器,则输出HElLo
应该hello
, not HElLohello
.
为此,您需要修改第二个函数,如下所示:
def toLowerCase(string):
newString = []
for char in string:
newString.append(convertChar(char))
return ''.join(newString)
最后,您可能需要考虑使用.upper()
内置功能。
使用示例:
'你好'.upper()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)