Python縺ォ繝昴う繝ウ繧ソ繝シ縺ッ縺ェ縺���� ==================================== C/C++縺ョ蟄ヲ鄙偵�髮」髢「縺ョ縺イ縺ィ縺、縺後�繧、繝ウ繧ソ繝シ縺ョ謇ア縺�□縺ィ險繧上l縺ヲ縺�∪縺吶� C/C++縺ョ繝昴う繝ウ繧ソ繝シ縺ッ鄙堤�縺吶l縺ー髱槫クク縺ォ蠑キ蜉帙↑豁ヲ蝎ィ縺ィ縺ェ逅�∪縺吶ゅ◎縺ョ荳譁ケ縺ァ 菴ソ縺�婿繧定ェ、繧後�縲√す繧ケ繝�Β繧堤�エ螢翫☆繧九%縺ィ縺ォ繧ゅ↑繧翫°縺ュ縺ェ縺�鴨繧呈戟縺、 縲≫晄怙蠕後�豁ヲ蝎ィ"縺ィ繧りィ縺医k縺ァ縺励g縺�� 縺昴≧諤昴▲縺ヲ謾ケ繧√※Python繧定ヲ九k縺ィ縲}ython縺ョ繝��繧ソ蝙九�荳ュ縺ォ縺ッ 繝昴う繝ウ繧ソ繝シ蝙九�譛峨j縺セ縺帙s縺励√�繧、繝ウ繧ソ繝シ繧呈桃菴懊☆繧九◆繧√�繧ェ繝壹Ξ繝シ繧ソ繝シ繧�未謨ー繧ょュ伜惠縺励∪縺帙s縲� 蜷後§繝励Ο繧ー繝ゥ繝�險隱槭↑縺ョ縺ォ�溘→諤昴o繧後∪縺帙s縺具シ� 螳溘�縲 ̄ython縺ァ縺ッ(縺昴@縺ヲJava縺ァ繧�)縲∝、画焚縺ョ諢丞袖縺靴/C++縺ィ縺ッ逡ー縺ェ縺」縺ヲ縺�∪縺吶� 縺ゅ∴縺ヲ荵ア證エ縺ェ險縺�婿繧偵☆繧後�縲�"Python(Java)縺ァ縺ッ蜈ィ縺ヲ縺ョ螟画焚縺ッ繝昴う繝ウ繧ソ繝シ窶昴↑縺ョ縺ァ縺吶� C/C++縺ァ縺ッ縲∝、画焚縺ッ谺。縺ョ讒倥↓螳」險縺輔l縺セ縺吶� .. code-block:: c long l; double f; long *pl=&l; double *pf = &f; 縺薙�萓九〒縺ッ縲� l, f 縺悟、画焚蜷阪〒縲� pl, pf 縺後◎繧後i縺ョ螟画焚縺ク縺ョ繝昴う繝ウ繧ソ繧剃ソ晄戟縺吶k繝昴う繝ウ繧ソ螟画焚縺ィ縺�≧縺薙→縺ォ縺ェ繧翫∪縺吶� 螟画焚縺ョ蛟、繧貞、画峩縺吶k縺ィ縲∝、画焚蜷阪↓蜑イ繧雁ス薙※繧峨l縺溘Γ繝「繝ェ鬆伜沺縺ォ繧ケ繝医い縺輔l縺溷、縺悟、画峩縺輔l縺ヲ縺�k縺薙→縺悟�縺九j縺セ縺吶� .. code-block:: c l=1; printf("l=%ld, pl=0x%p, *pl=%ld \n", l, pl, *pl); l+=1; printf("l=%ld, pl=0x%p, *pl=%ld \n", l, pl, *pl); .. code-block:: % clang pointer.c % ./a.out l=1, pl=0x0x304edb708, *pl=1 l=2, pl=0x0x304edb708, *pl=2 荳譁ケpython縺ァ蜷梧ァ倥�繝励Ο繧ー繝ゥ繝�繧貞ョ溯。後@縺ヲ隕九k縺ィ縲� .. jupyter-kernel:: python3 :id: python3_kernel .. jupyter-execute:: :linenos: a=1 b=2 print("a= {} id(1)={} id(a)={}".format(a , id(1), id(a))) print("b= {} id(2)={} id(b)={}".format(b , id(2), id(b))) a += 1 print("a= {} id(1)={} id(a)={}".format(a , id(1), id(a))) print("a= {} id(2)={} id(a)={}".format(a , id(2), id(a))) print("b= {} id(2)={} id(b)={}".format(b , id(2), id(b))) 縺ィ縺�≧繧医≧縺ォ縲∝、画焚 a縺ョ蛟、繧貞、画峩縺吶k縺ィ縲√◎縺ョid (繝。繝「繝ェ繧「繝峨Ξ繧ケ縺ォ逶ク蠖難シ峨′螟峨o縺」縺ヲ縺励∪縺�%縺ィ縺悟�縺九j縺セ縺吶� 縺セ縺溘◎縺ョ蛟、縺ッ縲∝、画焚a縺ョ蛟、縺ィ縺ェ縺」縺ヲ縺�k繧ェ繝悶ず繧ァ繧ッ繝医�id縺ィ蜷後§縺ィ縺ェ縺」縺ヲ縺�∪縺吶ゅ%縺ョ繧医≧縺ォ縲}ython縺ァ縺ッ螟画焚縺ッ縲� 繝。繝「繝ェ鬆伜沺縺ォ縺、縺代i繧後◆蜷榊燕縺ァ縺ッ縺ェ縺上√◎縺ョ蛟、縺ョ繧ェ繝悶ず繧ァ繧ッ繝医r遉コ縺吶�繧、繝ウ繧ソ縺ョ讒倥↑迚ゥ縺ィ諤昴▲縺滓婿縺碁俣驕輔>縺後≠繧翫∪縺帙s縲� .. jupyter-kernel:: SageMath :id: sagemath_kernel .. jupyter-execute:: :linenos: var('x y') y=(1+x)**20 show(y.expand())