def WhichAreCaps(Word):
for w in Word:
if w.isupper() == True:
print (w)
WhichAreCaps("IJkdLenMd")
结果:
I
J
L
M
所以我正在尝试构建一个代码,在字符串中查找大写字母并打印出字母。问题是我希望结果是一行字符串,而不是四行。有办法吗? (我只是一个初学者;;)
答案 0 :(得分:2)
print
函数接受end
关键字参数以指定打印后字符串的结尾。默认情况下,它设置为新行(\n
),您只需使用空格即可。另请注意,使用== True
检查任何表达式的真值是错误的,因为True
将解释为1,并且返回1的每个事物都将被解释为True。您只需使用if w.isupper()
:
def WhichAreCaps(Word):
for w in Word:
if w.isupper():
print(w, end=' ')
另一种方法是yield
函数中的元音并使其成为生成器:
def WhichAreCaps(Word):
for w in Word:
if w.isupper():
yield w
然后您可以以任何您喜欢的方式加入结果并打印出来:
print(','.join(WhichAreCaps(Word)))
毕竟,作为一种更加pythonic的方法,你可以简单地在str.join
中使用列表理解:
print(' '.join([w for w in Word if w.isupper()]))
答案 1 :(得分:1)
您可以将字母附加到空字符串然后将其返回。
def WhichAreCaps(Word):
ans=''
for w in Word:
if w.isupper() == True:
ans+=w
print(ans)