Slide 1

Slide 1 text

Hello Python World ʙָ͠Έͳ͕Βجૅ͔Β࣮ફ·Ͱֶ΅͏ʙ Yohei Munesada

Slide 2

Slide 2 text

 https://goo.gl/wBcVt7

Slide 3

Slide 3 text

 फఆ༸ฏ ΉͶͩ͞Α͏΁͍ (`T"$"%&.:50,:0ϝϯλʔ IUUQXXXZPIFJNOFU about me

Slide 4

Slide 4 text

 concept 1ZUIPOΛָ͠Έͳ͕Βֶͼ·͠ΐ͏ جૅ͔Β࣮ફ·Ͱ੝Γͩ͘͞Μʹ͓఻͑͠·͢ ԋशͰखΛಈ͔ͯ͠਎ʹ͚ͭΔ

Slide 5

Slide 5 text

 pre installed $ python3 --version Python 3.6.2 $ pip3 —-version pip 9.0.1 from /Library/Frameworks/Python.framework/ Versions/3.6/lib/python3.6/site-packages (python 3.6) https://www.python.org/ Πϯετʔϧ͸ͪ͜Β͔Βˠ

Slide 6

Slide 6 text

 course catalog 㾎 1ZUIPOͱ͸ 㾎 1ZUIPOجຊฤ 㾎 Ϟδϡʔϧͱύοέʔδ 㾎 8FCεΫϨΠϐϯά 㾎 8FCαʔόʔ 㾎 1ZUIPOͱػցֶश Basic Advanced

Slide 7

Slide 7 text

 apps you’ll create https://goo.gl/0v5dSj https://goo.gl/KMgK3e

Slide 8

Slide 8 text

 What is Python ?

Slide 9

Slide 9 text

 agenda 1ZUIPOͰͰ͖Δ͜ͱ 1ZUIPOͱ͸ 1ZUIPOͷϝϦοτ 1ZUIPOͷσϝϦοτ 1ZUIPOͱͷ෇͖߹͍ํ

Slide 10

Slide 10 text

 Planner Web όονॲཧ Apache Python w ೔ৗతʹඞཁͳ෼ੳΛ1ZUIPOͰࣗಈ࣮ߦ w ෳ਺ͷσʔλιʔεΛѻ͏෼ੳ΋ࣗಈԽ͠࡞ۀޮ཰Ξοϓ

Slide 11

Slide 11 text

 Crowling & Filtering etc Flask Application Python Python w ೔ʑͷ৘ใऩूΛޮ཰తʹߦ͏ͨΊʹ࢓૊Έ w ػցֶश΍ਓ޻஌ೳʹؔ͢Δ৘ใ͕ࡶଟʹू·Δ Machine Learning Now

Slide 12

Slide 12 text

 Item-to-Item Collaborate Filtering YoheiM.NET Recommend Data Flask Application Python Python w هࣄͷӾཡϩάΛ΋ͱʹϨίϝϯυΛఏڙ͢Δ Recommend System for YoheiM.net

Slide 13

Slide 13 text

 Python used at.. Youtube Instagram Gunosy etc…

Slide 14

Slide 14 text

 Python is ೥ʹάΠυɾϰΝϯϩοαϜʹΑΓެ։͞Εͨ ΠΪϦεͷίϝσΟ൪૊ʮۭඈͿϞϯςΟɾύΠιϯʯ͕༝དྷΒ͍͠ 1.0x (1994) 2.0x (2000) 3.0x (2008) 2.7x (2010~2020) 3.6x (2016) 1ZUIPO4PGUXBSF'PVOEBUJPO

Slide 15

Slide 15 text

 good points ίʔυ͕γϯϓϧͰѻ͍΍͍͢ ਺ߦॻ͚͹৭ʑͱͰ͖Δ εΫϦϓτݴޠͰίϯύΠϧ͸ෆཁ ϚϧνϓϥοτϑΥʔϜ ಈతܕ෇͚ ػցֶशͷϥΠϒϥϦ͕ॆ࣮

Slide 16

Slide 16 text

 not good points YͱYͷ໰୊ ӳޠͷυΩϡϝϯτʹ౰ͨΔ͜ͱ͕ଟ͍ ೔ຊޠ ϚϧνόΠτ ͰϋϚΔ͕࣌͋Δ ಈతܕ෇͚ͷͨΊϦϑΝΫλϦϯά͕େม ϨϯαόͰಈ͔͢ͷ͸େม

Slide 17

Slide 17 text

 work with Python ਺ߦͰ΍Γ͍ͨ͜ͱ͕Ͱ͖Δͷ͸ૉఢ ·ͣ͸ॻ͍ͯΈΔɺͱ͍͏ελϯε ӳޠ͸ؤுΖ͏ YͱYͷͲͪΒͷ৘ใͳͷ͔ؾʹ͔͚Δ

Slide 18

Slide 18 text

 Python Basic

Slide 19

Slide 19 text

 agenda Basic 1 ϓϩάϥϜͷ࣮ߦ ΠϯσϯτελΠϧ ৚݅෼ذͱϧʔϓॲཧ ม਺ఆٛͱσʔλܕ σʔλߏ଄ -JTU %JDUJPOBSZ 4FU 5VQMF  ؔ਺ Basic 2

Slide 20

Slide 20 text

 agenda Basic 1 ϓϩάϥϜͷ࣮ߦ ΠϯσϯτελΠϧ ৚݅෼ذͱϧʔϓॲཧ ม਺ఆٛͱσʔλܕ σʔλߏ଄ -JTU %JDUJPOBSZ 4FU 5VQMF  ؔ਺ Basic 2

Slide 21

Slide 21 text

 how to execute ର࿩ܕ࣮ߦ ϓϩάϥϜ࣮ߦ ͦͷଞ KVQZUFSOPUFCPPLͳͲ

Slide 22

Slide 22 text

 demo

Slide 23

Slide 23 text

 indent style 1ZUIPO͸ΠϯσϯτΛ༻͍ͯϓϩάϥϜߏ଄Λදݱ͠·͢ def api(): search_no = get_search_no() if not search_no: Logger.get().warn("search_no doesn't exist.") return None, "error" else: try: result = special_execute_something(search_no) return result, None except: Logger.get().exception(“Oh my god!!!")

Slide 24

Slide 24 text

 condition 1ZUIPOͷ৚݅෼ذͱͦͷϙΠϯτΛ঺հ͠·͢ if hour <= 6: print("so sleepy”) elif 10 <= hour <= 12: print("good morning”) elif hour < 12 and day_of_week == “Sunday" or hour > 20: pass else: print("hi") 1 2 3 4

Slide 25

Slide 25 text

 loop 1ZUIPOͷ܁Γฦ͠ॲཧΛ঺հ͠·͢ for i in range(10): print(i) for item in ["a", "b", "c"]: print(item) my_life = 5 while my_life: my_life -= 1 idx = 0 while True: if idx > 5: break idx += 1

Slide 26

Slide 26 text

 variables 1ZUIPOͷม਺Λ঺հ͠·͢ # Define my_name = "Yohei" age = 20 is_good = True unittest = 1 # Check type type(my_name) # Concat my_name + age # => Error my_name + str(age)

Slide 27

Slide 27 text

 agenda Basic 1 ϓϩάϥϜͷ࣮ߦ ΠϯσϯτελΠϧ ৚݅෼ذͱϧʔϓॲཧ ม਺ఆٛͱσʔλܕ σʔλߏ଄ -JTU %JDUJPOBSZ 4FU 5VQMF  ؔ਺ Basic 2

Slide 28

Slide 28 text

 list Ϧετܕ͸഑ྻܗࣜͰσʔλΛอ࣋͠·͢ # Create users = [ "Yo", "Ken", “Nao”, "Shin", “Lee" ] # Index access users[0] # => ? users[0:2] # => ? users[1:] # => ? users[::2] # => ? users[::-1] # => ? # Add users.append("Miu") # Delete users.remove("Nao")

Slide 29

Slide 29 text

 list comprehension ʢϦετ಺แදهʣ users = ["Yo", "Ken", "Nao", "Shin", "Lee"] users = [u.lower() for u in users if u.find("e") != -1]

Slide 30

Slide 30 text

 dictionary ࣙॻܕ͸LFZWBMVFͰ஋Λอ࣋͠·͢ # Create user_dict = { "Yohei": 30, "John": 35 } # Get user_dict["Yohei"] user_dict.get("Nao", 20) # Get all for k, v in user_dict.items(): print(k, v) # Update / Delete user_dict["Yohei"] = 31 del user_dict["John"]

Slide 31

Slide 31 text

 set ηοτܕ͸ॏෳ͕ͳ͘ɺॱংΛ࣋ͨͳ͍σʔλͷू߹Ͱ͢ # Create set_ = { "Tennis", "Ramen", “Programming" } # Get set_[0] # => Error!! for s in set_: print(s) # Add / Delete set_.add("Gs") set_.remove("Ramen") # Calc set1 = set([1, 2, 3, 4, 5]) set2 = set([3, 4, 5]) set1 - set2

Slide 32

Slide 32 text

 tuple λϓϧ͸Πϛϡʔλϒϧͳσʔλߏ଄Ͱ͢ # Create nums = "One", "Two", “Three" nums = (“One", "Two", “Three") # Get nums[0] for n in nums: print(n) # Immutable nums[0] = "Zero" # => Error! # Assign a, b, c = nums

Slide 33

Slide 33 text

 function 1ZUIPOͷؔ਺͸ඇৗʹڧྗͰɺ1ZUIPOͷྑ͞ͷͭͰ͢ # Basic def add(a, b): return a + b result = add(10, 20) # Argument default value def pow(a, b=2): return a ** b result = pow(10) # Keyword arguments def create_date( year=0, month=0, date=0): return "..." create_date(year=2017, date=10) # Multiple return def get_user(): return 'Yohei', 30 name, age = get_user()

Slide 34

Slide 34 text

 practice for basic จࣈྻͱΠϯσοΫεΞΫηε ʮ͜͡ʔͩ͢·͔͋͞ΜͰͷΈ͠ʔΎͬΈͯ͸ͨͳͷΜ͍ͩ͠Ζͳʯ͔Βح਺൪ ໨ͷจࣈྻͱɺۮ਺൪໨ͷจࣈྻΛൈ͖ग़ͯ͠ΈΑ͏ ࣸܦͯ͠ΈΑ͏ ؔ਺ Ҿ਺ʹYͱZΛड͚෇͚Δؔ਺Λ࡞੒͠ʮࢲͷ໊લ͸YͰZࡀͰ͢ʯͱग़ྗ͢Δؔ਺ Λ࡞੒ͯ͠ΈΑ͏ɻʮY:PIFJ ZʯΛ୅ೖͯ͠ಈ͔ͯ͠ΈΑ͏ɻ೥ྸ͕লུ ͞Εͨ৔߹ʹzzࡀͱදࣔ͢ΔΑ͏ʹ͠Α͏ɻ 4FUͷ࿅श ʮۜՏమಓͷ໷ʯͷҰઅ͔Βɺར༻͞Ε͍ͯΔจࣈͷछྨ਺Λऔಘ͠Α͏ɻ ɹIUUQXXXBP[PSBHSKQDBSETpMFT@IUNM

Slide 35

Slide 35 text

practice for basic Ϧετ಺แදه ʙͷ਺஋Λ࣋ͭ഑ྻΛ࡞੒͠ɺશͯͷཁૉΛʮ ਺஋ ԁʯʹ͠Α͏ɻ 1ZUIPOͷΫϥεΛֶ΅͏ 1ZUIPOʹ΋Ϋϥε͕ଘࡏ͠·͢ɻҎԼͷهࣄΛࢀߟʹֶΜͰΈ·͠ΐ͏ʂ ɹIUUQXXXZPIFJNOFUCMPHQIQ R

Slide 36

Slide 36 text

practice for basic ͦͷଞʹ΋ 1ZUIPOʹ͸ศརͳ΋ͷ͕͍ͬͺ͍ɻ৭ʑͱ৮ΕͯΈ͍ͯͩ͘͞ɻ ɹɾҐஔҾ਺ͷλϓϧԽɿIUUQXXXZPIFJNOFUCMPHQIQ R ɹɾΩʔϫʔυҾ਺ͷࣙॻԽɿIUUQXXXZPIFJNOFUCMPHQIQ R ɹɾϦετͷ͍Ζ͍ΖɿIUUQXXXZPIFJNOFUCMPHQIQ R ɹɾίʔσΟϯάن໿ɿIUUQXXXZPIFJNOFUCMPHQIQ R ɹɾσίϨʔλʔɿIUUQXXXZPIFJNOFUCMPHQIQ R ɹɾԋࢉࢠͷఆٛɿIUUQTHPPHM4SW2 ɹɾϥϜμࣜɿIUUQVYNJMLKQ ɹɾͳͲ

Slide 37

Slide 37 text

 agenda Basic 1 ϓϩάϥϜͷ࣮ߦ ΠϯσϯτελΠϧ ৚݅෼ذͱϧʔϓॲཧ ม਺ఆٛͱσʔλܕ σʔλߏ଄ -JTU %JDUJPOBSZ 4FU 5VQMF  ؔ਺ Basic 2

Slide 38

Slide 38 text

 course catalog 㾎 1ZUIPOͱ͸ 㾎 1ZUIPOجຊฤ 㾎 Ϟδϡʔϧͱύοέʔδ 㾎 8FCεΫϨΠϐϯά 㾎 8FCαʔόʔ 㾎 1ZUIPOͱػցֶश Basic Advanced

Slide 39

Slide 39 text

 Python Advance Ϟδϡʔϧͱύοέʔδ

Slide 40

Slide 40 text

 agenda Ϟδϡʔϧͷఆٛͱར༻ ύοέʔδΛ࢖͏ ඪ४ϞδϡʔϧΛ࢖͏ ֎෦ϞδϡʔϧΛ࢖͏

Slide 41

Slide 41 text

 module ෳ਺ͷॲཧΛͭͷϑΝΠϧʹ·ͱΊͨ΋ͷ main.py my_module.py

Slide 42

Slide 42 text

 module main.py my_module.py # my_module.py def get_genius(): return ["Yamazaki", "Kosuge"] def get_popular(): return "Python Language" # main.py import my_module my_module.get_genius() my_module.get_popular() ෳ਺ͷॲཧΛͭͷϑΝΠϧʹ·ͱΊͨ΋ͷ

Slide 43

Slide 43 text

 module main.py my_module.py # my_module.py def get_genius(): return ["Yamazaki", "Kosuge"] def get_popular(): return "Python Language" # main.py import my_module as mm mm.get_genius() mm.get_popular() ෳ਺ͷॲཧΛͭͷϑΝΠϧʹ·ͱΊͨ΋ͷ

Slide 44

Slide 44 text

 module main.py my_module.py # my_module.py def get_genius(): return ["Yamazaki", "Kosuge"] def get_popular(): return "Python Language" # main.py from my_module import get_genius get_genius() ෳ਺ͷॲཧΛͭͷϑΝΠϧʹ·ͱΊͨ΋ͷ

Slide 45

Slide 45 text

 package ෳ਺ͷϞδϡʔϧΛ·ͱΊͨ΋ͷ main.py gscommon __init__.py my_module.py my_special.py package module ʙ Python3.2

Slide 46

Slide 46 text

 package ෳ਺ͷϞδϡʔϧΛ·ͱΊͨ΋ͷ main.py gscommon __init__.py my_module.py my_special.py # gscommon/my_module.py def get_genius(): return ["Yamazaki", "Kosuge"] # main.py import gscommon.my_module gscommon.my_module.get_genius()

Slide 47

Slide 47 text

 package ෳ਺ͷϞδϡʔϧΛ·ͱΊͨ΋ͷ main.py gscommon __init__.py my_module.py my_special.py # gscommon/my_module.py def get_genius(): return ["Yamazaki", "Kosuge"] # main.py from gscommon import my_module my_module.get_genius()

Slide 48

Slide 48 text

 package ෳ਺ͷϞδϡʔϧΛ·ͱΊͨ΋ͷ main.py gscommon __init__.py my_module.py my_special.py # gscommon/my_module.py def get_genius(): return ["Yamazaki", "Kosuge"] # main.py import gscommon gscommon.my_module.get_genius()

Slide 49

Slide 49 text

 python standard libraries ඪ४ϥΠϒϥϦ͸ඇৗʹॆ࣮͍ͯ͠·͢ https://docs.python.org/3/library/index.html

Slide 50

Slide 50 text

 ྫ͑͹+40/Λѻ͏ϥΠϒϥϦ # A example of `json`. import json s = """ { "name": "G's Academy", "members": 500 } “"" school = json.loads(s) https://docs.python.org/3/library/json.html python standard libraries

Slide 51

Slide 51 text

 ྫ͑͹)551௨৴Λѻ͏ϥΠϒϥϦ # A example of `urllib.request`. import urllib.request url = “http://www.yoheim.net” with urllib.request.urlopen(url) as res: html = res.read().decode('utf-8') https://docs.python.org/3/library/urllib.request.html python standard libraries

Slide 52

Slide 52 text

 3rd party libraries ֎෦ϥΠϒϥϦ͸QJQͰΠϯετʔϧͰ͖·͢ # HTTPϦΫΤετΛൃߦ͢ΔϥΠϒϥϦͷྫ $ pip3 install requests https://github.com/requests/requests

Slide 53

Slide 53 text

 practice for module and package Ϟδϡʔϧͷ࡞੒ ʮNZ@TQFDJBMQZʯͱ͍͏ϞδϡʔϧΛ࡞੒ͯ͠࢖ͬͯΈΑ͏ ࣸܦͯ͠ΈΑ͏ ύοέʔδͷ࡞੒ ʮNZVUJMTʯͱ͍͏ύοέʔδΛ࡞੒ͯ͠࢖ͬͯΈΑ͏ ඪ४ϥΠϒϥϦͷར༻ ҎԼͷ63-ΛࢀߟʹɺEBUFUJNFϞδϡʔϧͱSFϞδϡʔϧΛ࢖ͬͯΈΑ͏ɻ ɹEBUFUJNFIUUQXXXZPIFJNOFUCMPHQIQ R ɹSFIUUQXXXZPIFJNOFUCMPHQIQ R

Slide 54

Slide 54 text

 practice more 1ZUIPOͷԾ૝؀ڥʹ௅ઓʂ ࣮ࡍͷ։ൃͰ͸ɺϓϩδΣΫτ͝ͱʹ1ZUIPOͷ؀ڥΛ෼͚ͯߦ͍·͢ɻ ҎԼͷهࣄΛࢀߟʹɺQZFOWͱQZFOWWJSUVBMFOWΛ࢖ͬͯσΟϨΫτϦ͝ͱʹ
 1ZUIPOͷ؀ڥΛม͑ͯΈ·͠ΐ͏ʔ?? ɹQZFOWIUUQXXXZPIFJNOFUCMPHQIQ R ɹQZFOWWJSUVBMFOWIUUQXXXZPIFJNOFUCMPHQIQ R ͦͷଞʹ΋ ଞʹ΋ศརͳ΋ͷ͕͍ͬͺ͍͋Γ·͢ͷͰɺ৮ΕͯΈ͍ͯͩ͘͞ɻ ɹɾҾ਺Λѻ͏ᶃɿIUUQXXXZPIFJNOFUCMPHQIQ R ɹɾҾ਺Λѻ͏ᶄɿIUUQXXXZPIFJNOFUCMPHQIQ R ɹɾϢχοτςετɿIUUQXXXZPIFJNOFUCMPHQIQ R ɹɾ(PPHMF"OBMZUJDTΛѻ͏ɿIUUQXXXZPIFJNOFUCMPHQIQ R ɹɾͳͲ

Slide 55

Slide 55 text

 practice more ͦͷଞʹνΣοΫ͢΂͖ࣄ߲ ɹɾ૬ରΠϯϙʔτɿIUUQTHPPHM;D"37 ɹɾσϑΥϧτͷύεͱ௥ՃɿIUUQCMPHCPOQSPTPGUDPN ɹɾQJQGSFF[FͱSFRVJSFNFOUTUYUɿIUUQTHPPHM"/BSV

Slide 56

Slide 56 text

 re: course catalog 㾎 1ZUIPOͱ͸ 㾎 1ZUIPOجຊฤ 㾎 Ϟδϡʔϧͱύοέʔδ 㾎 8FCεΫϨΠϐϯά 㾎 8FCαʔόʔ 㾎 1ZUIPOͱػցֶश Basic Advanced

Slide 57

Slide 57 text

 Finish !