【问题标题】:Why for loop not processing the entire input string?为什么 for 循环不处理整个输入字符串?
【发布时间】:2019-01-05 05:22:31
【问题描述】:
我是 Python 编码的新手。我报名参加了微软提供的在线课程 DEV274X:Python 基础介绍。
对于我的第一个作业,我必须编写一个代码来处理给定的字符串并在新行中打印首字母大于或等于 'h' 的单词
仅使用以下方法: for/in(迭代)、input、if、else、.isalpha() 方法、.lower() 或 .upper() 方法。字符串是“无论你去哪里,全心全意地去”,所需的输出是
我的代码和我得到的输出是
谁能帮我告诉我这段代码有什么问题?
【问题讨论】:
标签:
python
loops
for-loop
if-statement
【解决方案1】:
我认为您的代码是正确的,只是一个小错误。
最后一行是
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())
【解决方案2】:
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())
这是一个典型的边缘条件检查。您的代码依靠新字母来确定当前单词是否应该被打印出来。 “心”是最后一个字,应该在 for 循环结束时检查。