Slide 1

Slide 1 text

#BTJD1ZUIPO NTUST Coding Club — Inndy

Slide 2

Slide 2 text

㛇劥Ꟛ涮橇㞯 ˙⯝顥箁♳Ꟛ涮橇㞯IUUQTDJP ˙♳铭涸湱ꡠ须俲IUUQTKNQODDBEWQZ ˙*1ZUIPOIUUQTJQZUIPOPSH

Slide 3

Slide 3 text

簮䱖莅玑䒭⼦㝆 a = input("a: ") if int(a) == 1: print("A is 1") else: print("A is not 1") 3

Slide 4

Slide 4 text

簮䱖莅玑䒭⼦㝆 • Ӟ㮆婘矎դ蔭Ӟ㮆纷ୗ玟璸 • 磪ٛ蒈磪婘矎 • 磪ٛ蒈಍磪婘矎牧犋胼㫂婘矎 • ೲ Tab • Python 秂伛傶ࢥ㮆܎୵绚ጮ牧IDLE䨝䒻֦旉矦 • if, for, while, with, class, def, try ...etc. 4

Slide 5

Slide 5 text

a = input("a: ") if int(a) == 1: print("A is 1") else: print("A is not 1") 5

Slide 6

Slide 6 text

a = input("a: ") if int(a) == 1: print("A is 1") else: print("A is not 1") 6

Slide 7

Slide 7 text

a = input("a: ") if int(a) == 1: print("A is 1") else: print("A is not 1") ग़訏ጱ婘矎牫 7

Slide 8

Slide 8 text

a = input("a: ") if int(a) == 1: print("A is 1") else: print("A is not 1") ग़訏ጱ婘矎牫 8

Slide 9

Slide 9 text

ⴅ䒭EFG 碍䋊獢碍物 Python獢ୗ物 def f(x, y): res = x * 3 res += 5 * y ** 2 return res f (x, y) = 3x + 5y2 9

Slide 10

Slide 10 text

ⴅ䒭EFG def 獢ୗݷ圸(㷢碍1, 㷢碍2, …): # 獢ୗ獉਻ return Something 10

Slide 11

Slide 11 text

ⴅ䒭EFG • 蜍獈虻碘牧螀ᓒҁ牧蜍ڊ奾ຎ҂ • 犖ݢ犥犋ࢧ㯽 • ᯿蕦ጱ纷ୗ䌃౮獢ୗ牧ݢ犥᯿蕦ڥአ牧ො׎狕硬 • 犋ٚ襑ᥝک蒂蕦蕣揳Ӥ 11

Slide 12

Slide 12 text

def add(x, y): result = x + y return result result = add(5, 6) print(result) 12

Slide 13

Slide 13 text

def add(x, y): result = x + y return result result = add(5, 6) print(result) ࢥ㮆܎୵绚ጮ 13

Slide 14

Slide 14 text

ⴅ䒭EFG箻绢 1. 旉౮碍ਁ୵眲ҁint҂ 2. ፘ仂஑کଙ请ҁA - B҂ 3. ࢧ㯽奾ຎҁreturn҂ 14 def YearToAge(birth): .... 箻绢㻨♧ⴅ䒭鱒Ⰵⴀ欰䎃⟨銯⯋䎃⚛㔐⫄䎃룲 塅ֺ蜍ڊ物 ڊኞଙ犩ҁᥜزଙ҂物1995 ֦犡ଙ 19 䵇ԧ

Slide 15

Slide 15 text

JGⴼ倬哭⟝ if 礿կ1: # 纷ୗ粙ྦྷ 1 elif 礿կ2: # 纷ୗ粙ྦྷ 2 # else-if ݢ犥盄ग़㮆 # ౲ᘏ䷱磪 elif 礿կ3: # 纷ୗ粙ྦྷ 3 else: # ইຎ獮ᶎӣ殻礿կ᮷犋ᒧݳ 15

Slide 16

Slide 16 text

JGⴼ倬哭⟝ a = input("Input a number:") a = int(a) if a > 5: print("a is bigger than 5") print("First branch") elif a < 3: print("a is smaller than 3") a = a + 5 else: print("a is between 3 and 5") print("a = ", a) 16

