Hi,

I found the solution :)

Special thanks to Alan G.

Solution :

def FindByName(HerosName):
    for heros in herosAll:
        if HerosName == heros.name:
            return heros
    return None

    HerosName = 'notfound'
    while FindByName(HerosName) == None:
    HerosName=input("Enter heros name (type exit for close): ")
                    if HerosName.lower() == 'exit':
                        Display_menu()
                    else:
                        ch = FindByName(HerosName)
                        if ch:
                            ch.DisplayCharacterInfos()
                            newSearch=input('New search ? (Y/N)')

                        else :
                            print ('This heros does\'nt exist')


2011/2/25 ALAN GAULD <alan.ga...@btinternet.com>

> CCing group. Please use ReplyAll in replies to the list.
>
>
> > Hi, thank your for your answer. i wrote this now :
>
>
> def HeroExist(HerosName):
>     for heros in herosAll:
>         if HerosName in heros.name:
>             herosId = heros.id
>             return herosId
>     return None
>
> HerosName=input("Enter heros name : ")
> ch = HeroExist(HerosName)
> if ch:
>     ch.DisplayCharacterInfos()
> else :
>     print ('This heros does\'nt exist')
>
> But whatever i type, he says : heros doesn't exist :/
>
> That suggets a problem with how the name is being stored.
> Can you send the code for the Character class, esp[ecially the init method.
> Plus a cut n paste of the output of a ruin of the programme so that
> we can see exactly what you are inputting and what the
> results are?
>
> BTW you don't need the \ in the last print. You are using double quotes
> around the string so you can just type the single quote directly
>
> print ( "This hero doesn't exist')
>
> Alan G.
>
> 2011/2/25 Alan Gauld <alan.ga...@btinternet.com>
>
>> "Christopher Brookes" <chris.klai...@gmail.com> wrote
>>
>>  Hi, is there a better way to do this ? (*heros are Character*)
>>>
>>
>> There are several better ways but mainly they involve
>> techniques that may be too advanced for you at present,
>> so we'll keep it simple for now :-)
>>
>>
>>  herosAll = [
>>> Character(0,"Chris","Soldat fort",type[0],15,5,8,50,1),
>>> Character(1,"Antaa","Soldat moins fort",type[0],15,5,8,50,1)]
>>>
>>> def HeroExist(HerosName):
>>>       herosId = -1
>>>       for heros in herosAll:
>>>           if HerosName in heros.name:
>>>               herosId = heros.id
>>>       if herosId != -1:
>>>           return herosId
>>>       else:
>>>           return -1
>>>
>>
>> replace from the for loop down with:
>>
>>
>>       for heros in herosAll:
>>           if HerosName in heros.name:
>>               herosId = heros.id
>>               return herosId
>>       return None   # This allows more convenient testing, see below
>>
>> Which has the advantage of being slightly faster too.
>>
>>
>>    HerosName=input("Enter heros name : ")
>>>           if Character.HeroExist(HerosName) != -1:
>>>
>>
>> HeroExist is not a method of Character ( although you could
>> make it so - one of the better solutions I alluded to above! )
>> So you don't need to prefix it with Character.
>>
>> And you can assign the return value to a variable so
>> you avoid calling it twice:
>>
>>
>>   HerosName=input("Enter heros name : ")
>>   ch = HeroExist(HerosName):
>>   if ch:   # because None is treated as False
>>       ch.DisplayCharacterInfos()
>>
>>   else :
>>       print ('This heros does\'nt exist')
>>
>> HTH,
>>
>>
>> --
>> Alan Gauld
>> Author of the Learn to Program web site
>> http://www.alan-g.me.uk/
>>
>>
>>
>> _______________________________________________
>> Tutor maillist  -  Tutor@python.org
>> To unsubscribe or change subscription options:
>> http://mail.python.org/mailman/listinfo/tutor
>>
>
>
>
> --
> Brookes Christopher.
>
>


-- 
Brookes Christopher.
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to