Обмен значениями в python3 - PullRequest
       3

Обмен значениями в python3

0 голосов
/ 03 февраля 2019

Я прохожу курс по изучению Python, и они дали мне упражнение, чтобы узнать, каков будет результат, вот он

a = 10
b = 20
c = a
b = c
a = b
print(a,b,c)

Теперь я думал, что значение будет 0, 20,0. Я подумал о 0, потому что C не имеет значения и будет назначен памятью, но если бы он действительно это сделал, он был бы другим, чем 0. Я запутался с C, но результат был 10,10,10.Я запустил программу и, ища ответ, попал к другому вопросу, где человек использовал функцию dis и, используя эту функцию, чтобы увидеть, что делает программа, дал мне

4           0 LOAD_CONST               1 (10)
            2 STORE_FAST               0 (a)

5           4 LOAD_CONST               2 (20)
            6 STORE_FAST               1 (b)

6           8 LOAD_FAST                0 (a)
           10 STORE_FAST               2 (c)

7          12 LOAD_FAST                2 (c)
           14 STORE_FAST               1 (b)

8          16 LOAD_FAST                1 (b)
           18 STORE_FAST               0 (a)

10         20 LOAD_FAST                0 (a)
           22 LOAD_FAST                1 (b)
           24 LOAD_FAST                2 (c)
           26 BUILD_TUPLE              3
           28 RETURN_VALUE

Теперь, в вопросе, который я видел, ответ содержал слово ROT_TWO , но в этом есть только LOAD , STORE и RETURN.В другом вопросе было только две переменные, но я думал, что они все равно повернут их и выведут это слово.Я до сих пор не знаю, что делает программа и почему значение результата было 10,10,10.

Вот код, который я написал с использованием функции dis .

from dis import dis

def value(a,b,c):
    a = 10
    b = 20
    c = a
    b = c
    a = b

    return a,b,c

dis(value)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...