python - 将python中的所有字母更改为大写

标签 python

我正在尝试在 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/

相关文章:

python - 在 python 中使用多个控制台

python - Flask 和子进程 Popen - 向多个用户发送相同的数据

python - 字典理解 - 不要生成具有空列表值的键/值对

python - 在 Python 中,为什么我不能执行 : import A; A. B.C.foo()

python - 单语句中的 For 循环

python - 使用 matplotlib 保存散点图动画

python - 以 Django 形式插入标题

python - 如何在 Pandas 中读取和规范化以下 json?

python - 在 Plone 模板中处理表单提交

python - python 包安装中的 --home 或 --prefix ?