return statement is not working properly in for loop

Question:

def chek(name):
    for i in range(3):
        print(name)
        print(i)
        if i == 1:
            chek(name="name2")
        elif name == 'name2':
            print("changed name: ",name)
            return name

s = chek("name1")

print("final name:",s)

In this code my expected output is :

name1
0
name1
1
name2
0
changed name: name2
final name: name2

Actual output is :

name1
0
name1
1
name2
0
changed name:  name2
name1
2
final name:  None

Can anyone help me to understand,
is anything wrong in my code or it’s is behavior

Asked By: sauravmalik

||

Answers:

Try with updating this part:


if i == 1:
    return chek(name="name2")

this would return the second check() calling value;

Answered By: Rafik Farhad