Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
新人教育とPython / PyCon mini Hiroshima 2015
Search
7pairs
November 22, 2015
Programming
1
180
新人教育とPython / PyCon mini Hiroshima 2015
7pairs
November 22, 2015
Tweet
Share
More Decks by 7pairs
See All by 7pairs
Privacy Sandbox on Android / DroidKaigi 2024
7pairs
1
580
テキストマイニングによるプロ野球の順位予想 / Baseball Play Study 2020 Winter
7pairs
0
490
2020年の振り返りとBaseball Play Studyの振り返り / Jisyupy 29
7pairs
0
320
Because Python is there. / Jisyupy 27
7pairs
0
440
野球好きのための快適なプレゼンテーション環境の構築 / Baseball Play Study 2019 Winter
7pairs
0
1k
ちゃんと実装してちゃんとテストしよう / PyCon mini Hiroshima 2019
7pairs
2
890
Pie Meets Py / PyCon JP 2019
7pairs
3
5.3k
テキストマイニングによる新外国人選手の分析 / Baseball Play Study 2019 Spring
7pairs
0
2.7k
テキストマイニングによる応援歌の分析 / Baseball Play Study 2018 Winter
7pairs
0
2.2k
Other Decks in Programming
See All in Programming
モバイルアプリにおける自動テストの導入戦略
ostk0069
0
110
ブラウザ単体でmp4書き出すまで - muddy-web - 2024-12
yue4u
3
470
useSyncExternalStoreを使いまくる
ssssota
6
1k
暇に任せてProxmoxコンソール 作ってみました
karugamo
2
720
わたしの星のままで一番星になる ~ 出産を機にSIerからEC事業会社に転職した話 ~
kimura_m_29
0
180
HTTP compression in PHP and Symfony apps
dunglas
2
1.7k
Webエンジニア主体のモバイルチームの 生産性を高く保つためにやったこと
igreenwood
0
330
Effective Signals in Angular 19+: Rules and Helpers @ngbe2024
manfredsteyer
PRO
0
140
クリエイティブコーディングとRuby学習 / Creative Coding and Learning Ruby
chobishiba
0
3.9k
PHPとAPI Platformで作る本格的なWeb APIアプリケーション(入門編) / phpcon 2024 Intro to API Platform
ttskch
0
240
テストコードのガイドライン 〜作成から運用まで〜
riku929hr
4
540
return文におけるstd::moveについて
onihusube
1
1.1k
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
365
19k
Fashionably flexible responsive web design (full day workshop)
malarkey
405
66k
Embracing the Ebb and Flow
colly
84
4.5k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
2
290
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
For a Future-Friendly Web
brad_frost
175
9.4k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
17
2.3k
Site-Speed That Sticks
csswizardry
2
190
Being A Developer After 40
akosma
87
590k
It's Worth the Effort
3n
183
28k
Six Lessons from altMBA
skipperchong
27
3.5k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Transcript
৽ਓڭҭͱPython ୩ ५ 2015-11-22 PyCon mini Hiroshima 2015
ࣗݾհ • ୩ ५ʢͤ ͡ΎΜʣ • Twitterɿ@7pairs • GitHubɿhttps://github.com/7pairs •
גࣜձࣾΞΠϞόΠϧॴଐ • ΞυωοτϫʔΫ୲ͷΤϯδχΞ • C#ɺJavaScript…ͳͲ • લ৬·Ͱ15ؒSIerʹۈ • ࠓͷൃදͦͷࠒͷ͓
ΞδΣϯμ • ͳͥ৽ਓڭҭͰPythonΛ࠾༻ͨ͠ͷ͔ • PythonͰڭҭ͕Ͳ͏มΘ͔ͬͨ • PythonͰߨࢣ͕ͨͪͲ͏มΘ͔ͬͨ • ଐ͞Ε͔ͯΒͷҧ͍͋ͬͨͷ͔ •
·ͱΊ
ͳͥ৽ਓڭҭͰPythonΛ࠾༻ͨ͠ͷ͔
ڭҭͷલఏ • ೖࣾޙͷ৽ਓ͞Μʹର͢Δϓϩάϥϛϯάڭҭ • ରʹϓϩάϥϛϯάະܦݧऀؚ·ΕΔ • ܦݧऀڭҭΛૣΊʹΓ্͛Δ͜ͱ… • ڭҭظؒ1ʙ3ϲ݄ʢʹΑͬͯࠩҧ͋Γʣ •
ฒߦͯ͠΄͔ͷݚम࣮ࢪ͢Δ • ϚφʔݚमɺใॲཧجૅɺσʔλϕʔεͳͲ
ڭҭͷత • ઌഐͷࢦಋԼͰۀ͕͜ͳͤΔΑ͏ʹͳΔ͜ͱ • ϓϩάϥϛϯάʹඞཁͳߟ͑ํΛʹ͚ͭΔ͜ͱ • ݴޠͦͷͷͷशख़ʹͩ͜ΘΒͳ͍ • ۀͰؔΘΔػձͷଟ͍Web։ൃʹͭͳ͍͛ͨ •
ݴޠΛΘͣඞཁͱͳΔ͕ࣝଟ͍ • WebΞϓϦͷΈɺηΩϡϦςΟͳͲ
࠾༻͢Δݴޠͷ݅ ʮWindowsڥͰ։ൃͰ͖ͯ…ʯ ʢPythonͩ…ʣ ʮͳهड़Λ͢Δඞཁ͕ͳͯ͘…ʯ ʢPythonͩ…ʣ ʮ͍͠ύϥμΠϜͷݴޠͰͳͯ͘…ʯ ʢPythonͩ…ʣ ʮWebͱͷੑ͕ߴ͍ݴޠͰ…ʯ ʢPythonͩ…ʂʣ
ͦΕ·Ͱͷ৽ਓڭҭ • ࣮Λҙࣝͯ͠JavaͰ࣮ࢪ͢Δ͜ͱ͕ଟ͔ͬͨ • JavaͰଟ͘ͷ͜ͱΛಉ࣌ʹֶͿඞཁ͕͋Δ • ϓϩάϥϛϯάͷߟ͑ํ • ΦϒδΣΫτࢦ •
Javaݴޠͷจ๏
Java൛Hello World // ͓·͡ͳ͍ͱͯ͠ਐΊ͟ΔΛಘͳ͍߲͕ଟ͍ public class HelloWorld { public static
void main(String[] args) { System.out.println("hello, world"); } }
Java൛Hello Worldͷ͓·͡ͳ͍ (1) // Ϋϥε public class HelloWorld { public
static void main(String[] args) { System.out.println("hello, world"); } }
Java൛Hello Worldͷ͓·͡ͳ͍ (2) // ϝιου public class HelloWorld { public
static void main(String[] args) { System.out.println("hello, world"); } }
Java൛Hello Worldͷ͓·͡ͳ͍ (3) // ΞΫηεम০ࢠ public class HelloWorld { public
static void main(String[] args) { System.out.println("hello, world"); } }
Java൛Hello Worldͷ͓·͡ͳ͍ (4) // ੩తʢϝιουʣ public class HelloWorld { public
static void main(String[] args) { System.out.println("hello, world"); } }
Java൛Hello Worldͷ͓·͡ͳ͍ (5) // Γ public class HelloWorld { public
static void main(String[] args) { System.out.println("hello, world"); } }
Java൛Hello Worldͷ͓·͡ͳ͍ (6) // Ҿ public class HelloWorld { public
static void main(String[] args) { System.out.println("hello, world"); } }
Java൛Hello Worldͷ͓·͡ͳ͍ (7) // ྻʢ͘͠ՄมҾʣ public class HelloWorld { public
static void main(String[] args) { System.out.println("hello, world"); } }
Java൛Hello Worldͷ͓·͡ͳ͍ (8) // ύοέʔδ public class HelloWorld { public
static void main(String[] args) { System.out.println("ΤϦνΧɺ͓͏ͪʹؼΔʂ"); } }
͓·͡ͳ͍ͷޮೳ • ͓·͡ͳ͍ͱׂͯ͠ΓΕΔͷ࠽ೳ • ख͕ࢭ·ͬͯ͠·͏ਓ͍Δ • ͓·͡ͳ͍͔ΓͰࣸܦ͔ΒಘΔͷ͕ͳ͘ͳΔ • ͦͷ࣌ͰͷཧղΛ์غ͍ͯ͠Δ
ੜΈग़͞ΕΔࠞಱ • ϑΝΠϧ໊ͱҟͳΔ໊લͷpublicΫϥε • ಉҰϑΝΠϧʹ2ͭͷpublicΫϥε • ಉҰΫϥεʹ2ͭͷmainϝιου • ΤϯτϦϙΠϯτͷͭΓͷmain2ϝιου
Python3൛Hello World // ߨࢣʹ༏͍͠Hello World print("hello, world")
Pythonͷ࠾༻ʹΑͬͯظ͞ΕΔ͜ͱ • Ϋϥε͕ඞͣ͠ඞཁͳ͍ • ͕ؔඞͣ͠ඞཁͳ͍ • ରϞʔυͳΒϑΝΠϧ͢Βඞཁͳ͍ • ࠷ॳͷ͓·͡ͳ͍ͰඍົͳۭؾʹͳΔ͜ͱͳ͍
Α͋͘Δͱճ (1) Q. ࣮ࡍʹۀͰ͏ݴޠͰڭҭ͢Εɺͦͷ͋ͱεϜʔ ζʹ࣮ʹೖΕΔͷͰʁ A. ্࢘ͷࢦࣔͩͱใࠂॻʹॻ͍ͯྑ͍ͷͰ͋Εɺۀ ͰͬͱΘΕ͍ͯΔJava1.4Ͱڭҭ͠·͢ɻ
Α͋͘Δͱճ (2) Q. Pythonͱ͍͏ݴޠฉ͍ͨ͜ͱ͕ͳ͍͕ɺͦΜͳϚΠ φʔͳݴޠͰֶशʹࢧোͳ͍ͷ͔ʁ A. ฐࣾಠࣗϑϨʔϜϫʔΫΑΓ͘ΘΕ͍ͯΔݴ ޠͳͷͰɺࣗश༰қͩͱߟ͍͑ͯ·͢ɻ
PythonͰڭҭ͕Ͳ͏มΘ͔ͬͨ
ಈతܕ͚ݴޠͰ͋Δ • ίʔυΛॻ͘ͱ͖ʹࢼߦࡨޡ͍͢͠ • ҰํͰઃܭͷେ͕͞ΘΓͮΒ͍໘… • ίϨΫγϣϯ͕͍͍͢ • "1" +
1 ͕ 2 ʹͳΒͳ͍ఔͷݫີ͞Λ࣋ͭ
ରϞʔυΛ͍࣋ͬͯΔ • ༷ʑͳ໘Ͱେ׆༂ • ྫΛઆ໌͢Δͱ͖ • ৽ਓ͞Μ͕ࢼߦࡨޡ͢Δͱ͖ • ߨࢣ͕ͬͦ͜Γݴޠ༷Λ֬ೝ͢Δͱ͖ •
PythonΛ࠾༻ͨ͜͠ͱͰڭҭͷਐΊํ͕มΘͬͨ
Webͱͷੑ͕ߴ͍ • Python͚ͩͰWebΞϓϦΛ࡞Δ͜ͱ͕Ͱ͖Δ • JavaͰڭҭ͍ͯͨ͠ࠒͷ͜ͱࢥ͍ग़ͨ͘͠ͳ͍… • TomcatΛೖΕͯ… • Մಡੑͷ͍JSPΛॻ͍ͯ… •
มߋͷͨͼʹ࠶ىಈΛͯ͠…
ςΩετΤσΟλͰॆʹίʔσΟϯάͰ͖Δ • ඇྗͳϚγϯͰͳΜͱ͔ਐΊΔ͜ͱ͕Ͱ͖Δ • JavaͰڭ͍͑ͯͨࠒͷ͜ͱࢥ͍ग़ͨ͘͠ͳ͍… • Eclipseͷىಈʹ5͔͔Δ… • ίʔσΟϯάதʹExcelΛ։͘ͱݻ·Δ…
PythonͰߨࢣ͕ͨͪͲ͏มΘ͔ͬͨ
ֶशͷҙཉ͕ੜ·Εͨ • ਓʹڭ͑ΔͨΊʹ·ͣཧղ͠ͳ͚ΕͳΒͳ͍ • ৽ਓ͞Μʹ࣭͞ΕͨΒ͑ͳ͚ΕͳΒͳ͍ • ͪΖΜӕΛڭ͑ΔΘ͚ʹ͍͔ͳ͍ • ৽͍͜͠ͱΛֶͿָ͠͞Λࢥ͍ग़ͨ͠
ӳޠʹର͢Δ߅ײ͕Β͍ͩ • ެࣜυΩϡϝϯτΛΕΔͱຊޠใ͕গͳ͍ • ֎෦ϥΠϒϥϦͷυΩϡϝϯτ • Stack OverflowͳͲ • ӳޠΛಡ·͟ΔΛಘͳ͍ঢ়گʹ
• ͍ࠐ·ΕΕҙ֎ͱͳΜͱ͔ͳΔ
ۀʹPythonΛऔΓೖΕΔಈ͖ • πʔϧྨΛPythonʹஔ͖͑Δ • Perl͔Βͷஔ͖͑ • γΣϧεΫϦϓτ͔Βͷஔ͖͑ • VBA͔Βͷஔ͖͑ •
ϓϩμΫτͰͷಋೖϋʔυϧ͕ߴ͔ͬͨ…
ଐ͞Ε͔ͯΒͷҧ͍͋ͬͨͷ͔
ΠϯσϯτҒେͩͬͨ • ϒϩοΫ୯ҐͰ͖ͪΜͱΠϯσϯτ͢Δश׳ • نΛҙࣝͨ͠ίʔσΟϯά • PEP8Ғେͩͬͨ
طଘͷػೳΛ͓͏ͱͯ͘͠ΕΔ • ৽ਓ͞Μʹ͋Γ͕ͪͳंྠͷ࠶ൃ໌͕ൃੜͮ͠Β͍ • ඪ४ϥΠϒϥϦͰղܾ͢Δ͜ͱ͕Ͱ͖ͳ͍͔ • APIͷJavadocɺMSDNΛௐΔश׳ • ֎෦ͷϥΠϒϥϦͰղܾ͢Δ͜ͱ͕Ͱ͖ͳ͍͔ •
ͨͩɺͳΜͰ͔ΜͰjarΛՃ͢Δͷ…
ؔΛΦϒδΣΫτͱͯ͠ѻ͏ • mapɺfilterͳͲͰؔΛҾʹࢦఆͨ͠ܦݧ • ΄͔ͷݴޠͰྨਪͯ͠ཧղ͢Δ͜ͱ͕Ͱ͖Δ • C#ɺJavaScriptͳͲ • Java8ʁɹԿͦΕඒຯ͍͠ͷʁ
ੲͳ͕Βͷforจʹށͬͯ͠·͏ for (String str : strArray) { // Pythonͷfor͔ΒͷྨਪͰཧղͰ͖Δ }
for (int i = 0; i < strArray.length; i++) { // Կ͜Εʁɹݟͨ͜ͱ͕ͳ͍ʂ }
ੲͳ͕ΒͷforจΛཧղ͠ͳ͚Ε͍͚ͳ͍ͨͬͨҰͭͷཧ༝ • Java1.4͕ݱͰ͋ΔͨΊ • Python࠾༻2JavaScriptΛྫʹઆ໌
·ͱΊ
·ͱΊ • Pythonͷ࠾༻ʹΑΓɺΞϧΰϦζϜͳͲͷຊʹڭ͑ ͍ͨ෦ʹϑΥʔΧεͰ͖ͨ • ۀͰར༻͠ͳ͍PythonͰڭҭ͢Δ߹ɺͦͷϚΠφ εΛ্ճΔϝϦοτΛఏࣔͰ͖ΔΑ͏ʹ • ৽ਓڭҭߨࢣͷڭҭͰ͋Δ •
Pythonͱ΄͔ͷݴޠͱͷҧ͍Λೝࣝͤ͞ɺ͠Γͳ ͍ػೳ͕͋Δ߹ผݴޠΛྫʹ͢Δ͜ͱඞཁ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