30/09/2018, 17:38

Lỗi in thừa 1 lần giá trị biến cần in khi in unicode trong cmd, python 3.4

@thanhmssl10: Thanh trên cùng đó gọi là title bar
Mình làm theo hướng dẫn đã hiển thị được tiếng việt trong cmd. Mình có 1 đoạn code python như sau:

fizz_count = 0
buzz_count = 0
fizzbuzz_count = 0
for i in range(1, 101):
    if i % 3 == 0 and i % 5 == 0:
        print("FizzBuzz")
        fizzbuzz_count += 1
    elif i % 3 == 0:
        print("Fizz")
        fizz_count += 1
    elif i % 5 == 0:
        print("Buzz")
        buzz_count += 1
    else:
        print(i)

print("Số lần Fizz: %s" % fizz_count)
print("So lan Buzz: %s" % buzz_count)

Sau khi chcp 65001 và chạy thì kết quả như sau:

1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
17
Fizz
19
Buzz
Fizz
22
23
Fizz
Buzz
26
Fizz
28
29
FizzBuzz
31
32
Fizz
34
Buzz
Fizz
37
38
Fizz
Buzz
41
Fizz
43
44
FizzBuzz
46
47
Fizz
49
Buzz
Fizz
52
53
Fizz
Buzz
56
Fizz
58
59
FizzBuzz
61
62
Fizz
64
Buzz
Fizz
67
68
Fizz
Buzz
71
Fizz
73
74
FizzBuzz
76
77
Fizz
79
Buzz
Fizz
82
83
Fizz
Buzz
86
Fizz
88
89
FizzBuzz
91
92
Fizz
94
Buzz
Fizz
97
98
Fizz
Buzz
Số lần Fizz: 27
27
So lan Buzz: 14

Không hiểu tại sao đoạn cuối nó lại in ra 2 lần số 27?

Mình ko edit được title để thêm chữ Lỗi, @thanhmssl10 giúp mình với. Thanks!

Thành Phạm viết 19:49 ngày 30/09/2018

Lỗi này mình cũng không rõ nữa, mình ít dùng python 3, nhưng khi mình thử tăng giảm số lượng chữ có dấu trong chuỗi thì số kí tự in thừa ra hàng sau cũng thay đổi

Khả năng là lỗi của windows hoặc python rồi, mình thử đổi chcp 1258 thì in được chữ không có dấu huyền sắc hỏi ngã nặng

htl@PyMI.vn viết 19:50 ngày 30/09/2018

@thanhmssl10 sửa hộ mình tiêu đề, thêm chữ Lỗi vào đầu với.
Với cả ở dòng trên nó vẫn in ra số 27 mà. Không phải là tự xuống dòng mà là in thừa 1 lần giá trị biến cần in

Thành Phạm viết 19:48 ngày 30/09/2018

Mình có đưa câu hỏi của bạn lên StackOverflow nhưng khả năng là cmd của windows hỗ trợ utf-8 khá kém (hoặc là có thể do “bất đồng” với python )

Có một bác đưa ra giải pháp là dùng cái này : https://github.com/Drekin/win-unicode-console

stackoverflow.com
Pham Thanh

Auto newline when print unicode in console, python 3.4

python, windows, python-3.x, unicode
asked by Pham Thanh on 05:15AM - 21 Jul 15

Nếu vẫn không được mà bắt buộc phải viết tiếng việt thì bạn có thể chuyển về python 2, cái này mình làm bằng python 2, cũng viết được tiếng việt trên cmd

htl@PyMI.vn viết 19:53 ngày 30/09/2018

Thực ra thì mình không muốn đọc sâu quá về mấy cái encoding này, hoặc phải cài 1 package để mỗi lần dùng lại phải import, enable với disable (đọc qua README của win-unicode-console).

Hiện mình dùng Sublime Text 3 cài plugin Anaconda để code. Nó hỗ trợ build và có hiển thị được tiếng việt, tuy nhiên phần build này không cho nhập dữ liệu qua input. Còn dùng CMD thì lỗi như trên.

Mục đích của mình chỉ là in kết quả trong quá trình code để debug thôi. Vậy nên @thanhmssl10 hay bạn nào có cách nào hay hơn dùng CMD không?

Thành Phạm viết 19:40 ngày 30/09/2018

Chắc chỉ còn cách dùng chữ tiếng việt k dấu thôi

htl@PyMI.vn viết 19:52 ngày 30/09/2018

Làm web scraper (beautifulsoup) nó trả về tiếng việt có dấu, muốn in ra thì chịu ah

Thành Phạm viết 19:53 ngày 30/09/2018

Chuyển về không dấu được đấy

stackoverflow.com
Ray Vega

How do I convert a file's format from Unicode to ASCII using Python?

python, unicode, encoding, file
asked by Ray Vega on 05:11PM - 06 Oct 08

stackoverflow.com
themirror

Convert Unicode to ASCII without errors in Python

python, unicode, utf-8, character-encoding
asked by themirror on 05:52PM - 02 Mar 10
Bài liên quan
0