切片/步幅变量?

时间:2013-04-05 02:09:51

标签: python slice stride

背景

我正在尝试在python中编写一个基本的字母游戏。在游戏中,计算机主持人从可能的单词列表中选择一个单词。每个玩家(计算机AI和人类)都会显示一系列空白,每个字母对应一个字母。然后每个玩家猜出一个字母和一个位置,然后告诉其中一个:

  • 那封信属于那个位置(最好的结果)
  • 那封信是在单词中,但不在那个位置
  • 该字母不在任何剩余的空白处

当单词被完全显示时,正确猜出大多数字母的玩家将赢得一个点。计算机主持人选择另一个单词并重新开始。第一个获得5分的玩家赢得了比赛。在基本游戏中,两个玩家共享他们正在填充的同一组空白,因此玩家可以从彼此的工作中受益。

我的问题

有没有办法使用包含整数的变量来指定切片/步幅的程度?

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

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

我是python的初学者,如果这是一个愚蠢的问题,请道歉 - 我的初步研究没有发现任何事情。

2 个答案:

答案 0 :(得分:2)

简单地说,是的,你可以做到这一点。您需要确保实际的输入int,并从那里开始使用。

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"

查看注释后,您可以通过索引将字符串/序列中的单个字符隔离开来。

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.

答案 1 :(得分:0)

看起来这样做了,试图根据用户输入2来“隔离”“dude”中的“u”。

userGuessPosition = 2

secretWord = ('dude')
slice1 = (secretWord.__len__()) - userGuessPosition - 1
print (secretWord[slice1:userGuessPosition])