@wywm@z[y[W
ŏIXVF2024N1230
PythonŎgpɂĐĂ܂B
(1) AXL[(ASCII)R[h
@ʐMpɁAčɂĐ肳ꂽR[hB16i007Fɕȉ̂悤Ɋ蓖ĂĂ܂B
00`1FFR[h(07[BEL]C08[BS]C09[TAB]C0A[LF]COD[CR]C1B[ESC])
[BEL]͌xA[BS]BackSpaceA[TAB]̓^uL[A[LF]͉sA[CR]͕AA[ESC]̓GXP[vEV[PXłB
20FC21F!C22F"C23F#C24F$C25F%C26F&C27F'C28F(C
29F)C2AF*C2BF+C2CF,C2DF-C2EF.C2FF/C
30F0C31F1C32F2C33F3C34F4C35F5C36F6C37F7C38F8C39F9C
3AF:C3BF;C3CFC3FF?C40F@C
41FAC42FBC43FCC44FDC45FEC46FFC47FGC48FHC49FIC
4AFJC4BFKC4CFLC4DFMC4EFNC4FFOC50FPC51FQC52FRC
53FSC54FTC55FUC56FVC57FWC58FXC59FYC5AFZC
5BF[C5CF\C5DF]C5EF^C5FF_C60F`C
61FaC62FbC63FcC64FdC65FeC66FfC67FgC68FhC69FiC
6AFjC6BFkC6CFlC6DFmC6EFnC6FFoC70FpC71FqC72FrC
73FsC74FtC75FuC76FvC77FwC78FxC79FyC7AFz
7BF{C7CF|C7DF}C7EF~C7FFDEL
(2) shift-JISR[h
@AGuAXL[vsĂAXL[Ђ𒆐SƂO[vɂāA1980Nɒꂽ܂ޕR[hB8rbgACIIR[hApJiA1`DF蓖āA16rbg̊R[h蓖Ă邽߁A16rbg̑1oCg81`9FCE0`FC̕ő2oCg00`FFƂĊɃR[h蓖ĂĂ܂B1oCg(8rbg)ŕ\镶pA2oCg(16rbg)ŕ\镶SpƌĂł܂BSpp2{̕Ƃĕ\邱ƂɂApƑSp݂ėeՂɐRƕ\ł邽߁AʂĂMS-DOS𓋍ڂp\Rɍ̗pǍ{EBhEYɍ̗pĂ܂BȂǕ̑ɑΉłȂAR[h̑2oCg5Cł銿('\'C'\'C'\'C'\'C'\'Ȃ)AUNIXñVXeŕĂ܂AȂǂ̖_܂B
(3) UTF-8R[h
@LAChnAArAnAXEF[fꕶȂǂւ̑ΉeՂɂ邽߂ɁAR[h̊glA24rbggĕ\Ƃl܂B1990N납璆Ƃ鍑ۉcʼnǂi߂Ă܂BŎg4ȏ̊ɃR[h蓖Ă邱ƂړIƂ߁Ashift-JISƂ͂قڌ݊͂ȂAUTF-8shift-JIS̊ԂŃR[hϊȒPɍsƂł܂Bshift-JIS̕{ɂƂĕ֗Ȃ̂łAp\REɕyɂAshift-JISAUTF-8p\R̐EWƂ闬ɂ܂BPythonł́AUTF-8WłB
(4) IuWFNgw
@FORTARANƂCƂ葱^ł́AɕKvȃf[^̍\́AooɍlAʂɈTu[`̍쐬ɂA̓lăvO~OsĂ܂B܂AvO͈ÃV[PXɉ(Rs[^sɉ)삳Ă܂B]āAL[͑҂A邢́A}EX҂̏Ԃł́AL[}EX̏ԂĎ[v̏Ԃێ悤ɂȂĂ܂B̒[ڑĕ̃vOɓꍇɂ́Aob`ƌāAIɃ^C}[Ŋ荞݂ēɓĂvOւAƌsĂ܂Ał́ÃvǑIȕsƂ͌܂B
@ŁACxgEhuƂvO@l܂BL[͑҂Ŗ[vɂȂ̂ł͂ȂAp\Rҋ@ĂŁAL[͊݁A}EX슄݂Ƃ납vOJnAƂ@łBL[͂ȂꂽƂɁA͓e͂镔A炩̃f[^sɌďvbZ[W𑗂AIɁAʂ̉ʕ\sɕ\vbZ[W𑗂Aɉʐsɕ\bZ[W𑗂AƂɂĈÃf[^s܂B
@A葱ɂV[PXŃvO~Oŝł͑Ή̂ŁAL[͕A͓e͕Af[^Aʂ̕\Aʐ䕔Ä̏ꂼJvZāA
L[͓́éf[^ʂ̕\ʐ
Ƃ悤ȊɂłȂAƂƂŁAf[^ƃf[^̏܂Ƃ߂āA̒PʂăvO~OsAƂzoĂ܂B
@IuWFNgwł́A̒PʂNXƌ܂BNX́Af[^Ƃ̃f[^vO(\bhƌ܂)𗼕Ă܂B
@܂ANXlƁA悤ȏŝɃf[^\ɈقȂAƂƂN̂ŁAIuWFNgwɂ́ApAƂTO܂BႦAzƕɂ́AԖڂ̗vfAԖڂ̕ƂƂ낪ގĂ܂BŁAzA̋ʓIȐi𒊏oāARNVƂۊTOA擪牽Ԗڂ̗vfoAɕtAƂ@\ʉvOōs悤ɂ܂BłA̔zƕł́AԖڂ̗vfAzł͎lŁAł͕AƂ悤ȈႢ܂BŁA̔zRNVENXTuNXARNVENXTuNXƂ悤ɂāARNVƂNX̋@\f[^̎TuNXg悤ɂ܂B̍lpƌ܂BPythonł́A匳collectionNXpăTuNXreal_arrayƂ́A
class real_array(collection)
Ƃ悤ɂČpW܂BāA悤ȃvOƂႢɂăooƂAƂʂȂ܂B
@܂A̔zAƂłۓITOȂ̂ŁA̓IɁAk̐g̔zƂƂɂ́A̔zƂNXCX^XƂ̂܂BNXnew\bhăCX^XAƂꂪ̂łApythonł́ANXreal_arraỹCX^XƂA
height = real_array(data1)
Ƃ`ŃCX^Xheight܂BPythoñNXɂ__init__(self, data1)ƂCX^X郁\bhpӂĂāÂƂIɂ̃\bhĂ܂B
(5) O
@Pythonł́AW[AϐANXAA\bhƂ̂AɊǗāAϐ̍NȂ悤ɂĂ܂B
@NX1̒ŁAnameƂϐgƂ܂BʂNX2̒nameƂϐgĂA͋N܂BNX1nameNX1̒ł̂ݗLŁANX2nameNX2̒ł̂ݗLŁA҂͕ʂ̂̂ƂĊǗĂ܂B̂ƂAnameƂϐ̗L͈͂XR[vƌ܂B@NX1namẽXR[v́@NX1łA@NX2namẽXR[v́@NX2łB
@Pythonł́AW[ANXAA\bhłꂼꖼOԂȌՓ˂NȂ悤ɊǗĂ܂B
# global
xwidth = 800
yheight = 1360
mes1 = "Hello! Everybody."
user = ["Bob", "Tom", "Julie", "Ann"]
class glclass:
def __init__(self):
self.name = []
self.count = 0
def reg(self, s1):
self.name.append(s1)
self.count += 1
return self.count
def disp(self):
print("o[EXgF", self.name)
def glfunc(x1, y1):
global xwidth, yheight
xwidth = x1
yheight = y1
print("xwidth", xwidth, "ɁAyheight", yheight, "ɕύX܂B")
Ƃtest3.pyƂPythont@Cpӂ܂BxwidthCyheightCmes1Cuser̓O[öXR[vƂϐłBregCdispglclass̊łBglfuncɂAxwidthCyheightoĂ܂ÁAO[öxwidthCyheightƂ͊WȂAglfuncXR[vƂϐłBŁAĂяo(test3.pyƂ͕ʃt@C)ŁA
import test3 as x
mes1 = "local"
print("mes1F", mes1, "x.mes1F", x.mes1)
xwidth = 300
print("xwidthF", xwidth, "x.xwidthF", x.xwidth, "x.yheightF", x.yheight)
try:
print("yheightF", yheight)
except NameError:
print("NameErrorIyheight͒`Ă܂B")
try:
glfunc(123, 456)
except NameError:
print("NameErrorIglfunc͒`Ă܂B")
x.glfunc(123, 456)
print("x.xwidthF", x.xwidth, "x.yheightF", x.yheight)
try:
print("userF", user)
except:
print("NameErrorIuser͒`Ă܂B")
print("x.userF", x.user)
x.user.append("Mary")
print("Marylj܂Bx.userF", x.user)
gl1 = x.glclass()
print(gl1.reg("apple"), "Ԗڂ̓o^")
print(gl1.reg("orange"), "Ԗڂ̓o^")
gl1.disp()
ƂƁA܂Aimport test3 as xŁAtest3.pyxƂOŎgp\ɂȂ܂Btest3.py̒mes1CxwidtĥłAĂяoŒPɁAmes1Cxwidthɏłmes1xwidthĂяõ[JȕϐłāAtest3mes1Cxwidthɂ͉e^܂Btest3.pymes1CxwidthɃANZX߂ɂ́A"x."tāAx.mes1Cx.xwidthƂKv܂B܂Atest3.pyyheightɃANZXŁAĂяoŒPɁAyheightƂƁAĂяoɂyheight݂͑Ȃ̂ŁANameErrorO܂Byheight悤ƂāAĂяotest3.pẙglfunc()ĂяoƂāAPglfunc(123, 456)ƂƁA[J̖OԂɂglfunc݂Ȃ̂ŁANameErrorO܂BOƃvO~܂Ă܂̂ŁALł͗OĎ~܂Ȃ悤ɂĂ܂Btest3.pyglfunc()Ăяo߂ɂ́A
x.glfunc(123, 456)
ƂKv܂BŁAtest3.pyxwidthyheight邱Ƃł܂BXglŁAtest3.pyuserƂXgɃANZX邽߂ɂ́A
x.user.append("Mary")
̂悤ɂ܂Btest3.pỹNXglclass()̃CX^Xgl1ꍇA
gl1 = x.glclass()
Ƃ܂BłACX^Xgl1Ă܂Atest3.py̒ɂglclass̃\bhreg()Cdisp()gꍇ́Atest3.pyӎɁA
gl1.reg("apple")
gl1.disp()
ƂāAglclass邱ƂȂAglclass̃\bhgƂł܂BȏsƁAʂɁA
mes1F local x.mes1F Hello! Everybody.
xwidthF 300 x.xwidthF 800 x.yheightF 1360
NameErrorIyheight͒`Ă܂B
NameErrorIglfunc͒`Ă܂B
xwidth 123 ɁAyheight 456 ɕύX܂B
x.xwidthF 123 x.yheightF 456
NameErrorIuser͒`Ă܂B
x.userF ['Bob', 'Tom', 'Julie', 'Ann']
Marylj܂Bx.userF ['Bob', 'Tom', 'Julie', 'Ann', 'Mary']
1 Ԗڂ̓o^
2 Ԗڂ̓o^
o[EXgF ['apple', 'orange']
ƕ\܂B
@Pythonɂ́AO[oEXR[vׂglobals()C[JEXR[vׂlocals()pӂĂ܂B
@Pythonł͌iȖOԂ̊ǗĂ邪䂦ɁAϐANXAAǂ̃W[Aǂ̊Aǂ̃NXɑĂ̂𒀈ꖾKv̂ŁAӂĂB
(6) ~[^uAC~[^u
@~[^u͕ύX\ȃIuWFNgŃXgłAC~[^u͕ύXs\ȃIuWFNgŁAu[^(bool)A(str)A(int)A(float)A^vłƌ܂Aۂ̓͏XقȂ܂B
id()gĒׂƁAȉ̂悤ɁAu[^AAł́Aϐ̓eύXƁAidω܂BXgł͗vf̒ljsĂAid͕ω܂BXg̗vfύXƁAvfid͕ω܂BXg̗vf́AAAłB
܂A~[^úAύXsĂidωȂIuWFNgłAC~[^úAύXsidωIuWFNgAƌƂł܂B
b1 = True
print("b1idF", hex(id(b1)))
b1 = not(b1)
print("b1idF", hex(id(b1)))
j1 = 1
print("j1idF", hex(id(j1)))
j1 = j1 + 2
print("j1idF", hex(id(j1)))
s1 = "test"
print("s1idF", hex(id(s1)))
s1 = s1 + "123"
print("s1idF", hex(id(s1)))
t1 = ('a', 'b', 'c')
print("t1idF", hex(id(t1)))
t1 = ('d', 'e')
print("t1idF", hex(id(t1)))
e1 = []
print("e1idF", hex(id(e1)))
e1.append("test1")
print("e1idF", hex(id(e1)), ", e1[0]idF", hex(id(e1[0])))
e1.append("test2")
print("e1idF", hex(id(e1)), ", e1[0]idF", hex(id(e1[0])), "e1[1]idF", hex(id(e1[1])))
e1[0] = "test123"
e1[1] = "a"
print("e1idF", hex(id(e1)), ", e1[0]idF", hex(id(e1[0])), "e1[1]idF", hex(id(e1[1])))
ƂƁAʂɁA
b1idF 0x7ff9f66ea5c0
b1idF 0x7ff9f66ea5e0
j1idF 0x7ff9f67ac9b8
j1idF 0x7ff9f67ac9f8
s1idF 0x162969fbe10
s1idF 0x162993decd0
t1idF 0x1629938d6c0
t1idF 0x1629937f2c0
e1idF 0x16299466b80
e1idF 0x16299466b80 , e1[0]idF 0x16299381740
e1idF 0x16299466b80 , e1[0]idF 0x16299381740 e1[1]idF 0x16299381770
e1idF 0x16299466b80 , e1[0]idF 0x162993817a0 e1[1]idF 0x7ff9f67b4ce0
ƕ\Aid̕ωmFł܂B
(7) Ce[^ACeu
@Ce[^́A__next__\bhĂAnext()gāAvf1Ɏ擾łIuWFNgł(ƂAnext()́A̗vf̒1IŎoԂ̐擪ɒuAƂ܂)BS̗vfoĂ܂ƗO܂BCe[^itCeułAit[1]̂悤ɓYėvfɃANZX悤ƂƃG[ɂȂ܂BCe[^ł͗vfԍt1ɕł킯ł͂ȂA܂next()gĎ̗vfo邾(A\ł͔z\ɂȂĂ킯ł͂ȂAchain\Ă)łBgeneratorIuWFNg͓yieldgĂăCe[^łB
@CeúAfor ... in...ŌJԂƂł锽\IuWFNgłAJԂ̒ŃCe[^ɕϊĂ܂BCeúA__iter__\bhĂAiter()ŃCe[^ł܂(Åchain\Ă)BCeu̓Ce[^ł͂܂Brange()̕ԂrangeIuWFNg̓CeułCe[^ł͂Ȃ(A\ł́A1ɕłĂchain\ĂȂ)Anext()͓Kpł܂BrangeIuWFNg̓Xgł܂Benumerate()́ACeuƂāACe[^(A1ɕ̗vfɁAԍchain\Ă)ԂłBAXgA^vAAmapIuWFNgAfileIuWFNg̓CeułB
yLz@LłB̊F܂̂x肽A낵肢܂B
yLz@L͂܂łłB