【问题标题】:slice/stride by variable?按变量切片/跨步?
【发布时间】:2013-04-05 02:09:50
【问题描述】:

背景

我正在尝试用 python 编写一个基本的字母游戏。在游戏中,计算机版主从可能的单词列表中挑选一个单词。每个玩家(计算机 AI 和人类)都会看到一系列空白,每个字母对应一个单词。然后每个玩家猜测一个字母和一个位置,并被告知以下内容之一:

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

当单词完全显示出来时,猜对最多字母的玩家将赢得一分。电脑版主又选了一个词,重新开始。第一个获得五分的玩家赢得比赛。在基本游戏中,两个玩家共享他们正在填写的同一组空白,因此玩家可以从彼此的工作中受益。

我的问题

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

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

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

我是 python 的初学者,如果这是一个愚蠢的问题,我深表歉意——我最初的研究没有发现任何结果。

【问题讨论】:

    标签: python slice stride


    【解决方案1】:

    简单地说,是的,你可以做到这一点。您需要确保您获得的输入实际上是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"
    

    查看 cmets 后,您可以通过对字符串/序列中的单个字符进行索引来隔离它。

    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.
    

    【讨论】:

    • 嗯,说“int”是不可调用的
    • 再一次,如果这是基本的,请原谅我——但我试图从 some_word 中分离出单个字符。用户的输入告诉我字符是哪个数字(例如,“狗”中的 o 将是 2)。但我不知道如何自己得到那个o。我尝试的所有步骤都打印了多个字母...
    • 我想对 Python 中序列中的步骤的作用存在误解。这个可选参数只获取序列中的每个 nth 元素,这意味着它仍然获取整个序列。也许您正在寻找另一种方式来表达您正在完成的工作,而“跨步”这个词太重了,无法传达它。
    • 感谢您的建议 --- 关于如何最好地隔离给定单词中的字符,您是否有任何其他建议,仅提供与字符位置对应的数值?跨度>
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2011-08-13
      • 2018-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-11
      • 2015-02-18
      • 2022-01-11
      相关资源
      最近更新 更多