Đây có thể là một câu hỏi dễ trả lời, nhưng tôi không thể làm cho chương trình đơn giản này hoạt động và điều đó khiến tôi phát điên. Tôi có đoạn mã này:Tại sao hàm của tôi trả về Không?
def Dat_Function():
my_var = raw_input("Type \"a\" or \"b\": ")
if my_var != "a" and my_var != "b":
print "You didn't type \"a\" or \"b\". Try again."
print " "
Dat_Function()
else:
print my_var, "-from Dat_Function"
return my_var
def main():
print Dat_Function(), "-From main()"
main()
Bây giờ, nếu tôi nhập "a" hoặc "b", mọi thứ đều ổn. Đầu ra là:
Type "a" or "b": a
a -from Dat_Function
a -From main()
Nhưng, nếu tôi gõ cái gì khác và sau đó "a" hoặc "b", tôi có được điều này:
Type "a" or "b": purple
You didn't type "a" or "b". Try again.
Type "a" or "b": a
a -from Dat_Function
None -From main()
Tôi không biết tại sao Dat_Function()
đang trở lại None
, vì nó chỉ nên trả lại my_var
. Câu lệnh in cho thấy rằng my_var
là giá trị đúng, nhưng hàm không trả về giá trị đó vì một lý do nào đó.
Bạn cần làm 'return Dat_Function()' khi gọi nó đệ quy. –
Chỉ cần một mẹo: Cách thành ngữ của điều kiện 'my_var! =" A "và my_var! =" B "' sẽ là 'my_var không có trong '' a ',' b ')' – gonz