Slide 17

Slide 17 text

JGⴼ倬哭⟝ a = input("Input a number:") a = int(a) if a > 5: print("a is bigger than 5") print("First branch") elif a < 3: print("a is smaller than 3") a = a + 5 else: print("a is between 3 and 5") print("a = ", a) 17

Slide 18

Slide 18 text

JG哭⟝ⴼ倬箻绢 ˙ 锞鱒Ⰵⴀ欰䎃⟨銯⯋䎃⚛⚂ⴼ倬僽や䧭䎃 ˙ ⢪欽ⶍⶍ涸:FBS5P"HFⴅ䒭 18 塅ֺ蜍ڊ物 ڊኞଙ犩ҁᥜزଙ҂物1995 ֦౮ଙԧ 塅ֺ蜍ڊ物 ڊኞଙ犩ҁᥜزଙ҂物1999 ֦蝡㮆ੜ疵਎

Slide 19

Slide 19 text

GPS鶬㕖 19 for i in iterable: print(i)

Slide 20

Slide 20 text

JUFSBCMF ݢ犥ᤩ吚֢iteratorֵአጱ 20

Slide 21

Slide 21 text

➊랃僽JUFSBUPS 21

Slide 22

Slide 22 text

22 22 ➊랃僽JUFSBUPS

Slide 23

Slide 23 text

23 23 ➊랃僽JUFSBUPS

Slide 24

Slide 24 text

24 24 ➊랃僽JUFSBUPS

Slide 25

Slide 25 text

25 25 ➊랃僽JUFSBUPS

Slide 26

Slide 26 text

➊랃僽JUFSBUPS 26 26

Slide 27

Slide 27 text

➊랃僽JUFSBUPS 27 27

Slide 28

Slide 28 text

Ջ讕ฎiterator牫 28 28 JUFSBUPS

Slide 29

Slide 29 text

Ջ讕ฎiterator牫 • ℂ਻瑊獉瞟ڊྯӞ㮆زᔰጱૡٍ • ℂፋৼ獉ጱᒫӞ㮆ᇔߝ蚎ک磧盅Ӟ㮆ᇔߝ • 犋஠橕ஞፋৼ愊ᶎ裾Ջ讕䰬ৼ 29

Slide 30

Slide 30 text

for 蝅瑹 30 for i in [1, 3, 5]: print(i) 1 3 5

Slide 31

Slide 31 text

for 蝅瑹 31 for i in [1, 3, 5]: print(i) 1 3 5 list

Slide 32

Slide 32 text

for 蝅瑹 32 for i in "ASD": print(i) A S D

Slide 33

Slide 33 text

for 蝅瑹 33 for i in range(1, 4): print(i) 1 2 3

Slide 34

Slide 34 text

for 蝅瑹 34 for i in range(1, 10, 3): print(i) 1 4 7

Slide 35

Slide 35 text

for 蝅瑹 35 sum = 0 for i in range(1, 11): sum += i print(sum)

Slide 36

Slide 36 text

GPS鶬㕖  data = "" for i in range(40, 60): data += chr(i) print(data) print(ord("A"))

Slide 37

Slide 37 text

range獢ୗ 37 range(stop) # ۱珀 start ֕犋۱珀 stop range(start, stop) range(start, stop, step) # Example range(3) # [0, 1, 2] range(1, 4) # [1, 2, 3] range(8, 2, -2) # [8, 6, 4] range(3, 0, -1) # [3, 2, 1]

Slide 38

Slide 38 text

GPS SBOHF竸ざ箻绢 • 懯ᓒ 1 + 5 + 9 + 13 + 17 + … + 9997 ԏ者޾ • 懯ᓒ 100! % 123456789012345 ҁ褩犔҂ • 懯ᓒ 12 + 22 + 32 + 42 + … + 1002 38 sum = 0 for i in range(1, 11): sum += i print(sum)

Slide 39

Slide 39 text

