打印结果没有空格python3

时间:2017-03-17 12:17:19

标签: python python-3.x printing

def WhichAreCaps(Word):
    for w in Word:
        if w.isupper() == True:
          print (w)

WhichAreCaps("IJkdLenMd")

结果:

I
J
L
M

所以我正在尝试构建一个代码,在字符串中查找大写字母并打印出字母。问题是我希望结果是一行字符串,而不是四行。有办法吗? (我只是一个初学者;;)

2 个答案:

答案 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)