Hướng dẫn how do you solve xor in python? - làm thế nào để bạn giải quyết xor trong python?

Một số triển khai được đề xuất ở đây sẽ gây ra đánh giá lặp đi lặp lại các toán hạng trong một số trường hợp, điều này có thể dẫn đến các tác dụng phụ ngoài ý muốn và do đó phải tránh.

Điều đó nói rằng, một triển khai xor trả về True hoặc False khá đơn giản; Một trong đó trả về một trong các toán hạng, nếu có thể, là khó khăn hơn nhiều, bởi vì không có sự đồng thuận nào tồn tại trong số đó là một toán hạng nên được chọn, đặc biệt là khi có nhiều hơn hai toán hạng. Chẳng hạn, xor(None, -1, [], True) có nên trả lại ____10,

a=  5  #0101
b = 3  #0011

result	= (a ^ b) #0110

print(result)

# Output
# 6 (0110)
1 hoặc False? Tôi cá rằng mỗi câu trả lời xuất hiện cho một số người là câu trả lời trực quan nhất.

Đối với kết quả đúng hoặc giả, có tới năm lựa chọn có thể: trả về toán hạng đầu tiên (nếu nó khớp với kết quả cuối cùng, boolean khác), hãy trả về trận đấu đầu tiên (nếu ít nhất một lần tồn tại, boolean khác), Trả lại toán hạng cuối cùng (nếu ... khác ...), hãy trả lại trận đấu cuối cùng (nếu ... khác ...) hoặc luôn trả lại Boolean. Nhìn chung, đó là 5 ** 2 = 25 hương vị của xor.

def xor(*operands, falsechoice = -2, truechoice = -2):
  """A single-evaluation, multi-operand, full-choice xor implementation
  falsechoice, truechoice: 0 = always bool, +/-1 = first/last operand, +/-2 = first/last match"""
  if not operands:
    raise TypeError('at least one operand expected')
  choices = [falsechoice, truechoice]
  matches = {}
  result = False
  first = True
  value = choice = None
  # avoid using index or slice since operands may be an infinite iterator
  for operand in operands:
    # evaluate each operand once only so as to avoid unintended side effects
    value = bool(operand)
    # the actual xor operation
    result ^= value
    # choice for the current operand, which may or may not match end result
    choice = choices[value]
    # if choice is last match;
    # or last operand and the current operand, in case it is last, matches result;
    # or first operand and the current operand is indeed first;
    # or first match and there hasn't been a match so far
    if choice < -1 or (choice == -1 and value == result) or (choice == 1 and first) or (choice > 1 and value not in matches):
      # store the current operand
      matches[value] = operand
    # next operand will no longer be first
    first = False
  # if choice for result is last operand, but they mismatch
  if (choices[result] == -1) and (result != value):
    return result
  else:
    # return the stored matching operand, if existing, else result as bool
    return matches.get(result, result)

testcases = [
  (-1, None, True, {None: None}, [], 'a'),
  (None, -1, {None: None}, 'a', []),
  (None, -1, True, {None: None}, 'a', []),
  (-1, None, {None: None}, [], 'a')]
choices = {-2: 'last match', -1: 'last operand', 0: 'always bool', 1: 'first operand', 2: 'first match'}
for c in testcases:
  print(c)
  for f in sorted(choices.keys()):
    for t in sorted(choices.keys()):
      x = xor(*c, falsechoice = f, truechoice = t)
      print('f: %d (%s)\tt: %d (%s)\tx: %s' % (f, choices[f], t, choices[t], x))
  print()

Toán tử XOR trong Python còn được gọi là & nbsp; độc quyền hoặc trực tuyến hoặc nbsp; & nbsp; so sánh hai số nhị phân bit theo chiều Booleans.“exclusive or”  that compares two binary numbers bitwise if two bits are identical XOR outputs as 0 and when two bits are different then XOR outputs as 1. XOR can even be used on booleans.

XOR chủ yếu được sử dụng trong các tình huống mà chúng tôi không muốn hai điều kiện là đúng. Trong hướng dẫn này, chúng tôi sẽ xem xét nhiều cách để thực hiện các hoạt động XOR (độc quyền hoặc) trong Python với các ví dụ.

Toán tử bitwise

Các toán tử bitwise trong Python còn được gọi là toán tử nhị phân và chủ yếu được sử dụng để thực hiện các tính toán bitwise trên số nguyên, các số nguyên trước tiên được chuyển đổi thành nhị phân và sau đó các hoạt động được thực hiện từng chút một.the integers are first converted into binary, and later the operations are performed bit by bit.

Toán tử Python XOR