⳯讍鶋㺙岁  mode = input("1 = ےੂ 2 = 薹ੂ物") data = input("蜍獈ᥝےੂጱ虻碘物") output = "" # 伛猋አ㬵硯奾ຎ for i in data: # 玲ڊ蜍獈ጱྯӞ㮆ਁ n = ord(i) # 旉矦౮ ASCII 嘨 if mode == "1": n = n + 5 # ےੂ else: n = n - 5 # 薹ੂ c = chr(n) # ℂ ASCII 旉ࢧਁԀ output += c # ಩ےੂ / 薹ੂਠጱਁԀ蚏㬵 print(output)

Slide 40

Slide 40 text

鶬㕖涸䱾ⵖ • break 泷ӤӾ䥁蝅瑹 • continue 泷Ӥ᪡کӥӞ稞䁆ᤈ • else ইຎ蝅瑹䁆ᤈਠԧ䷱磪ᤩ break 

Slide 41

Slide 41 text

鶬㕖涸䱾ⵖ  for i in range(10): if i % 2 == 0: continue print(i)

Slide 42

Slide 42 text

㼦䪪_涸颶侸  颶侸 ꤑ✫莅荈䊹尝剤Ⱖ➮姻侮侸涸㔔侸

Slide 43

Slide 43 text

㼦䪪_涸颶侸 ˙ 睨岁增叆僽やⰨ剤Ⱖ➮㔔侸 ˙ O  O佖葻睨岁涸眕㕠 ˙ 4JFWFPG&SBUPTUIFOFT⿾麕⢵⨞涸睨岁 ˙ 鼩剤Ⱖ➮刿㢵刿隶䢀刿醳꧹涸倰岁 

Slide 44

Slide 44 text

㼦䪪_涸颶侸  for i in range(2, 100 + 1): for j in range(2, i): if i % j == 0: break else: # ইຎ䷱磪ᤩbreak print(i, "is prime.")

Slide 45

Slide 45 text

8IJMF鶬㕖 • 犖ฎӞ圵蝅瑹 • ݝᥝ瞲ਧጱ礿կ౮缏疰Ӟፗ䁆ᤈ • while {condition}:
 do_some_thing("this")
 and_some_thing("that", 3, 4, 5) 

Slide 46

Slide 46 text

8IJMF鶬㕖  i = 10 m = 1 while i > 1: m *= i i -= 1 print(m)

Slide 47

Slide 47 text

# 娞聜物糔碍ਁ蝿瞁 http://j.mp/py-guess-num from random import randint r = randint(1, 10) print("I have a random number: ", r) secret = _______(1, 100) # 㫂碍 _____ True: # 蝅瑹 guess = input("Guess a number:") guess = ___(_____) # ਁԀ牫碍ਁ牫 if _____ __ ______: # 糔䌘ԧ牫 print("You got it!") _____ # 蝿瞁奾๳ elif _____ _ ______: # ইຎ糔ॡय़ԧ print("Lower please.") else: print("Bigger and bigger.")

Slide 48

Slide 48 text

-JTU ˙ 겳⡂"SSBZ ˙ 䖎㢵匌銯佞㖈♧饱꧌⚥盘椚 ˙ 嫦⦐匌銯鿪剤♧⦐管贫*OEFY ˙ 䖰Ꟛ㨥鼹 

Slide 49

Slide 49 text

-JTU • empty_list = [] • nums = [1,2,3,4,5,6] # nums[0] == 1 • nums[0] = 9 • nums.append(7) • nums += [8, 9, 10] • print(nums[2:5]) • data = [1,[2,3,4],5] 

Slide 50

Slide 50 text

-JTU  a = [1, 2, 3, 4, 5] # List for num in a: print(num) print("a[2] is", a[2]) a.append(333) print(a)

Slide 51

Slide 51 text

-JTU  a = [4, 6, 3, 9, 1] a.sort() print(a)

Slide 52

Slide 52 text

-JTU • min • max • sorted • reversed • sum 

Slide 53

Slide 53 text

-JTU  䒊用♧⦐MJTU〭⨞QSJNFT ⚛⚂㖈酭꬗佞_涸颶侸 搭䖕⽫ⴀ痧_⦐颶侸 #FTNBSU锞♶銴QSJNFT<    >

