首页 文章

切片/步幅变量?

提问于
浏览
0

background

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

  • 那封信属于那个位置(最好的结果)

  • 那个字母在单词中,但不在那个位置

  • 该字母不在任何剩余的空格中

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

my question

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

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

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

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

2 回答

  • 2

    简单地说,是的,你可以做到这一点 . 你'd want to ensure that the input you'实际上是 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.
    
  • 0

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

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

相关问题