Bischoop <bisch...@vimart.net> writes:

> On 2020-12-12, Joe Pfeiffer <pfeif...@cs.nmsu.edu> wrote:
>> Bischoop <bisch...@vimart.net> writes:
>>
>>> I've function asking question and comparing it, if is not matching 'yes'
>>> it does call itself to ask question again. The problem is that when
>>> function is called second time it returns old value or with additional
>>> else statement it returns none.
>>>
>>> Code: https://bpa.st/KVGA
>>
>> It calls itself again, but what does it return in that case?
>
> I've stated it returns old value that I've input first time, anyway
> output is also inluded in a paste but since you've asked:

Sorry, my question wasn't clear.  What I meant was, "in your return
statement, what are you returning"?

You need to be returning the value from the recursive call.

> def question():
>     ask = input("Are you OK?:").lower()
>         if ask != 'yes':
>               question()
>                   return ask
>
>                   print (question())
>
>                   #output:
>                   Are you OK?:no
>                   Are you OK?:no
>                   Are you OK?:yes
>                   no
>
>                   ---------------------------------------
>                   #Another way with 'elif' statment returns none
>
>
>                   def question():
>                       ask = input("Are you OK?:").lower()
>                           if ask != 'yes':
>                                   question()
>                                       elif ask == 'yes':
>                                               return ask
>
>                                               print (question())
>
>                                               #output:
>                                               Are you OK?:no
>                                               Are you OK?:yes
>                                               None
>
>                                               #Tried also nested
>                                               functions, same results:
>
>                                               def question():
>                                                   ask = input("Are you
>                                                   OK?:").lower()
>
>                                                       def
>                                                       check_question(n):
>                                                               if ask
>                                                               !=
>                                                               'yes':
>                                                                           
> question()
>                                                                               
>     else:
>                                                                               
>                 return
>                                                                               
>                 ask
>
>                                                                               
>                     m
>                                                                               
>                     =
>                                                                               
>                     check_question(ask)
>                                                                               
>                         print
>                                                                               
>                         (m)
>                                                                               
>                         question()
>
>                                                                               
>                         #output:
>                                                                               
>                         Are
>                                                                               
>                         you
>                                                                               
>                         OK?:no
>                                                                               
>                         Are
>                                                                               
>                         you
>                                                                               
>                         OK?:yes
>                                                                               
>                         None
>
>                                                                               
>                         Process
>                                                                               
>                         finished
>                                                                               
>                         with
>                                                                               
>                         exit
>                                                                               
>                         code
>                                                                               
>                         0
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to