Ik ben begonnen met het volgende script, maar om de 1 of andere reden matcht-ie niet:
Als ik gebruiker[i].match(s) print dan geeft hij None weer, terwijl ik toch echt "Ik vind dit" type (zonder " uiteraard). Heeft iemand een idee wat ik fout doe?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
| import random
import re
doorgaan = True
standaardantwoorden = [
["Wat is \(.*\)",
["Ik weet niet wat %1 is.",
"Weet je niet eens wat %1 is?!",
"Wil je dat echt weten?"]],
["Ik vind \(.*\)",
["Zozo.",
"Vind jij dat?",
"Ik niet."]]
]
gebruiker = map(lambda x:re.compile(x[0]),standaardantwoorden)
antwoord = map(lambda x:x[1],standaardantwoorden)
def reageren(s,gebruiker,antwoorden):
bot_antwoord = ''
for i in range(0,len(gebruiker)):
print 'blaat'
print s
if gebruiker[i].match(s) >= 0:
willekeurig = random.randint(0,len(standaardantwoorden[i]))
bot_antwoord = standaardantwoorden[i][willekeurig]
print bot_antwoord
while doorgaan == True:
s = raw_input('Reactie:')
reageren(s,gebruiker,antwoord)
if s == 'stop':
doorgaan = False |
Als ik gebruiker[i].match(s) print dan geeft hij None weer, terwijl ik toch echt "Ik vind dit" type (zonder " uiteraard). Heeft iemand een idee wat ik fout doe?