【问题标题】:Substituting all letters from a string with a single character用单个字符替换字符串中的所有字母
【发布时间】:2021-12-10 07:21:02
【问题描述】:

我在 python 中做一个刽子手游戏,我被困在我有一个随机生成的单词的部分,我试图通过用这样的破折号替换所有字符来隐藏这个单词:

生成的单词 -> 'abcd' 隐藏单词 -> _ _ _ _

我做了以下事情:

string = 'luis'

print (string.replace ((string[i]) for i in range (0, len (string)), '_'))

它给了我以下错误:

                       ^

语法错误:生成器表达式必须用括号括起来

请给我一些类型

【问题讨论】:

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


    【解决方案1】:

    您可以尝试一种非常简单的方法,如下所示:

    word = "luis"
    print("_" * len(word))
    

    输出将是:

    >>> word = "luis"
    >>> print("_" * len(word))
    ____
    >>> word = "hi"
    >>> print("_" * len(word))
    __
    

    【讨论】:

      【解决方案2】:

      最简单的是:

      string = "luis"
      
      "_" * len(string)
      # '____'
      

      如果你想要中间有空格:

      " ".join("_" * len(string))
      # '_ _ _ _'
      

      但是,由于您稍后需要显示猜测的字符,因此最好首先使用生成器:

      " ".join("_" for char in string)
      # '_ _ _ _'
      

      这样你就可以轻松插入猜到的字符了:

      guessed = set("eis")
      " ".join(char if char in guessed else "_" for char in string)
      # '_ _ i s'
      

      【讨论】:

        猜你喜欢
        • 2012-10-10
        • 2010-12-20
        • 1970-01-01
        • 1970-01-01
        • 2018-11-25
        • 1970-01-01
        • 1970-01-01
        • 2023-03-23
        • 2012-05-31
        相关资源
        最近更新 更多