Slide 54

Slide 54 text

0099(BNF  http://j.mp/py-ooxx-game

Slide 55

Slide 55 text

㥶卓⡹銴-JTU剤_䙦랃⨞ 䖎矦㋲㉇欽GPS 

Slide 56

Slide 56 text

56 a = [] for i in range(1, 11): a.append(i) 欽GPS鶬㕖

Slide 57

Slide 57 text

 a = [ i for i in range(1, 11) ] -JTU$PNQSFIFOTJPO

Slide 58

Slide 58 text

 a = list(range(1, 11)) 85' 

Slide 59

Slide 59 text

銴-JTU剤_䙦랃⨞ 䖎矦㋲㉇欽GPS 

Slide 60

Slide 60 text

60 a = [] for i in range(1, 11): a.append(i ** 2) 欽GPS鶬㕖

Slide 61

Slide 61 text

 a = [i ** 2 for i in range(1, 11)] -JTU$PNQSFIFOTJPO

Slide 62

Slide 62 text

-JTU$PNQSFIFOTJPO  [ {expr} for i in {iter} ] [ {expr} for i in {iter} if {cond} ]

Slide 63

Slide 63 text

-JTU$PNQSFIFOTJPO  a = [ i * 2 for i in range(5) ] # [0, 2, 4, 6, 8]

Slide 64

Slide 64 text

-JTU$PNQSFIFOTJPO  b = [i for i in range(8) if i % 2 == 1] # [1, 3, 5, 7]

Slide 65

Slide 65 text

-JTU$PNQSFIFOTJPO  箻绢 ⴪ⴀ    ⴪ⴀ  

Slide 66

Slide 66 text

 print([ n for n in range(2, 100) if not any( n % i == 0 for i in range(2, n) ) ]) -JTU$PNQSFIFOTJPO

Slide 67

Slide 67 text

 print([ n for n in range(2, 100) if not any( n % i == 0 for i in range(2, n) ) ]) -JTU$PNQSFIFOTJPO FYQSFTTJPO GPS DPOEJUJPO

Slide 68

Slide 68 text

 print([ n for n in range(2, 100) if not any( n % i == 0 for i in range(2, n) ) ]) -JTU$PNQSFIFOTJPO FYQSFTTJPO GPS DPOEJUJPO FYQSFTTJPO GPS

Slide 69

Slide 69 text

TUS欽岁  "ABCDEFG"[2:4] "Repeat Me" * 16 "some" in "something is here" "this" not in "what about that" print("\n".join(["A", "B", "C"]))

Slide 70

Slide 70 text

竸ざ箻绢  欽♧妄QSJOU⽫ⴀ⟃♴㕬䕎 * ** *** **** ***** ****** ****** ***** **** *** ** * * *** ***** *******

Slide 71

Slide 71 text

竸ざ箻绢  欽♧妄QSJOU⽫ⴀ⟃♴㕬䕎 3, 1 ___* 2, 3 __*** 1, 5 _***** 0, 7 *******

Slide 72

Slide 72 text

㶶⚮贖椚 • s[:5] # 玲ڊ獮Բ㮆ਁ • s[-3:] # 玲ڊ磧盅ӣ㮆ਁ • s[0:4] # 玲ڊᒫ0㮆کᒫ3㮆ਁ • s[3:12:2] # 玲ڊᒫ3㮆کᒫ11㮆ਁ牧֕ฎྯ稞螂Ӟ 㮆ҁ2-1҂ 4VCTUSJOH

Slide 73

Slide 73 text

㶶⚮贖椚 • "ababa".count("a") # 3 • "dcba".startswith("dc") • "abcd".endswith("d") • "AbcD".upper() # 旉य़䌃 • "AbcD".lower() # 旉ੜ䌃

Slide 74

Slide 74 text

㶶⚮贖椚 • "\n".join(['a', 'b', 'c']) • "ab cd ef".split(" ") • "fly in sky".index("in") • "123".zfill(5) # 酢ꨫ • ZJOTLZSFQMBDF JO PO

Slide 75

Slide 75 text

㶶⚮贖椚 def is_mirror(s): return s == s[::-1] 㔐俒ⴼ倬♧遤晝劥

Slide 76

Slide 76 text

%JDU ˙ %JDUJPOBSZ ˙ ,FZ7BMVF ˙ *OEFY〳⟃僽⟤⡦匌銯涸-JTU • d = { "A": "A string", "B": 456.7 } 

Slide 77

Slide 77 text

%JDU • d[123] = 456 • d['key'] = 'value' • d.update({'mixin': ‘this-dict'}) • print(d.keys()) • print(d.get('no-this-key', 123)) • del d['a'] 

Slide 78

Slide 78 text

%JDU for key, val in d.items(): print("%s -> %s" % (key, val)) 

Slide 79

Slide 79 text

%JDU e = { i: '(%04d)' % i for i in range(5) } print(e) 

Slide 80

Slide 80 text

%JDU e = { i: '(%04d)' % i for i in range(5) } print(e) 

Slide 81

Slide 81 text

墂呪贖椚  墂呪そ珖

Slide 82

Slide 82 text

墂呪贖椚  墂そ 墂そ墂呪涸そ㶶荈䊹《

Slide 83

Slide 83 text

墂呪贖椚  ⶰ墂そ陏ⴽ墂呪涸겳㘗 ⶰ墂そ

Slide 84

Slide 84 text

墂呪贖椚  8JOEPXT涸ⶰ墂そ갸鏤♶곏爚

Slide 85

Slide 85 text

墂呪贖椚  墂呪騟䖜穪㼩騟䖜㸤侮騟䖜

Slide 86

Slide 86 text

墂呪贖椚  墂呪騟䖜湱㼩騟䖜

Slide 87

Slide 87 text

墂呪贖椚 • fo = open("file name", "mode") • fo.write("data to write") • fo.readline() • fo.readlines() • fo.read(length) • fo.close() 87

Slide 88

Slide 88 text

墂呪贖椚 • r物捝玲 • w物䌃獈ҁ薟荠碉㮆䲆礯҂ • a物ᴫےҁ䌃獈ک䲆礯ੲᒒ҂ • b物覍෈ਁ䲆礯秇ୗ • +物窾ݳ秇ୗҁݢ捝ݢ䌃҂  䎙珏䌢鋅涸墂呪Ꟛ㉬垸䒭

Slide 89

Slide 89 text

墂呪贖椚 • r+ ݢ捝ݢ䌃 • ab ᴫےکӞ㮆 binary 䲆礯 • wb ୌ缏౲竃绚Ӟ㮆 binary 䲆礯牧ݢ犥䌃獈  䎙珏䌢鋅涸墂呪Ꟛ㉬垸䒭

Slide 90

Slide 90 text

90 name = input("What is your name? ") file_obj = open("test.txt", "w") file_obj.write("Hi, " + name + "\n") file_obj.close() 墂呪贖椚

Slide 91

Slide 91 text

91 name = input("What is your name? ") file_obj = open("test.txt", "w") file_obj.write("Hi, " + name + "\n") file_obj.close() Ꟛ㉬墂呪 墂呪そ珖 Ꟛ㉬垸䒭 ꡠꟗ墂呪 㻨Ⰵ墂呪 䳖遤 墂呪贖椚

Slide 92

Slide 92 text

92 fo = open("primes.txt", "r") s = 0 for i in fo: s += int(i) print("Sum =", s) fo.close() 墂呪贖椚

Slide 93

Slide 93 text

93 fo = open("primes.txt", "r") s = 0 for i in fo: s += int(i) print("Sum =", s) fo.close() 墂呪贖椚

Slide 94

Slide 94 text

娞聜物dict 膏䲆礯 94 ˙ 䪾EJDU㶸鹎墂呪 ˙ 䖰墂呪隡㔐EJDU

Slide 95

Slide 95 text

5FYU &ODPEJOHBOE#JOBSZ  TUS CZUFT CZUFBSSBZ MJTUPGJOU <  >

Slide 96

Slide 96 text

$PNNPO&SSPS )BOEMJOH try: parse_data() except Exception as e: print(e)

Slide 97

Slide 97 text

7BMVF&SSPS s = input("Give me a number: ") try: n = int(s) print(s, "^2 =", n * n) except ValueError: print(s, "is not a valid number") 97

Slide 98

Slide 98 text

'JMF/PU'PVOE&SSPS try: fobj = open("readme.txt", "r") print(fobj.read()) fobj.close() except FileNotFoundError: print("File 'readme.txt' not found") 98

Slide 99

Slide 99 text

5ZQF&SSPS s = input('Give me a number: ') print("ready for an error?") print(s + 5) 99

Slide 100

Slide 100 text

*OEFY&SSPS months = ("Jan Feb Mar Apr May Jun Jul " + "Aug Sep Oct Nov Dec").split(" ") try: m = int(input("Which month? ")) print("Month #" + str(m) + " is " + months[m - 1]) except ValueError: print("Not a valid integer") 100

Slide 101

Slide 101 text

,FZ&SSPS data = { "name": "Lightning", "type": "Pet", "age": 5, "weight": 18 } while True: column = input("Which column? ") if not column: break print(data[column]) 101

Slide 102

Slide 102 text

;FSP%JWJTJPO&SSPS print("Input some numbers") s, n = 0, 0 while True: m = input() if not m: break s += int(m) n += 1 print("Avg = " + str(s / n)) 102

Slide 103

Slide 103 text

*T"%JSFDUPSZ&SSPS fobj = open('this-is-directory', 'r') # 玱ྋ䨝㽆梊藮牧獵ӥጱ纷ୗ嘨፜ኼ 103

Slide 104

Slide 104 text

$47 $PNNB4FQBSBUFE7BMVFT 鸊贫ⴕꥬ须俲

Slide 105

Slide 105 text

$47 Name,Age,Score Quentin,23,79 Marti,24,54 Avelina,19,51 Gayle,24,49 Kimiko,18,64 Chara,18,51 April,19,40 Alina,24,86 105

Slide 106

Slide 106 text

$478SJUFS3FBEFS import csv, sys try: filename = sys.argv[1] fobj = open(filename, 'w') writer = csv.writer(fobj) writer.writerow(['Name', 'Age']) writer.writerows([['lady gaga', 28], ['linroex', 19]]) fobj.close() except IndexError: print("Usage: python3 " + sys.argv[0] + " output.csv") 106

Slide 107

Slide 107 text

$478SJUFS3FBEFS import csv, sys try: filename = sys.argv[1] fobj = open(filename, 'r') reader = csv.reader(fobj) skip_first_line = True for row in reader: if skip_first_line: skip_first_line = False continue print(row) fobj.close() except IndexError: print("Usage: python3 " + sys.argv[0] + " output.csv") except FileNotFoundError: print("File not found -> " + filename) 107

Slide 108

Slide 108 text

$MBTTBOE0CKFDU ˙ $MBTTˋ겳ⴽ ˙ 鏤鎙㕬䒊眡话㕬 ˙ .FUIPEˋ倰岁㿂倴暟⟝涸ⴅ䒭 ˙ 0CKFDUˋ暟⟝ ˙ 㻜넓欴ㅷ覈ⴀ⢵涸䒊眡暟 ˙ "UUSJCVUFˋ㿂䚍꣡⸈倴暟⟝涸须俲 108

Slide 109

Slide 109 text

$MBTTBOE0CKFDU 109 def FirstClass: def __init__(self, name): print('Hi, %s' % name) first_object = FirstClass('Inndy') print(first_object)

Slide 110

Slide 110 text

$MBTTBOE0CKFDU 110 def FirstClass: def __init__(self, name): print('Hi, %s' % name) def leaving(self): print('Bye, %s' % self.name) obj = FirstClass('Inndy') obj.leaving() print(obj)

Slide 111

Slide 111 text

$MBTTBOE0CKFDU class Animal: def __init__(self, name, sound = None): self.name = name self.sound = sound def say_hi(self): if self.sound == None: print("Hi, I'm " + self.name) else: print(self.name, ":", self.sound * 7) cat = Animal("Cat", "meow~") # init cat.say_hi() cat.sound = None cat.say_hi() 112