---
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]