羅
羅左欣 8 years ago
補充資料 (必看)
(1) http://ripple0129.blogspot.tw/2014/07/python-sysargv.html
羅
羅左欣 8 years ago
這個我用了超久....XD
- 20150929 [KUASITC] Python社課筆記(1)
- [ 筆記內容 ] 簡易計算機
- [ 範例程式 ] GitHub
- (一)基本概念
- 1. 程式變數的型態
- 2. 程式流程的控制
- (二)課堂上的題目
- STEP_1 : 計算平均值
- STEP_2 : 利用平均值來計算標準差
- [ 範例 ] 取得數字 1 ~ 5 的標準差
- STEP_3 : 把使用者輸入的資料變成 list
- (1) sys.argv
- (2) list.append
- (3) range( number )
- STEP_4 : 計算結果後輸出 (待補充)
- [ 範例 ] 提供使用者輸入數字,計算標準差
- < 輸出結果 >
(一)基本概念
# lesson_1_(1).py
a = 1 # type of a is "int"
print(type(a))
b = 2.0 # type of b is "float"
print(type(b))
c = '3' # type of c is "str"(String)
print(type(c))
# list
d = range(10) # type of d is "range"(List)
print(d)
print(type(d))
# 使用範例
'''
array = [ 'one', 'two', 'three' ]
print( len( array ) ) # array陣列的長度為"3"
'''
# lesson_1_(2).py
a = 0
result = ''
#-------判斷區域-------
if a == 0:
result = ' a is zero !' # 因為"a"是"0",所以會顯示這一行
elif a == 1:
result = ' a is one !'
else:
result = ' a is not 0 or 1 !'
#--------簡寫法-------------
'''
# 連續三個單引號用在多行註解
a = 0
b = 'a is zero' if a == 0 else 'a is not zero'
'''
#---------------------
print( result )
# lesson_1_(3).py
#----- for 迴圈 -----
for i in range( 5 ):
print( i )
#----- while 迴圈 -----
i = 0
while i < 5:
print( i )
i = i + 1
# 使用範例
'''
animals = [ '小貓', '小雞', '小狗' ]
for little_animal in animals:
print( little_animal )
'''
(二)課堂上的題目
# lesson_1_STEP_1.py
# STEP_1:計算平均值
# 我們在這裡以取得1~5數字的平均值為例:
#------------STEP_1:計算平均值(副程式START)------------
def calc_mean( numbers ): # 取得平均值
count_m = float( len(numbers) ) # "len()":計算陣列的元素數量
total_m = 0
for number in numbers:
total_m = total_m + number
mean = total_m/count_m
return mean
#---------------END_STEP_1(副程式END)----------------
print( calc_mean( [1, 2, 3, 4, 5]) ) # 輸出計算結果
# lesson_1_STEP_2.py
# STEP_2:計算標準差
# 我們在這裡以取得1~5數字的標準差為例:
#----<全域變數區域>----
mean = 0 # 平均值
add = 0 # 差值平方的累加
total = 0 # 差值平方總和除以數字數量
squart = 0 # 開根號後的結果
#------------計算平均值START------------
def calc_mean( numbers ): # 取得平均值
global mean
count_m = float( len(numbers) )
total_m = 0
for number in numbers:
total_m = total_m + number
mean = total_m/count_m
return mean
#---------------END----------------
#------------STEP_2:計算標準差---------------
# 利用平均值來計算標準差
# (1)把每個數值和平均值相減,差值平方並累加
def calc_add( numbers ):
global add # 引用全域變數
global mean
for number in numbers:
add = add + (number - mean)**2
return add
# (2)把累加的差值平方總和除以輸入的數字數量
def calc_total( numbers ):
global total
total = add/float(len(numbers))
return total
# (3)將結果開根號
def calc_squart():
global squart
squart = total**(0.5)
return squart
#---------------END_STEP_2----------------
calc_mean( [1, 2, 3, 4, 5] )
calc_add( [1, 2, 3, 4, 5] )
calc_total( [1, 2, 3, 4, 5] )
print(calc_squart()) # 輸出計算結果
# lesson_1_STEP_2_2.py
# STEP_2:計算標準差
# 我們在這裡以取得1~5數字的標準差為例:
#------------STEP_2:計算標準差---------------
def calc_STEP_2( numbers ):
total_m = 0
add = 0
count = float( len(numbers) ) # 取得陣列元素的數量
# (1)算出平均值
for number in numbers:
total_m = total_m + number
mean = total_m / count
# (2)把每個數值和平均值相減,差值平方並累加
for number in numbers:
add = add + (number - mean)**2
# (3)把累加的差值平方總和除以輸入的數字數量
total = add / count
# (4)將結果開根號
squart = total**(0.5)
return squart
#---------------END_STEP_2----------------
print(calc_STEP_2( [1, 2, 3, 4, 5]) ) # 輸出計算結果
# lesson_1_STEP_3_1.py
array = [ 'Come with me' ]
print( array )
array.append( 'Hey !' )
print( array )
# lesson_1_STEP_3_2.py
a = list( range( 5 ) ) # a = [0, 1, 2, 3, 4]
# 從"0"開始顯示,到"5"就會結束,所以顯示到"4"
b = list( range( 2, 7 ) ) # b = [2, 3, 4, 5, 6]
# 從"2"開始,到"7"就會結束,所以顯示到"6"
c = list( range( 0, 10, 2 ) ) # c = [0, 2, 4, 6, 8]
# 從"0"開始,到"10"就會結束,而且間隔為"2" (所以會顯示"0","2","4","6","8")
print(a)
print(b)
print(c)
# lesson_STEP_4.py
# STEP_4:計算結果後輸出
# 提供使用者輸入數字的功能;如果沒有輸入數字,就會顯示:Please input numbers
import sys # 匯入"sys"模組(載入命令列)
#------------(副程式)計算標準差---------------
def calc_STEP_2(numbers):
total_m = 0
add = 0
count = float(len(numbers)) # 取得陣列元素的數量
for number in numbers: # (1)算出平均值
total_m = total_m + float(number)
mean = total_m / count
for number in numbers: # (2)把每個數值和平均值相減,差值平方並累加
add = add + (float(number) - mean) ** 2
total = add / count # (3)把累加的差值平方總和除以輸入的數字數量
squart = total ** (0.5) # (4)將結果開根號
return squart
#---------------END_STEP_2----------------
#------------(主程式)處理命令列參數---------------
# 先判斷sys.argv[]是否有參數? (要排除"sys.argv[0]")
# 如果有,將該參數附加存入陣列內
array = list()
lenth = int(len(sys.argv)) # 判斷"sys.argv"的長度
# for 迴圈是以"tab"為縮排,
# 縮排內都是它的執行範圍
if lenth >= 2:
for argv in sys.argv[1:]: # 從"sys.argv[1]"開始
array.append(argv) # 有'Tab'縮排(迴圈範圍)
print(calc_STEP_2(array)) # 執行副程式 # 無'Tab'縮排(非迴圈範圍)
else:
print('Please input numbers')
#------------------------END-------------------------