Trong bài viết này, chúng tôi kiểm tra xem một chuỗi đã cho có các ký tự chỉ là 1 hoặc 0 hay không. Chúng tôi gọi các chuỗi như vậy là chuỗi nhị phân. Nếu nó có bất kỳ chữ số nào khác như 2 hoặc 3, v.v. , chúng tôi phân loại nó là một chuỗi không nhị phân
với bộ
Toán tử set trong python chỉ lưu trữ các phần tử duy nhất. Vì vậy, chúng tôi lấy một chuỗi và áp dụng hàm thiết lập cho nó. Sau đó, chúng tôi tạo một tập hợp khác chỉ có 0 và 1 là các phần tử của nó. Nếu cả hai bộ này bằng nhau thì chuỗi chắc chắn là nhị phân. Ngoài ra, chuỗi có thể chỉ có 1 hoặc chỉ 0. Vì vậy, chúng tôi tạo một điều kiện hoặc cũng sẽ so sánh kết quả của toán tử set chỉ với 0 hoặc chỉ với 1
Thí dụ
Bản thử trực tiếp
stringA = '0110101010111' b = {'0','1'} t = set[stringA] if b == t or t == {'0'} or t == {'1'}: print["StringA is a binary string."] else: print["StringA is not a binary string."] stringB = '0120101010111' u = set[stringB] if b == u or u == {'0'} or u == {'1'}: print["StringB is a binary string."] else: print["StringB is not a binary string."]
đầu ra
Chạy đoạn mã trên cho chúng ta kết quả sau -
StringA is a binary string. StringB is not a binary string.
Với phép lặp đơn giản
Đầu tiên chúng ta có thể khai báo một chuỗi có giá trị là 01 hoặc 10. Sau đó so sánh các ký tự của chuỗi này với các ký tự của chuỗi đã cho. Nếu
Thí dụ. Khi bạn chuyển đổi một chuỗi thành nhị phân, nó sẽ dẫn đến một danh sách bao gồm các giá trị nhị phân đại diện cho các ký tự gốc của chuỗi đã cho hoặc nó đại diện cho toàn bộ giá trị nhị phân đại diện cho toàn bộ chuỗi.
Input: given_string = "xyz" Expected output: ['0b1111000', '0b1111001', '0b1111010'] or 1111000 1111001 1111010
Hãy đi sâu vào nhiều cách tiếp cận sẽ giúp chúng ta có được đầu ra cần thiết. Chúng tôi sẽ đi sâu vào từng chức năng được sử dụng để giải quyết câu hỏi quan trọng về nhiệm vụ. Do đó, không chậm trễ hơn nữa, hãy để các trò chơi bắt đầu
Hướng dẫn qua video
Làm cách nào để chuyển đổi một chuỗi thành nhị phân trong Python?
Xem video này trên YouTube
Đọc liên quan. Chuyển đổi byte thành chuỗi
Phương pháp 1. Sử dụng bytearray + bin
Cách tiếp cận
- Chuyển đổi chuỗi đã cho thành đối tượng bytearray bằng cách gọi
word = "xyz" # convert string to bytearray byte_arr = bytearray[word, 'utf-8'] res = [] for byte in byte_arr: binary_rep = bin[byte] # convert to binary representation res.append[binary_rep] # add to list print[res]
3. Đối tượng bytearray đại diện cho các ký tự chuỗi dưới dạng byte - Sử dụng vòng lặp for để lặp qua từng byte và sử dụng phương thức
word = "xyz" # convert string to bytearray byte_arr = bytearray[word, 'utf-8'] res = [] for byte in byte_arr: binary_rep = bin[byte] # convert to binary representation res.append[binary_rep] # add to list print[res]
4 trên từng byte để chuyển đổi nó thành biểu diễn nhị phân của nó - Nối các biểu diễn nhị phân kết quả trong một danh sách khác
mã số
word = "xyz" # convert string to bytearray byte_arr = bytearray[word, 'utf-8'] res = [] for byte in byte_arr: binary_rep = bin[byte] # convert to binary representation res.append[binary_rep] # add to list print[res]
đầu ra
['0b1111000', '0b1111001', '0b1111010']
🔋Xóa Tiền tố “0b”
Phương pháp trên dẫn đến việc tạo ra các giá trị nhị phân với tiền tố “0b“, cho biết rằng đó là một số được biểu thị trong hệ nhị phân chứ không phải hệ thập phân. Vì bạn đã biết rằng đầu ra là một số nhị phân, do đó, bạn có thể loại bỏ tiền tố bằng cách cắt số nhị phân và bắt đầu với chỉ số 2 trên chuỗi nhị phân
Ngoài ra, bạn có thể nối tất cả các chuỗi nhị phân lại với nhau bằng phương pháp
word = "xyz" # convert string to bytearray byte_arr = bytearray[word, 'utf-8'] res = [] for byte in byte_arr: binary_rep = bin[byte] # convert to binary representation res.append[binary_rep] # add to list print[res]5 để có biểu diễn nhị phân của toàn bộ chuỗi cùng một lúc
Mã số
________số 8đầu ra
1111000 1111001 1111010
💡Thông báo độc giả
Phương thức
word = "xyz" # convert string to bytearray byte_arr = bytearray[word, 'utf-8'] res = [] for byte in byte_arr: binary_rep = bin[byte] # convert to binary representation res.append[binary_rep] # add to list print[res]6 tích hợp của Python nhận một lần lặp, chẳng hạn như danh sách các số nguyên từ 0 đến 256, chuyển đổi chúng thành các byte trong khoảng từ
word = "xyz" # convert string to bytearray byte_arr = bytearray[word, 'utf-8'] res = [] for byte in byte_arr: binary_rep = bin[byte] # convert to binary representation res.append[binary_rep] # add to list print[res]7 đến
word = "xyz" # convert string to bytearray byte_arr = bytearray[word, 'utf-8'] res = [] for byte in byte_arr: binary_rep = bin[byte] # convert to binary representation res.append[binary_rep] # add to list print[res]8 và trả về một mảng byte mới dưới dạng lớp
word = "xyz" # convert string to bytearray byte_arr = bytearray[word, 'utf-8'] res = [] for byte in byte_arr: binary_rep = bin[byte] # convert to binary representation res.append[binary_rep] # add to list print[res]9
mảng phụ Python[]. Làm cách nào để chuyển đổi danh sách số nguyên thành mảng byte?
Xem video này trên YouTube
Hàm
['0b1111000', '0b1111001', '0b1111010']
0 tích hợp của Python nhận một đối số số nguyên và trả về một chuỗi nhị phân có tiền tố ['0b1111000', '0b1111001', '0b1111010']
1. Nếu bạn gọi ['0b1111000', '0b1111001', '0b1111010']
2 trên một số không phải là số nguyên ['0b1111000', '0b1111001', '0b1111010']
3, thì nó phải xác định phương thức ['0b1111000', '0b1111001', '0b1111010']
4 trả về một số nguyên được liên kết với ['0b1111000', '0b1111001', '0b1111010']
3. Nếu không, nó sẽ ném một ['0b1111000', '0b1111001', '0b1111010']
6Python bin[] - Hướng dẫn ngắn gọn về chức năng bin[] tích hợp sẵn của Python
Xem video này trên YouTube
đề nghị đọc. Mã nhị phân in Python không có '0b'
Phương pháp 2. Sử dụng map[]+bin[]+bytearray[]
Cách tiếp cận. Giải pháp sau đây là một lớp lót. Hãy chia nhỏ và cố gắng hiểu từng phân đoạn của một lớp lót sẽ được sử dụng
- Sử dụng hàm
7 để truyền đối tượng['0b1111000', '0b1111001', '0b1111010']
8 cho hàm['0b1111000', '0b1111001', '0b1111010']
word = "xyz" # convert string to bytearray byte_arr = bytearray[word, 'utf-8'] res = [] for byte in byte_arr: binary_rep = bin[byte] # convert to binary representation res.append[binary_rep] # add to list print[res]
4.word = "xyz" # convert string to bytearray byte_arr = bytearray[word, 'utf-8'] res = [] for byte in byte_arr: binary_rep = bin[byte] # convert to binary representation res.append[binary_rep] # add to list print[res]
3 chuyển đổi chuỗi thành đối tượng byte - Khi mỗi byte từ đối tượng byte được chuyển đến hàm bin, nó sẽ chuyển đổi chúng thành các giá trị nhị phân tương đương
- Chuyển đổi đối tượng được phương thức
7 trả về thành danh sách bằng cách sử dụng hàm tạo['0b1111000', '0b1111001', '0b1111010']
word = "xyz" # convert string to bytearray byte_arr = bytearray[word, 'utf-8'] res = [] for byte in byte_arr: binary_rep = bin[byte] # convert to binary representation res.append[binary_rep[2:]] # remove prefix "0b" and add to list print[' '.join[res]] # join all the binaries of res list
2 - Để tạo một chuỗi nhị phân duy nhất đại diện cho toàn bộ chuỗi, hãy sử dụng cách hiểu danh sách sao cho
- Biểu thức là x[2. ] đại diện cho chuỗi nhị phân bắt đầu từ chỉ số 2 để tránh tiền tố nhị phân “0b“
- Biến bối cảnh, tôi. e. , x đại diện cho từng mục/giá trị nhị phân trong danh sách mà chúng tôi đã tạo từ đối tượng bản đồ
- Cuối cùng, sử dụng phương pháp
word = "xyz" # convert string to bytearray byte_arr = bytearray[word, 'utf-8'] res = [] for byte in byte_arr: binary_rep = bin[byte] # convert to binary representation res.append[binary_rep[2:]] # remove prefix "0b" and add to list print[' '.join[res]] # join all the binaries of res list
3 để có được biểu diễn nhị phân trên danh sách trên để hiểu toàn bộ chuỗi cùng một lúc
Mã số
Input: given_string = "xyz" Expected output: ['0b1111000', '0b1111001', '0b1111010'] or 1111000 1111001 11110108
đầu ra
1111000 1111001 1111010
💡Thông báo độc giả
Hàm
word = "xyz" # convert string to bytearray byte_arr = bytearray[word, 'utf-8'] res = [] for byte in byte_arr: binary_rep = bin[byte] # convert to binary representation res.append[binary_rep[2:]] # remove prefix "0b" and add to list print[' '.join[res]] # join all the binaries of res list4 biến đổi một hoặc nhiều lần lặp thành một lần lặp mới bằng cách áp dụng "hàm biến đổi" cho các phần tử thứ i của mỗi lần lặp. Các đối số là đối tượng hàm biến đổi và một hoặc nhiều lần lặp. Nếu bạn chuyển n mục lặp làm đối số, thì hàm biến đổi phải là hàm n-ary lấy n đối số đầu vào. Giá trị trả về là một đối tượng bản đồ có thể lặp lại của các phần tử được biến đổi và có thể được tổng hợp
Làm chủ chức năng bản đồ Python [+Video]
Xem video này trên YouTube
Phương pháp 3. Sử dụng tham gia + định dạng + bytearray
Cách tiếp cận
- Sử dụng hàm
word = "xyz" # convert string to bytearray byte_arr = bytearray[word, 'utf-8'] res = [] for byte in byte_arr: binary_rep = bin[byte] # convert to binary representation res.append[binary_rep[2:]] # remove prefix "0b" and add to list print[' '.join[res]] # join all the binaries of res list
5 để chuyển đổi chuỗi đã cho thành đối tượng byte sao cho đối tượng byte đại diện cho từng ký tự của chuỗi dưới dạng byte - Sau đó gọi phương thức
word = "xyz" # convert string to bytearray byte_arr = bytearray[word, 'utf-8'] res = [] for byte in byte_arr: binary_rep = bin[byte] # convert to binary representation res.append[binary_rep[2:]] # remove prefix "0b" and add to list print[' '.join[res]] # join all the binaries of res list
6 để chuyển đổi đối tượng byte thành biểu diễn nhị phân của nó và sau đó nối từng ký tự đã chuyển đổi bằng phương thứcword = "xyz" # convert string to bytearray byte_arr = bytearray[word, 'utf-8'] res = [] for byte in byte_arr: binary_rep = bin[byte] # convert to binary representation res.append[binary_rep] # add to list print[res]
5 để tạo thành một chuỗi
Mã số
word = "xyz" # convert string to bytearray byte_arr = bytearray[word, 'utf-8'] res = [] for byte in byte_arr: binary_rep = bin[byte] # convert to binary representation res.append[binary_rep] # add to list print[res]4
đầu ra
1111000 1111001 1111010
💡Thông báo độc giả
Hàm
word = "xyz" # convert string to bytearray byte_arr = bytearray[word, 'utf-8'] res = [] for byte in byte_arr: binary_rep = bin[byte] # convert to binary representation res.append[binary_rep[2:]] # remove prefix "0b" and add to list print[' '.join[res]] # join all the binaries of res list8 tích hợp sẵn của Python chuyển đổi đầu vào của một định dạng thành đầu ra của một định dạng khác do bạn xác định. Cụ thể, nó áp dụng công cụ xác định định dạng
word = "xyz" # convert string to bytearray byte_arr = bytearray[word, 'utf-8'] res = [] for byte in byte_arr: binary_rep = bin[byte] # convert to binary representation res.append[binary_rep[2:]] # remove prefix "0b" and add to list print[' '.join[res]] # join all the binaries of res list9 cho đối số
1111000 1111001 1111010
0 và trả về một biểu diễn có định dạng của 1111000 1111001 1111010
0. Ví dụ: 1111000 1111001 1111010
2 trả về biểu diễn chuỗi 1111000 1111001 1111010
3Hàm định dạng Python[]. Hướng dẫn không có BS bằng ví dụ
Xem video này trên YouTube
1111000 1111001 1111010
4 nối các phần tử trong một 1111000 1111001 1111010
5. Kết quả là một chuỗi trong đó mỗi phần tử trong iterable được "dán lại với nhau" bằng cách sử dụng chuỗi mà nó được gọi là dấu phân cáchPhương thức chuỗi Python [Hướng dẫn cơ bản]
Xem video này trên YouTube
Phương pháp 4. Sử dụng tham gia[]+định dạng[]+ord[]
Cách tiếp cận. Ý tưởng ở đây khá giống với cách tiếp cận được giải thích ở trên. Sự khác biệt duy nhất, trong trường hợp này, là thay vì bytearray, hàm ord được sử dụng để chuyển đổi các ký tự của chuỗi đã cho thành biểu diễn Unicode của chúng
Mã số
word = "xyz" # convert string to bytearray byte_arr = bytearray[word, 'utf-8'] res = [] for byte in byte_arr: binary_rep = bin[byte] # convert to binary representation res.append[binary_rep] # add to list print[res]4
đầu ra
1111000 1111001 1111010
💡Thông báo độc giả
Hàm
1111000 1111001 1111010
6 của Python lấy một ký tự [=chuỗi có độ dài một] làm đầu vào và trả về số Unicode của ký tự này. Ví dụ: 1111000 1111001 1111010
7 trả về số Unicode 1111000 1111001 1111010
8. Hàm nghịch đảo của 1111000 1111001 1111010
6 là hàm Input: given_string = "xyz" Expected output: ['0b1111000', '0b1111001', '0b1111010'] or 1111000 1111001 111101080, vì vậy
Input: given_string = "xyz" Expected output: ['0b1111000', '0b1111001', '0b1111010'] or 1111000 1111001 111101081 trả về ký tự gốc
Input: given_string = "xyz" Expected output: ['0b1111000', '0b1111001', '0b1111010'] or 1111000 1111001 111101082
Hàm ord[] trong Python
Xem video này trên YouTube
Phương pháp 5. sử dụng hexlify
Cách tiếp cận
- Gọi hàm
Input: given_string = "xyz" Expected output: ['0b1111000', '0b1111001', '0b1111010'] or 1111000 1111001 1111010
83 để chuyển đổi chuỗi đã cho thành đối tượng byte - Sử dụng
Input: given_string = "xyz" Expected output: ['0b1111000', '0b1111001', '0b1111010'] or 1111000 1111001 1111010
84 để trả về biểu diễn thập lục phân của dữ liệu nhị phân, sau đó chuyển đổi nó thành một đối tượng số nguyên bằng cách chỉ định 16 làm cơ số - Cuối cùng, chuyển đổi nó thành dạng biểu diễn nhị phân bằng hàm
word = "xyz" # convert string to bytearray byte_arr = bytearray[word, 'utf-8'] res = [] for byte in byte_arr: binary_rep = bin[byte] # convert to binary representation res.append[binary_rep] # add to list print[res]
4
Mã số
word = "xyz" # convert string to bytearray byte_arr = bytearray[word, 'utf-8'] res = [] for byte in byte_arr: binary_rep = bin[byte] # convert to binary representation res.append[binary_rep] # add to list print[res]1
đầu ra
word = "xyz" # convert string to bytearray byte_arr = bytearray[word, 'utf-8'] res = [] for byte in byte_arr: binary_rep = bin[byte] # convert to binary representation res.append[binary_rep] # add to list print[res]2
Sự kết luận
Phù. Đó thực sự là một hành trình toàn diện và chúng tôi đã học được tới năm cách khác nhau để chinh phục vấn đề đã cho. Xin vui lòng dùng thử chúng và sử dụng cái phù hợp với bạn
Đăng ký và theo dõi các hướng dẫn thú vị hơn. học tập vui vẻ. 🙂
🌍 Hướng dẫn đề xuất. Python Chuyển đổi chuỗi Hex thành nhị phân
Shubham Sayon
Tôi là một người tạo nội dung và Blogger Python chuyên nghiệp. Tôi đã xuất bản nhiều bài báo và tạo các khóa học trong một khoảng thời gian. Hiện tại tôi đang làm việc với tư cách là một freelancer toàn thời gian và tôi có kinh nghiệm trong các lĩnh vực như Python, AWS, DevOps và Networking