[Tutor] ok i need some help with a for loop
cwitts at compuscan.co.za
Thu Oct 15 16:47:07 CEST 2009
Skylar Struble wrote:
> ok so im working on a text based rpg game and am trying to get this
> code to work,
> items = ['crate', 'grave']
> lookwords = ['look', 'examine', 'investigate','open')
> input1 = raw_input('What do you want to do:')
> for word in items:
> for word2 in lookwords:
> if word and word2 in input1:
> print 'you look in the crate and find a map!'
> print 'sorry you used a word i didnt understand'
> it prints out all of the print things 2 times when i want it to print
> 1 or the other because what im trying to do is see if the input1 has
> both an item from items and lookwords in the string and if so print
> you look in the map or if it finds 1 or none to print sorry you used a
> word i didnt understand
> thanks for takeing the time to read this and gl.
> Tutor maillist - Tutor at python.org
> To unsubscribe or change subscription options:
What you could do is transform it a little to something like the following:
items = ['crate', 'grave']
lookwords = ['look', 'examine', 'investigate','open')
input1 = raw_input('What do you want to do:')
success = False
for lw in lookwords:
if lw in input1:
for iw in items:
if iw in input1:
print 'You %s and found a map.' % input1
success = True
if not success:
print 'You used a word I did not understand'
That will first check to see if any of your `lookwords` are contained in the input (if they're not there why bother continuing as they haven't chosen a valid action) and if their input does contain the action then carry on and check to see if a valid item was selected.
If a valid item was selected then the variable `success` will be made True and before the next iteration it will break out of the loop (useful for speed if you have large lists of objects / actions to get through). If it loops through everything and doesn't find any matches it will print out 'You used a word I did not understand' because the success variable is still False.
This is just a rather basic idea, but it will get the job done.
More information about the Tutor