有没有一种方法可以基于变量添加字符?

时间:2019-05-31 00:12:15

标签: python count python-textprocessing

我正在制作一个有关Hang子手的基于文本的游戏,到目前为止,我有10个单词,每个单词中的字符数不同。最少的字符数是3,因此我计划在开始时添加三个下划线,以便能够在字符串后添加下划线。

我有一个名为wordPlayingLength的变量设置,该变量根据通过随机语句选择的单词中的字符数量对整数进行计数。我的问题是,是否有办法添加与单词的字符长度匹配的下划线?

if (randomNumber == 10):
    wordPlaying = str("Didgeridoo") ## states the word being played
    wordPlayingLength = int(len(wordPlaying)) ## calculates the character length of the word being played
    print(str(wordPlayingLength) + " letters!")

    underscoreCount = (wordPlayingLength)
    print("_ _ _ " + ) ## this is where I got stuck, no idea here

3 个答案:

答案 0 :(得分:1)

在Python中,您可以将字符串乘以整数以重复:

>>> num_of_underscores = 9
>>> num_of_underscores * "_"
'_________'

如果要在下划线之间留空格,可以执行类似的操作

>>> " ".join("_" * num_of_underscores)
'_ _ _ _ _ _ _ _ _'

其中您将一个带有下划线的数组乘以整数以得到其中的很多。

答案 1 :(得分:0)

首先, 您不需要wordPlaying = str("Didgeridoo")

wordPlaying = "Didgeridoo"wordPlayingLength = int(len(wordPlaying))

第二, 要重复字符串,可以使用wordPlayingLength = len(wordPlaying)

答案 2 :(得分:0)

这是您的程序,其中包含我认为您正在描述的逻辑:

if randomNumber == 10:
    wordPlaying = "Didgeridoo"
    print("{}  letters!".format(len(wordPlaying)))
    print(' '.join('_' * len(wordPlaying)))

我删除了一些不必要的括号和str()int()的使用。由于调用字符串或列表的len()是一项恒定时间操作,因此无需使用变量进行保存就可以在此处存储长度。

您需要了解的关键行为是:

  • str.join(),它通过将iterable的元素与调用它的字符串的内容交织在一起,从而获取了iterable的元素,并从中得到一个字符串。
  • 如果将n的{​​{1}}个副本加在一起,integer n * sequence s运算符将返回您获得的序列。