Chuyển đoạn code từ python 2 sang python 3

Em xem video dạy python bài 10 của anh Đạt có 1 đoạn code:

while True:
	for i in ["/", "-", "|", "\\", "|"]:
	print "%s\r" %i,

E định viết lại trên python 3 mà không được. mọi người giúp em với ạ

while True:
    for i in ["/", "-", "|", "\\", "|"]:
        print("%s\r" %(i))
3 Likes

Code của bạn sai cú pháp. Có chạy trên Python 2 cũng lỗi. Sửa như bạn trên là OK. 1 lưu ý cho bạn là Python sử dụng indent (khoảng cách từ lề trái đến kí tự đầu tiên của dòng) cho các code block do đó khi copy lại cần chú ý

4 Likes

em cám ơn ạ. code chạy không bị lỗi rồi nhưng bị xuống dòng. có cách nào để không bị xuống dòng không ạ?

e thấy python 2 thì thêm ký tự “,” vào cuối dòng là được mà python 3 làm vậy không được

Kí tự '\r' là xuống dòng đấy, không muốn xuống dòng thì bỏ nó đi, thay bằng '\t' hoặc khoảng trắng.

4 Likes

e thử vẫn thấy xuống dòng ầm ầm ợ

Bạn search google với từ khoá print without new line python 3 là ra.

4 Likes
    x = 0
    while True:
        x = x +1
        for i in ["/", "-", "|", "\\", "|"]:
            print("%s" %(i), end =" ")

        if x > 10:
            break

Bỏ cái \r và thêm cái end = " " vào câu lênh print, thì sẽ in thẳng hàng.

/ - | \ | / - | \ | / - | \ | / - | \ | / - | \ | / - | \ | / - | \ | / - | \ | / - | \ | / - | \ | / - | \ | [Finished in 0.5s]

2 Likes

Try it :

while True:
for i in ["/", "-", "|", "\\", "|"]:
...         print(i, end="\r")
1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?