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

时间:2019-01-05 05:22:31

标签: python loops for-loop if-statement

我是Python编码的新手。我参加了在线课程DEV274X:Microsoft提供的Python基础知识简介。

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

仅使用以下方法: for / in(迭代),如果.isalpha()方法,.lower()或.upper()方法,请输入。字符串是“无论您走到哪里,全力以赴”,所需的输出是 enter image description here

我的代码和我得到的输出是

enter image description here

有人可以告诉我这段代码有什么问题吗?

2 个答案:

答案 0 :(得分:0)

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

print(ltr)

将仅打印“ t”,即最后一个重复的字母。您必须将其更改为“ new”,并检查其是否为“ 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())

答案 1 :(得分:0)

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())

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