01/10/2018, 12:25

Lỗi TypeError: unsupported operand type(s) for %: 'NoneType' and 'str' khi dùng % với print

Mình đang học python bằng youtube daynhauhoc bài 5.
Mình có đánh theo video dạy nhưng khi chạy lại cho lỗi dưới đây.
Ai biết nguyên nhân và cách khắc phục có thể chỉ mình với.

my_name = 'Zed A. Shaw'
my_age = 35 # not a lie
my_height = 74 # inches
my_weight = 180 # lbs
my_eyes = 'Blue'
my_teeth = 'White'
my_hair = 'Brown'

print ("Let's talk about %s.") % my_name
print ("He's %d inches tall.") % my_height
print ("He's %d pounds heavy.") % my_weight
print ("Actually that's not too heavy.")
print ("He's got %s eyes and %s hair." )% (my_eyes, my_hair)
print ("His teeth are usually %s depending on the coffee." )% my_teeth

Let's talk about %s.
Traceback (most recent call last):
  File "/Users/hoangthanhtung/daynhauhoc/programing/python/ex5.py", line 9, in <module>
    print ("Let's talk about %s.") % my_name
TypeError: unsupported operand type(s) for %: 'NoneType' and 'str'
>>>

Mình dùng mac và sử dụng Python3.

HK boy viết 14:40 ngày 01/10/2018

Video sử dụng Py2, còn bạn đang dùng Py3 nên bị lỗi.

Đưa % <cái gì đó> vào trong ngoặc. Demo:

>>> print("fun %d" % 3)
fun 3
phamvandung viết 14:28 ngày 01/10/2018

HoangTung viết 14:35 ngày 01/10/2018

Cám ơn HK boy nhiều nhé .mình sửa được lỗi rùi.

HoangTung viết 14:33 ngày 01/10/2018

Cám ơn Pham Van Dung nhiều nhé.nếu có hai biến trở lên thì phải dùng cách trên nhỉ.Mình không giỏi tiếng anh cho lắm.

phamvandung viết 14:27 ngày 01/10/2018

Đúng rồi, nhưng nếu dùng python3.6 trở lên thì còn có cách cool hơn nữa

name = "Dun"
sex = "male"
print(f"My name is {name}, {sex}")

output

My name is Dun, male
HoangTung viết 14:33 ngày 01/10/2018

cám ơn Pham Van Dung nhiều nhé.

Bài liên quan
0