01/10/2018, 16:27

Chương trình Python tính can chi

Em có tạo một đoạn code để tính can chi của từng năm:

can = ['Canh', 'Tân', 'Nhâm,', 'Quý', 'Giáp', 'Ất', 'Bính', 'Đinh','Mậu','Kỷ']
chi = ['Thân', 'Dậu', 'Tuất', 'Hợi','Tí','Sửu','Dần', 'Mão', 'Thìn', 'Tị', 'Ngọ', "Mùi"]

def year(prompt):
    x = input(prompt)
    if x % 10 == i and x % 12 == j:
	    return can[i], chi[j]

year(2000)
2000
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 3, in year
TypeError: not all arguments converted during string formatting

Cho em hỏi là em sai ở đâu ạ?

HK boy viết 18:32 ngày 01/10/2018
  • Code bạn đang sử dụng cả tab và space để indent (dòng return).

def year(prompt):
x = input(prompt)
if x % 10 == i and x % 12 == j:
return can[i], chi[j]

  • prompt của bạn là cái gì? Bạn nạp 2000 vào hàm year(...) để làm gì?

Lỗi xảy ra khi hàm input(prompt) phải nạp vào 1 string, chứ không phải 1 số.

  • i, j của bạn chui từ đâu ra vậy?
phamvandung viết 18:42 ngày 01/10/2018

== là để so sánh
thớt đừng làm khó mình thế

return can[x%10], chi[x%12]

Khánh Trần viết 18:29 ngày 01/10/2018

Bạn có thể viết lại cho mình code chuẩn không ạ? Mình sửa rồi vẫn lỗi. Mình càm ơn.

P/s: Đây là bài mình tự nghĩ ra chứ không phải bài tập về nhà, nhưng nghĩ mãi chưa ra cách giải. Mình rất muốn biết cách làm để học hỏi thêm.

Van Han viết 18:32 ngày 01/10/2018
can = ['Canh', 'Tân', 'Nhâm', 'Quý', 'Giáp', 'Ất', 'Bính', 'Đinh','Mậu','Kỷ']
chi = ['Thân', 'Dậu', 'Tuất', 'Hợi','Tí','Sửu','Dần', 'Mão', 'Thìn', 'Tị', 'Ngọ', "Mùi"]

nam = int(input("Nhap vao nam: "))
vitri_can = nam % 10
vitri_chi = nam % 12
print(can[vitri_can] + " " + chi[vitri_chi])
Bài liên quan
0