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…
Hỏi về đệ quy python cơ bản
- 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) < 0xem sao.
cảm ơn a, em sẽ rút kinh nghiệm lần sau
Để 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ị 1 và 0. 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ả None Và result 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.
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?