01/10/2018, 12:00
Lỗi TypeError: unsupported operand type(s) for /: 'str' and 'int' trong python
đây là code cua mình:
# create a formula calculate No. of cake may have
# can 3 vars : trung, bot, cream
# 2 trung + 2 bot = 1 kep
# 5 kep + 1 cream = 1 cake
def bk(egg, fl):
if egg < fl:
return egg
else:
return fl
def cake(bk, cr):
if bk/5 > cr:
return cr
else:
return int(bk/5)
e = raw_input("nhap so trung")
f = raw_input("nhap so bot")
cr = raw_input("nhap so cream")
k = bk(e, f)
print k
c = cake(k/2, cr)
print c
# print "so bank kep la %d" % int(k/2)
# print "so cake la: %d" %c
khi mình chạy báo lỗi là:
Traceback (most recent call last):
File ".ex4.py", line 25, in <module>
c = cake(k/2, cr)
TypeError: unsupported operand type(s) for /: 'str' and 'int'
các bạn cho mình hỏi làm sao xửa lỗi này?
khi mình cho e,f,c = 1 số cụ thể ở trong code thì ko bị lỗi
Cám ơn các bạn
Bài liên quan
Kết quả trả về của
raw_input
bao giờ cũng là 1 string, bạn phải chuyển nó sang kiểu số (int, float,…) nếu muốn tính toán với nó.PS C:\Users\helen\Desktop\hocpython> python .\ex4.py
e=10
f=20
c=30
10
Traceback (most recent call last):
File “.\ex4.py”, line 25, in
c = cake(k/2, cr)
TypeError: unsupported operand type(s) for /: ‘str’ and ‘int’
đây chính xác là những gì mình in ra dc, khi chưa cho int(raw_input)
vậy tại sao trứng và bột nó có thể biết dc đó là số , còn cream thì ko?
btw: mình đã thử cho in và vẫn bị lỗi như vậy
Không phải là nó không biết.
Kiểu string cũng so sánh được. Khi bạn chưa ép kiểu
int()
cho e và f, lúc này e và f vẫn là string. Bạn gọi hàmbk(e, f)
để so sánh e và f, và việc so sánh vẫn xảy ra.Lỗi ở dòng nào?
Rất cám ơn bạn, mình đã thử lại và thành công