slice/stride by variable?
背景
我正在尝试用python编写一个基本的字母游戏。在游戏中,计算机主持人从可能的单词列表中选择一个单词。每个播放器(计算机人工智能和人类)显示一系列空白,每个字对应一个空白。然后,每个玩家猜测一个字母和一个位置,并被告知以下内容之一:
- 那封信属于那个位置(最好的结果)
- 那封信在字面上,但不是在那个位置上
- 那封信不在剩下的空白处
当这个词被完全揭示时,猜对大多数字母的玩家会赢得一分。计算机主持人选择另一个词并重新开始。先得五分的选手获胜。在基本游戏中,两个玩家共享相同的空白区域,因此他们从彼此的工作中受益。
我的问题
是否有任何方法可以使用包含整数的变量来指定切片/步幅的程度?
因为这个秘密词是随机的,我无法知道它将包含多少个字符。我想先根据用户选择的位置值的准确性检查用户的输入(猜测),然后再检查字母是否出现在机密字中(不仅仅只出现在他们指定的位置)。我想我可以使用len()来确定秘密单词中的位置数量,然后使用播放器的数字输入来切片/跨步到播放器指定单词中的正确字符位置。
如何将用户提供的整数放入slice/stead命令中?它似乎不接受将输入分配给变量,然后将变量放在切片/步幅中。
我是一个初学Python的人,所以如果这是一个愚蠢的问题,我道歉——我最初的研究没有发现任何问题。
简单地说,是的,你可以做到。你应该确保你得到的输入实际上是一个
1 2 3 4 | some_word ="This is the song that doesn't end" stride = int(raw_input("Stride distance?")) print some_word[::stride] # prints out"Ti stesn htdented" |
在查看注释之后,可以通过索引将字符串/序列中的单个字符分离出来。
1 2 3 4 | some_word ="This is the song that doesn't end" iso = int(raw_input("Isolated character?")) print some_word[iso] # prints out whatever character is in that position, 0-based. |
看起来是这样做的,根据用户输入2,试图隔离"dude"中的"u"。
1 2 3 4 5 | userGuessPosition = 2 secretWord = ('dude') slice1 = (secretWord.__len__()) - userGuessPosition - 1 print (secretWord[slice1:userGuessPosition]) |