Thắc mắc python 2

Tại sao khi xóa đi dòng lệnh if :3 thì nó không chạy raw_input() thế ạ?
Mọi người giúp e với e không hiểu dòng if đó

def bai1(t,n,k):

 for i in range(k):
	n=n+n*t/100
	print "Tong so tien nhan duoc la:"
	print n



if __name__=="__main__":

 t=float(raw_input("Nhap lai suat: "))

 n=float(raw_input("Nhap so tien gui ban dau: "))

 k=int(raw_input("Nhap so thang gui: "))

 bai1(t,n,k)

Bạn xóa lệnh if nhưng có bỏ tab các dòng phía dưới chưa?

1 Like

wow mình thử bỏ dòng lệnh đó và bỏ tab thì được
à cho mình hỏi thêm là dòng if đó có nghĩa gì thế?

Code của bạn có vấn đề về indentation. Các code block của bạn vẫn cùng indent level nên code vẫn chạy. Tuy nhiên theo PEP8 thì mỗi indent level nên là 4 spaces, chứ không phải lúc thì 1 space, lúc thì 1 tab (=8 space) như code của bạn.
Về câu hỏi tại sao bỏ if đi không chạy, thì do đoạn code ở dưới được indent vào trong def, nên nó có chạy nhưng chỉ là định nghĩa hàm, khi gọi hàm thì nó sẽ chạy các lệnh đó.
Cách tiếp cận của bạn hơi thiếu bài bản, mình khuyên bạn nên tìm tài liệu chuẩn, hoặc tìm một lớp học để có cách tiếp cận bài bản hơn, sẽ hiểu bản chất và tự mình giải đáp được các câu hỏi cơ bản như thế này.
Cheers! :slight_smile:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?