Python 为什么for循环不处理整个输入字符串?

Python 为什么for循环不处理整个输入字符串?,python,loops,for-loop,if-statement,Python,Loops,For Loop,If Statement,我是Python编码新手。我参加了由微软提供的在线课程DEV274X:Python基础介绍 在我的第一个作业中,我必须编写一个代码来处理给定的字符串,并在新行中打印第一个字母大于或等于“h”的单词 仅使用以下方法:for/in(迭代)、input、if、else、.isalpha()方法、.lower()或.upper()方法。字符串是“无论你去哪里,都要全心投入”,期望的输出是 我的代码和输出是 有人能告诉我这个代码有什么问题吗?我认为你的代码是正确的,只是一个小错误。 最后一行是 pri

我是Python编码新手。我参加了由微软提供的在线课程DEV274X:Python基础介绍

在我的第一个作业中,我必须编写一个代码来处理给定的字符串,并在新行中打印第一个字母大于或等于“h”的单词

仅使用以下方法:for/in(迭代)、input、if、else、.isalpha()方法、.lower()或.upper()方法。字符串是“无论你去哪里,都要全心投入”,期望的输出是

我的代码和输出是


有人能告诉我这个代码有什么问题吗?

我认为你的代码是正确的,只是一个小错误。 最后一行是

print(ltr)
它将只打印最后一个迭代字母“t”。您必须将其更改为“新建”,并检查它是否大于“h”

quote="Wheresoever you go, go with all your heart"
new= ''
for letter in quote:
    if letter.isalpha():
        new+= letter
    elif new.lower() >= 'h':
        print(new.upper())
        new= ''
    else:
        new= ''
if new.lower() >= 'h':
     print(new.upper())

这是典型的边缘条件检查。您的代码依赖于新字母来确定当前单词是否应该打印出来。“Heart”是最后一个词,应该在for循环的末尾进行检查。

欢迎使用堆栈溢出。请阅读,采取,阅读,以及。最后,请学习如何创建一个在问题正文中内联显示给我们的。
quote="wheresoever you go,go with your heart"
newword=""
for letter in quote:
    if letter.isalpha():
        newword = newword + letter
    else:
        print(newword)
        if newword[0].lower()>='h':
            print(newword.upper())
            newword=""
        else:
            newword=""
if newword[0].lower()>='h':
    print(newword.upper())