我正在制作一个有关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
答案 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运算符将返回您获得的序列。