切片/跨度由变量?

背景

我试图在python中编写一个基本的字母游戏。 在游戏中,计算机主持人从可能的单词列表中选出一个单词。 每个玩家(计算机AI和人)都会显示一系列空白,每个字母都有一个空格。 每个玩家然后猜测一个字母和一个位置,并被告知以下之一:

  • 那封信属于那个位置(最好的结果)
  • 那封信是在这个词里,但不是在那个位置上
  • 这封信不在任何剩余的空白处
  • 当这个词已经完全显示出来时,玩家正确猜出最多的字母会赢得一分。 电脑版主挑选另一个字,然后重新开始。 第一个到五点的玩家赢得比赛。 在基础游戏中,两个玩家都分享相同的一组空白,所以玩家可以从彼此的工作中受益。

    我的问题

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

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

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

    如果这是一个愚蠢的问题,我是一个Python初学者,所以非常抱歉 - 我最初的研究没有发现任何东西。


    简而言之,是的,你可以做到这一点。 你需要确保你实际得到的输入是一个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.
    

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

    userGuessPosition = 2
    
    secretWord = ('dude')
    slice1 = (secretWord.__len__()) - userGuessPosition - 1
    print (secretWord[slice1:userGuessPosition])
    
    链接地址: http://www.djcxy.com/p/26755.html

    上一篇: slice/stride by variable?

    下一篇: Python lists/arrays: disable negative indexing wrap