试图创建AI - 一些IF语句没有捕获

时间:2018-06-05 03:02:17

标签: python

所以我试图制作一个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块以我想要的方式开放。它只返回没有输出。 我已经尝试了一切,但我似乎无法让它发挥作用。艾米的帮助会很棒。我很乐意回答任何人的问题。

2 个答案:

答案 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变量。