--- title: HW3 tags: dataframe --- <style> .green { padding: 0 2px; white-space: pre-line; border-radius: 2px; background-color: #CCFF99;} .red { padding: 0 2px; white-space: pre-line; border-radius: 2px; background-color: #FFA488;} .blue { padding: 0 2px; white-space: pre-line; border-radius: 2px; background-color: #77DDFF;} .purple { padding: 0 2px; white-space: pre-line; border-radius: 2px; background-color: #D1BBFF;} </style> # `HW3重點小整理:` ### **寫下第⼀隻Python程式** 算法一:我寫的 ```python lst = [1, 2, 3, 4, 5, 6, 7, 8, 9] nOdd=0 nEven=0 for i in range(1,10,2): nOdd=nOdd+i for i in range(0,10,2): nEven=nEven+i print('奇數總和={0},偶數總和={1}'.format(nOdd,nEven)) ``` 算法二:老師寫的 ```python lst = [1, 2, 3, 4, 5, 6, 7, 8, 9] nOdd=0 nEven=0 for 1 in 1st : if 1%2 ==0: nEven=nEven+ 1 else: nOdd=nOdd+ 1 print('奇數總和={0},偶數總和={1}'.format(nOdd,nEven)) ``` 算法三: ```python lst = [1, 2, 3, 4, 5, 6, 7, 8, 9] print ('奇數總和={0},偶數總和={1}'.format(sum(lst[::2]),sum(lst[1::2]))) ``` ::: info lst[a : b : c] -> 起點lst[a], 終點 lst[b], 間隔 c lst[ : : 2] -> 起點lst[0], 終點 lst[-1] (-1 表最後一個), 間隔 2 -> lst[0], lst[2], lst[4], lst[6], lst[8] lst[1 : : 2] -> 起點lst[1], 終點 lst[-1], 間隔 2 -> lst[1], lst[3], lst[5], lst[7] ::: > 這三種算法,我覺得都可以,以電腦算法來說,都會想要越快越好。 > `法一`: 需要跑兩次 for > `法二`: 需要跑一次 for > `法三`: 我不確定會不會比較快,但比較簡潔。 ### **試利⽤迴圈撰寫出⼀程式可計算出 n! 的值** > 註:n! = n*(n-1)*(n-2)...*1 (e.g. 5!=5*4*3*2*1) ```python n = int(input('請輸入一個正整數:')) sum = 1 for i in range(1, n + 1): sum *= i print(n,"!","=" ,format(sum)) ``` > 數值型態:int ### **試利⽤巢狀迴圈(nest for)撰寫九九乘法表** ```python for i in range(1, 10, 1): for j in range(1, 10, 1): print(i, 'x', j, '=', i*j) ``` ### **試寫出⼀個函式,該函式可以將字串(string)反轉** ```python def str_reverse(input_str): return input_str[::-1] str1='1234abcd' str2=str_reverse(str1) print('原來的字串:{0}\n反轉後的字串:{1}'.format(str1, str2)) ``` ### **試寫⼀個函式,該函式接受⼀個串列(list),並返回⼀個沒有重複項⽬(item)的新串列(list)** ```python lst1 = [1,2,3,3,4,4,4,5,6,6] lst2 = list(set(lst1)) print('原來的串列:{0}\n去除重複項目以後的串列:{1}'.format(lst1, lst2)) ``` > <span class="green">查找 set 的意思</span> > 數組的概念 -> 看裡面有幾個不同的數 > set([1, 2, 5, 5]) = [1, 2, 5]