【问题标题】:How to print space instead of underline in for loop for a string如何在for循环中为字符串打印空格而不是下划线
【发布时间】:2020-07-12 06:35:15
【问题描述】:

我目前有这个代码:

word_hidden = ""  
word = "Hello there"
hide_word = "_"
for i in range(len(word)):
    word_hidden += hide_word
print(f"Word: {word_hidden}")

输出:

Word: ___________

有没有办法让我将空格打印为输出中的空格而不是下划线,如下所示:

输出:

Word: _____ _____

【问题讨论】:

  • 为什么投反对票?

标签: python-3.x string for-loop


【解决方案1】:
word = "Hello there"
hide_word = "_"

word_hidden = ''.join({' ':' '}.get(ch, hide_word) for ch in word)
print(word_hidden)

打印:

_____ _____

或者:

word_hidden = ''
for ch in word:
    if ch == ' ':
        word_hidden += ch
    else:
        word_hidden += hide_word

print(word_hidden)

打印:

_____ _____

【讨论】:

    【解决方案2】:

    您可以拆分您的单词并在这样创建的列表上运行循环。这也会在单词的末尾打印一个额外的空格。

    word_hidden = ""
    word = "Hello There"
    ls = word.split(" ")
    hide_word = "_"
    
    for item in ls:
        word_hidden += len(item)*hide_word
        word_hidden += " "
        
    print (f"Word: {word_hidden}")
    

    【讨论】:

      【解决方案3】:

      正则表达式应该可以正常工作。

      import re
      regex = re.compile('[a-zA-Z]')
      regex.sub('_', 'Hello there')
      

      输出是:

      '_____ _____'
      
      

      【讨论】:

        猜你喜欢
        • 2016-03-27
        • 1970-01-01
        • 2019-10-13
        • 2021-04-25
        • 1970-01-01
        • 2020-05-22
        • 1970-01-01
        • 2015-02-15
        • 1970-01-01
        相关资源
        最近更新 更多