Giúp đỡ về lệnh if

arr = [x for x in input("Nhập mảng gồm các số 0 và 1 cách nhau dấu ',': ").split(",")]
i=0
so0=0
so1=0
while i < len(arr):
    if arr[i]==0:
        so0 = so0 + 1
        print(arr[i])
        print("so0=",so0)
    else:
        so1 = so1 + 1
        print(arr[i])
        print("so1",so1)
    i=i+1

Các cao nhân có thể chỉ giúp mình sao code trên không hiểu điều kiện ==0 dù mình nhập vào toàn số 0 nhưng nó vẫn tính cho so1.
Cảm ơn.

So sánh 1 kí tự với 1 số. Chuỗi với số thì đúng hơn.

4 Likes

Vì phần tử tách từ input là dạng str không phải int, ko có phần tử nào bằng 0 hay 1 mà đều là “0” hoặc “1”
Đây là do so sánh sai loại dữ liệu

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?