01/10/2018, 10:16

Hỏi về đệ quy python cơ bản

em học đến bài đệ quy mà chưa hiểu tại sao nó không in ra n mà lại là none. Uploading…

HK boy viết 12:30 ngày 01/10/2018
  • Sao bạn hay quên không thêm category và tags thế nhỉ? Mình sửa cho bạn lần này là lần thứ 2 rồi, lần sau còn quên là mình
  • Dòng 5 thử thay bằng int(n) < 0 xem sao.
Bình Bùng viết 12:23 ngày 01/10/2018

cảm ơn a, em sẽ rút kinh nghiệm lần sau

Henry viết 12:24 ngày 01/10/2018

Để mình chạy đệ quy cái đoạn code của bạn
parameter n sẽ giận giá trị 3
Lần 1:
not isinstance(3, int): ở đây không không thỏa. Tiếp tục
3 < 0: tiếp tục không thỏa.
Do đó tơi else
Tiếp tục nhảy vào function và lần này parameter n giận nhá trị 2
Và cũng y chang kết quả như trên ta vẫn ta sẽ tiếp tục nhảy vào function với parameter n giận nhá trị 10. Sau lần 0 ta sẽ có parameter tiếp theo là -1. Dĩ nhiên nó sẽ rơi vào
n < 0: (-1 < 0:)
Do đó sẽ có dòng 'in hay nhap so nguyen duong'. Và return None. None này sẽ được variable result nhận vì result = check_isinstance(n - 1). In result thì ta được None và lại tiếp tục return result với kết quả Noneresult cứ thế tiếp tục trả về với None.
Đếm xem nãy giờ ta chạy bao nhiều lần result = check_isinstance(n - 1).
(3 - 1), (2 - 1), (1 - 1), (0 - 1) Đồng nghĩa với việc None được in 4 lần.

Bài liên quan
0