程序:"G"/"g" (python) 之后的词

Program: Words after "G"/"g" (python)

我最近开始学习python,因为我以后想进入深度学习领域。 由于我是全新的并且刚刚开始,如果我的问题很愚蠢,我提前道歉。 我目前正在上 edx 的课程,名称为 python 基础知识介绍,作为模块 1 的最终项目,我需要制作一个程序,要求用户输入并输出从 h 到 z 的所有单词.

任务

这是我的代码:

user_input = input("enter a 1 sentence quote, non-alpha separate words: ")
new_name = ""
for letter in user_input:
    if letter.isalpha() == True:
        new_name += letter.upper()
    elif letter.isalpha() == False:
        if new_name[0] > "g":
            print(new_name)
            new_name = ""
        else:
            new_name = "\n"
print(new_name)

INPUT = 无论走到哪里,全心全意 OUTPUT = 随心所欲

根据我对代码的理解,我写了: - 用户输入 - 每个字符的代码检查 - 如果字母是 alpha,则该字母被添加到 new_name 变量中 - 在这些情况下遇到第一个没有字母字符时 space 在单词之后 无论代码移动到 elif 因为在检查拳头后它不是 True 并且 elif 转向 mach 标准 - 然后通过使用嵌套的 if 语句检查 new_name variable[index0] (Wherever) 是否比 g 大。 - 如果它更细,它会打印 new_name 并使 new_name 为空并重复圆圈,直到没有更多的字符要检查。 - 如果它不大于 g 它在新行上以新词开头

现在我很伤心,我是全新的,所以我刚刚描述了我对代码的思考过程,请告诉我我哪里错了,我该如何纠正和改进我的思考过程和上面提到的代码。

提前谢谢你:)

尝试下面的方法,遍历 user_input 字符串的列表拆分,然后检查它是否以 Gg 开头,如果是,则不要保留它,否则保留它,然后使用正则表达式(re)只得到字母。

另外你说你需要isalpha 那么:

user_input = input("enter a 1 sentence quote, non-alpha separate words: ")
print('\n'.join([''.join(x for x in i if x.isalpha()).upper() for i in user_input.split() if not i.lower().startswith('g')]))

示例输出:

enter a 1 sentence quote, non-alpha separate words: Wheresoever you go, go with your heart
WHERESOEVER
YOU
WITH
YOUR
HEART

更新表格@KillPinguin:

做:

user_input = input("enter a 1 sentence quote, non-alpha separate words: ")
print('\n'.join([''.join(x for x in i if x.isalpha()).upper() for i in user_input.split() if ord(i[0])>ord('g')]))