#python #string #for-loop #binary
#python #строка #for-цикл #двоичный
Вопрос:
def flip_b(binary):
b_string = ""
for i in range(len(binary)):
if binary[i] == '1':
b_string = '0' # If I set the = to == the function doesn't work
else:
b_string = '1'
return b_string
В чем разница между = и == здесь?
Комментарии:
1. == не является присваиванием.
Ответ №1:
==
для сравнения
>>> 5 == 4
False
>>> 4 == 4
True
=
является сокращением для x = x y
, поэтому
>>> x = 5
5
>>> x = x 5
10
>>> x = 5
5
>>> x = 5
10
Комментарии:
1. Я думаю, было бы более полезно, если бы вы показали конкатенацию, а не сложение, чтобы соответствовать тому, что есть в коде в вопросе.
Ответ №2:
Оператор = — это просто сложная сумма между двумя значениями или, в данном случае, конкатенация строк.
b_string = «0» — это то же самое, что и b_string = b_string «0» .
Оператор == — это совершенно другая и не связанная вещь: он используется для проверки равенства двух значений. Она всегда выдает значение True или False .
В вашем случае ваш код начинается с создания пустой строки, затем выполняется итерация по списку с помощью цикла for, для каждого элемента в списке проверяется, является ли он «1» или «0» (отсюда оператор ==) и добавляет к пустой строке противоположный символ (отсюда =) . После итерации по всему списку вы получаете целую строку с перевернутыми 1 и 0.