2013-04-05 84 views
0

背景slice/stride by variable?

我試圖在python中編寫一個基本的字母遊戲。在遊戲中,計算機管理員從可能的單詞列表中選出一個單詞。每個玩家(計算機AI和人)都會顯示一系列空白,每個字母都有一個空格。每個玩家則猜測一個字母和位置,並告知下列之一:

  • 這封信在該位置屬於(最好的結果)
  • 這封信是在這個詞,而不是在那個位置
  • 這封信是不是在任何剩餘的空白

的。當這個詞已經充分顯現,猜測最字母玩家正確贏點。電腦版主挑選另一個字,然後重新開始。第一個到五點的玩家贏得比賽。在基礎遊戲中,兩個玩家都分享相同的一組空白,所以玩家可以從彼此的工作中受益。

我的問題

有沒有辦法使用含有整數指定片/步幅程度的變量?

因爲祕密詞是隨機的,我無法知道它將包含多少個字符。我希望根據用戶選擇的地點值的準確性,首先檢查用戶的輸入(猜測),然後檢查該字母是否出現在祕密詞中(而不僅僅是他們指定的地方)。我想我可以使用len()來確定祕密詞中的位置數,然後使用播放器的數字輸入切片/跨越到播放器指定的單詞中正確的字符位置。

如何獲取用戶提供的整數到slice/stride命令中?它似乎不接受將輸入分配給變量,然後將該變量放置在切片/步幅內。

如果這是一個愚蠢的問題,我是一個Python初學者,所以我很抱歉 - 我最初的研究沒有發現任何東西。

回答

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. 
+0

用戶輸入嗯,說:「INT」是不可調用 – jamyn 2013-04-05 02:39:25

+0

再次,請原諒我,如果這是基本的 - 但我試圖從some_word孤立一個單一的字符。用戶的輸入已經告訴我該字符是哪個數字(例如,o將是「狗」中的2)。但我不知道如何自己解決這個問題。我嘗試過的所有步驟都打印了多個字母...... – jamyn 2013-04-05 02:40:00

+0

我想,那麼對序列中的步驟在Python中的作用存在誤解。此可選參數僅佔用序列中的每個* n *個元素,這意味着它仍然獲得整個序列。也許你正在尋找另外一種方式來表達你正在完成的事情,而「邁步」已經超過了一個術語來傳達它。 – Makoto 2013-04-05 02:43:27

0

看起來是這樣做的,試圖孤立的「u」「花花公子」的基礎上,2

userGuessPosition = 2 

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

感謝您的幫助@makoto – jamyn 2013-04-05 03:02:00