我正在尝试在 python 中创建一个函数,将字符串的所有字符更改为大写(尝试从头开始创建 python upper 函数)。我还使用 find_chr() 函数来获取原始字符串的字符索引。代码是:
def main():
ASCII_LOWERCASE="abcdefghijklmnopqrstuvwxyz"
ASCII_UPPERCASE="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
ASCII_ALL=ASCII_LOWERCASE+ASCII_UPPERCASE
print(upper('i am going'))
def find_chr(s,char):
i=0
for ch in s:
if ch==char:
return (i)
break
i+=1
return -1
def upper(s):
ASCII_LOWERCASE="abcdefghijklmnopqrstuvwxyz"
ASCII_UPPERCASE="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
result=""
for ch in s:
if ch in ASCII_UPPERCASE:
result+=ch
elif ch in ASCII_LOWERCASE:
index=find_chr(ASCII_LOWERCASE,ch)
new=ASCII_UPPERCASE[index]
result+=new
return result
main()
我的问题是输出是
IAMGOING
而不是“我要去”。如果有人能给我一些修改代码以获得适当结果的指示,我将非常感激。谢谢
最佳答案
这里缺少第三种可能性:
if ch in ASCII_UPPERCASE:
result+=ch
elif ch in ASCII_LOWERCASE:
index=find_chr(ASCII_LOWERCASE,ch)
new=ASCII_UPPERCASE[index]
result+=new
您需要:
else:
result += ch
如果它不是大写或小写(例如您的空格),则不会添加它
关于python - 将python中的所有字母更改为大写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21808449/