关于python:按变量slice/stride?

slice/stride by variable?

背景

我正在尝试用python编写一个基本的字母游戏。在游戏中,计算机主持人从可能的单词列表中选择一个单词。每个播放器(计算机人工智能和人类)显示一系列空白,每个字对应一个空白。然后,每个玩家猜测一个字母和一个位置,并被告知以下内容之一:

  • 那封信属于那个位置(最好的结果)
  • 那封信在字面上,但不是在那个位置上
  • 那封信不在剩下的空白处

当这个词被完全揭示时,猜对大多数字母的玩家会赢得一分。计算机主持人选择另一个词并重新开始。先得五分的选手获胜。在基本游戏中,两个玩家共享相同的空白区域,因此他们从彼此的工作中受益。

我的问题

是否有任何方法可以使用包含整数的变量来指定切片/步幅的程度?

因为这个秘密词是随机的,我无法知道它将包含多少个字符。我想先根据用户选择的位置值的准确性检查用户的输入(猜测),然后再检查字母是否出现在机密字中(不仅仅只出现在他们指定的位置)。我想我可以使用len()来确定秘密单词中的位置数量,然后使用播放器的数字输入来切片/跨步到播放器指定单词中的正确字符位置。

如何将用户提供的整数放入slice/stead命令中?它似乎不接受将输入分配给变量,然后将变量放在切片/步幅中。

我是一个初学Python的人,所以如果这是一个愚蠢的问题,我道歉——我最初的研究没有发现任何问题。


简单地说,是的,你可以做到。你应该确保你得到的输入实际上是一个int,并从那里开始使用它。

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])