Хотите узнать, как поменять местами три переменные без использования временных переменных в Python?

Предположим, мы задали три переменные в Python и нас попросили поменять их местами с условием, что никакая временная переменная не должна использоваться. Каким будет ваш подход?

Обмен предполагает обмен значениями, хранящимися в переменных. Когда мы меняем местами три числа, мы можем сдвинуть их значения так, чтобы каждое число перемещалось к следующему или меняло свою позицию, при этом последнее число перемещалось на позицию первого.

Содержание

С использованием присвоения запятой

Вот полная программа для замены трех переменных без временной переменной с использованием присвоения запятой в Python.

Product1_price = 107
Product2_price= 203
Product3_price = 530

print("Original values:")
print("Product1_price =", Product1_price)
print("Product2_price =", Product2_price)
print("Product3_price =", Product3_price)

Product3_price, Product2_price, Product1_price = Product1_price, Product2_price, Product3_price

print("\nSwapped values:")
print("Product1_price =", Product1_price)
print("Product2_price =", Product2_price)
print("Product3_price =", Product3_price)

Вывод: здесь мы присвоили переменным другие переменные, разделенные запятыми, чтобы поменять местами три числа в Python.

Original values:
Product1_price = 107
Product2_price = 203
Product3_price = 530

Swapped values:
Product1_price = 530
Product2_price = 203
Product3_price = 107

На снимке экрана ниже показаны выходные данные программы Python для замены трех переменных без временной переменной.

С использованием присвоения запятой

С арифметическими операторами

Идея состоит в том, чтобы суммировать два числа и сохранить их в одной переменной Python. Другую переменную можно найти, вычитая значение из суммы в Python.

Эта программа Python использует арифметические операторы для замены трех переменных без временной переменной.

Sales_product1 = 2311
Sales_product2= 4189
Sales_product3 = 3337

print("Before swapping Sales_product1 = ",Sales_product1,", Sales_product2 = ",Sales_product2,", Sales_product3 = ",Sales_product3) 
Sales_product1= Sales_product1 + Sales_product2 + Sales_product3
Sales_product2 = Sales_product1-(Sales_product2+Sales_product3)
Sales_product3 = Sales_product1 -(Sales_product2+Sales_product3)
Sales_product1 = Sales_product1-(Sales_product2+Sales_product3)

print("After swapping Sales_product1 = ",Sales_product1,", Sales_product2 = ",Sales_product2,", Sales_product3 = ",Sales_product3) 
  • Мы взяли три продукта продаж и добавили значения, присвоенные переменным Sales_product2 и Sales_product3. Затем присвойте сумму переменных Sales_product1.
  • Теперь вычтите сумму значений, присвоенных Sales_product2 и Sales_product3, из текущего значения Sales_product1. Затем присвойте результат переменной Sales_product2 и аналогично для Sales_product3.
  • Наконец, новое значение обновляется для Sales_product1, Sales_product2 и Sales_product3.

Выход:

Before swapping Sales_product1 =  2311 , Sales_product2 =  4189 , Sales_product3 =  3337
After swapping Sales_product1 =  3337 , Sales_product2 =  2311 , Sales_product3 =  4189

Обратитесь к снимку экрана ниже после выполнения программы Python, чтобы поменять местами три переменные без временной переменной, чтобы увидеть результат.

С помощью арифметических операторов

Другой способ поменять местами три переменные без временной переменной — использовать арифметический оператор, т. е. оператор умножения и деления.

Это полный код Python для замены трех переменных без временной переменной с использованием операторов умножения и деления.

Nike = 3
Old_Navy = 2
Gap = 1

print("Before swapping : Nike = ",Nike,", Old_Navy = ",Old_Navy,", Gap = ",Gap) 
Nike= Nike * Old_Navy * Gap
Old_Navy = Nike //Old_Navy // Gap
Gap = Nike // Old_Navy // Gap
Nike = Nike // Old_Navy // Gap

print("After swapping : Nike = ",Nike,", Old_Navy = ",Old_Navy,", Gap = ",Gap)

Вывод: это аналогичный приведенному выше примеру подход, только вместо суммы мы делаем умножение, а вместо вычитания мы делаем деление.

Before swapping : Nike =  3 , Old_Navy =  2 , Gap =  1
After swapping : Nike =  1 , Old_Navy =  3 , Gap =  2

Обратитесь к снимку экрана ниже, чтобы увидеть выходные данные кода Python для замены трех переменных без временной переменной с использованием операторов умножения и деления.

С использованием операторов умножения и деления

С помощью оператора XOR

XOR — это логический оператор, который выдает на выходе 1, когда любой из операндов равен 0. XOR — это побитовый оператор, известный в Python как исключающее OR.

Позвольте мне прояснить с помощью таблицы, как логически рассчитывается XOR.

А Б А^Б
0 0 0
0 1 1
1 0 1
1 1 0

Исходный код Python для замены трех переменных без временной переменной с использованием оператора XOR.

California = [1]
Texas = [2]
Florida = [3]

print("Before swapping:") 
print("California = ",California,", Texas = ",Texas,", Florida = ",Florida) 
California[0] = California[0] ^ Texas[0] ^ Florida[0] 
Texas[0] = California[0] ^ Texas[0] ^ Florida[0] 
Florida[0] = California[0] ^ Texas[0] ^ Florida[0]  
California[0] = California[0] ^ Texas[0] ^ Florida[0] 
print("After swapping:")
print("California = ",California,", Texas = ",Texas,", Florida = ",Florida)

В программах Python для выполнения побитовой операции XOR(что означает, что операции работают на уровне отдельных битов) для обмена значениями между переменными. Затем он обновит XOR всех переменных, эффективно меняя их значения.

California[0] = California[0] ^ Texas[0] ^ Florida[0] 
Texas[0] = California[0] ^ Texas[0] ^ Florida[0] 
Florida[0] = California[0] ^ Texas[0] ^ Florida[0]  
California[0] = California[0] ^ Texas[0] ^ Florida[0]

Выход:

Before swapping:
California = [1] , Texas = [2] , Florida = [3]
After swapping:
California = [3] , Texas = [1] , Florida = [2]

Чтобы увидеть выходные данные программы Python для замены трех переменных без временной переменной с использованием оператора XOR, обратитесь к изображению ниже.

С помощью оператора XOR

С помощью функции в Python

Вот полный исходный код Python для замены трех чисел с помощью функции Python.

def swapThree_num(num_one,num_two,num_three):
   
    num_one= num_one + num_two + num_three 
    num_two = num_one -(num_two+num_three) 
    num_three = num_one -(num_two+num_three)
    num_one = num_one -(num_two+num_three)
     
    print("After swapping num_one =",num_one,",num_two =",num_two,",  num_three =", num_three)

if __name__ == '__main__':
    num_one = 18
    num_two = 25
    num_three = 13
 
    print("Before swapping num_one =",num_one,", num_two =",num_two,",  num_three =", num_three)
 
    swapThree_num(18, 25, 13)

Выход:

Before swapping num_one = 18 , num_two = 25 ,  num_three = 13
After swapping num_one = 13 ,num_two = 18 ,  num_three = 25

На изображении ниже показан вывод кода Python для замены трех чисел с помощью функции.

С помощью функции в Python

Добавить комментарий