Không hiểu nguyên nhân code sai chỗ nào?

Anh chị ơi, em viết dòng code này nhưng chạy kết quả ko ra kết quả gì

bill = 100
def tax(bill):
	bill *=1.08
	print "With tax: %f" %bill
	return bill


def tip(bill):
	bill *=1.15
	print "With tip: %f" %bill
	return bill

Nhưng khi em viết lại zậy thì có kết quả như mong muốn
def tax(bill):
	bill *=1.08
	print "With tax: %f" %bill
	return bill


def tip(bill):
	bill *=1.15
	print "With tip: %f" %bill
	return bill

meal_cost=100
tax=tax(meal_cost)
tip=tip(tax)

Anh chị giải thích giúp em ah. Em tự học nên mong anh chị giúp em.

khi bạn dùng"def tax(bill)" thì để chạy bạn phải gọi hàm tax với tham số truyền vào, tham số này sẽ đc gán cho biến cục bộ(local variable) bill, còn nếu bạn muốn sử dụng biến toàn cục(global variable) thì bạn làm như sau:

def tax():
    global bill
    bill *=1.08
    return bill
1 Like

Da, em cam on, chac em chua hoc den bien global nen chua hiểu lắm ah, em sẽ nghiên cứu thêm ah.

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