所以我试图制作一个AI,由于某种原因,我无法获得IF语句来捕获代码。
Alice.py
import games
from function import *
startup()
main()
我的问题出在main()函数中。
def main()
life = True
while life == True:
request = input('-> ')
if request.startswith('play'):
request.replace('play ', '', 1)
if request == 'guess the number':
games.guess_the_number(u_name)
elif request == 'test':
print('Test')
if request == 'quit':
print('Goodbye')
return
我似乎无法让第一个IF块以我想要的方式开放。它只返回没有输出。 我已经尝试了一切,但我似乎无法让它发挥作用。艾米的帮助会很棒。我很乐意回答任何人的问题。
答案 0 :(得分:1)
将request.replace('play ', '', 1)
更改为request = request.replace('play ', '', 1)
。您当前拥有的将生成一个删除了单词"play"
的输出字符串,但它不会存储在任何地方。 str.replace(..)
不会更改str
的值,而是只提供您为变量指定的字符串输出。在这种情况下,您可以将其分配回request
:
...
request = input('-> ')
if request.startswith('play'):
request = request.replace('play ', '', 1)
...
答案 1 :(得分:0)
环境:Python 2.7.12
这是因为当您进行替换时,主输入中的字符串会临时替换,并且更改不会保存在request
字符串中。
以下面的例子为例。
>>> req = input('-> ')
-> "play guess the number"
>>> if req.startswith('play'):
... req.replace('play ', '', 1)
...
'guess the number'
>>> req
'play guess the number'
>>> if req.startswith('play'):
... req = req.replace('play ', '', 1)
...
>>> req
'guess the number'
我想这会回答你的问题,只是你必须更新request
变量。