上代码
def b():
i = int(input("input int i = "))
list1 = [[1, 2], [3, 4]]
if i == 0:
b()
else:
list1 = [[3,4], [1,2]]
return list1[1][1]
if __name__ == '__main__':
b = b()
print(b)
调用现象
根据函数b():分别键入“0”、“2”。
函数结果并没有如我所想输出“2”,也没有怪异的转为“4”。
解决
先input的“0”使得函数调转二次函数后再次input“2”并不能向上返回二次input的数值,导致main函数并没有获取任何数值。
解决办法:
def b():
i = int(input("input int i = "))
list1 = [[1, 2], [3, 4]]
if i == 0:
return b() # 向上返回函数
else:
list1 = [[3,4], [1,2]]
return list1[1][1]
if __name__ == '__main__':
b = b()
print(b)