Hãy cùng xem xét bằng cách sử dụng XOR & NBSP; ________ 14 & nbsp; toán tử giữa 2 số nguyên. Khi chúng tôi thực hiện XOR giữa 2 số nguyên, toán tử sẽ trả về số nguyên làm đầu ra.

a=  5  #0101
b = 3  #0011

result	= (a ^ b) #0110

print(result)

# Output
# 6 (0110)
Operator between 2 integers. When we perform XOR between 2 integers, the operator returns the integer as output.

a=  5  #0101
b = 3  #0011

result	= (a ^ b) #0110

print(result)

# Output
# 6 (0110)

Hãy cùng xem sử dụng XOR trên hai booleans. Trong trường hợp Boolean, đúng được coi là 1 và sai được coi là 0. Do đó, đầu ra được trả về sẽ đúng hoặc sai.

print(True ^ True)
print(True ^ False)
print(False ^ True)
print(False ^ False)

Đầu ra

False
True
True
False

XOR bằng mô -đun toán tử

Chúng tôi thậm chí có thể đạt được XOR bằng cách sử dụng

a=  5  #0101
b = 3  #0011

result	= (a ^ b) #0110

print(result)

# Output
# 6 (0110)
5Module tích hợp trong Python. Mô -đun toán tử có hàm
a=  5  #0101
b = 3  #0011

result	= (a ^ b) #0110

print(result)

# Output
# 6 (0110)
6, có thể thực hiện hoạt động XOR trên các số nguyên và booleans, như được hiển thị bên dưới.
a=  5  #0101
b = 3  #0011

result	= (a ^ b) #0110

print(result)

# Output
# 6 (0110)
5
module in Python. The operator module has a
a=  5  #0101
b = 3  #0011

result	= (a ^ b) #0110

print(result)

# Output
# 6 (0110)
6
function, which can perform an XOR operation on integers and booleans, as shown below.

import operator

print(operator.xor(5,3))
print(operator.xor(True,True))
print(operator.xor(True,False))
print(operator.xor(False,True))
print(operator.xor(False,False))

Đầu ra

6
False
True
True
False

XOR bằng mô -đun toán tử
  • Chúng tôi thậm chí có thể đạt được XOR bằng cách sử dụng
    a=  5  #0101
    b = 3  #0011
    
    result	= (a ^ b) #0110
    
    print(result)
    
    # Output
    # 6 (0110)
    5Module tích hợp trong Python. Mô -đun toán tử có hàm
    a=  5  #0101
    b = 3  #0011
    
    result	= (a ^ b) #0110
    
    print(result)
    
    # Output
    # 6 (0110)
    6, có thể thực hiện hoạt động XOR trên các số nguyên và booleans, như được hiển thị bên dưới.
  • thẻ liên quan
  • operator,
  • Nhà điều hành bitwise,

độc quyền hoặc,

XOR

Đăng ký để được nhận tin tức từ chúng tôi

Làm thế nào để Python tính toán XOR?

Trong Python, các toán tử bitwise được sử dụng để thực hiện các tính toán bitwise trên các số nguyên. Các số nguyên trước tiên được chuyển đổi thành nhị phân và sau đó các hoạt động được thực hiện theo từng bit, do đó tên các toán tử bitwise. ... Các nhà khai thác bitwise ..

Làm thế nào để bạn tính toán xor?

Để tìm XOR của hai số, hãy làm theo các hướng dẫn sau:..
Chuyển đổi các số thành biểu diễn nhị phân ..
So sánh các bit tương ứng của hai số ..
Nếu chỉ có một trong các bit đầu vào là đúng (1), đầu ra là đúng (1).Nếu không, đầu ra là sai (0) ..

Làm thế nào để bạn xor một chuỗi trong python?

Làm thế nào để lấy Bitwise XOR của hai chuỗi trong Python..
S1 = "ABC".
S2 = "A23".
a_list = [chr (ord (a) ^ ord (b)) cho a, b trong zip (s1, s2)].
print(a_list).
S3 = "".Tham gia (a_list).
print(s3).

XOR được tính toán thủ công như thế nào?

XOR hoạt động bằng cách đặt các bit được đặt trong một trong các số đã cho (0 ^ 1 = 1, 1 ^ 0 = 1) và cuối cùng lấy ra các bit phổ biến có trong cả hai số (1 ^ 1 = 0).Bây giờ, kết quả x ^ y sẽ là (x | y) - (x & y) = (01010001 - 01000000) = 00010001.setting the bits which are set in either of one of the given numbers (0 ^ 1 = 1, 1 ^ 0 = 1) and finally taking out the common bits present in both numbers (1 ^ 1 = 0) . Now, the result x ^ y would be (x | y) - (x & y) = (01010001 - 01000000) = 00010001 .