2017年7月19日 星期三

Python ê 基礎 -- 參數


參數(arguments) 是佇咧程式運行的時,順紲 phá-sù (pass) 程式使用的物件。伊的目的是欲予程式較有通伸勼。舉例來講,咱若寫程式來算檔案--裡有偌濟字,欲按怎寫較好用? 是伊寫予死佇程式--裡? 抑是另外用 input() 運行到一半才來請使用者回答? 這時,咱用參數上方便:

#!/usr/bin/python3
import sys
fn = sys.argv[1]
fh = open(fn)
all_lines = fh.readlines()
lines = 0
words = 0
for s in all_lines:
    lines = lines + 1
    words = words + len(s)
print("File %s has %d lines, %d words" % (fn, lines, words))

咱用 count-words.py 來共伊入去檔案,運行看覓咧:

$ python3 count-words.py 魔神仔.txt
File 魔神仔.txt has 36 lines, 1237 words


佇頂仔 ê 程式中央,咱先使用 import sys,來共 sys 這个 module --入來。因為咱欲使用伊來提著 arguments: sys.argv[1] 是踮程式名後頭一咧字,佇例--裡就是 "魔神仔.txt"。當然,我的電腦--裡有現成的 "魔神仔.txt" 檔案,伊就會共幾和幾字攏算好印--出來。

咱若欲換捌的檔案,毋免改程式,換參數就好,凊彩你改,比如: count-words.py my.txtcount-words.py yours.txt

咱轉來看 sys.argv[1]。1 佇遮代頭一咧參數。咱若有濟濟的參數咧? 就 2, 3, 4,.. 照順序排落去是 sys.argv[2],sys.argv[3],sys.argv[4],...。

sys.argv[0] 是程式伊家己,佇咱的例內底,是 "count-words,py"。

這寡參數,攏是以字串(Strings)的型態讀--入來 Python 个。讀--入來了後,你若是想欲共伊轉做个型態,愛家己轉,無 Python 會共你張講你寫毋著--去阿。比如講,你欲用數字,你會使用 int(),float() 來轉:

#!/usr/bin/python3
# Simple sum
import sys

a = float(sys.argv[1])
b = float(sys.argv[2])
c = a + b
print(c)

運行:

$ python3 sum.py 3 5.5
8.5


沒有留言:

佇 Linux 來看GPX 檔案

最近定定有戶外活動。使用𤆬路機 (GPS) 來記錄行過的路線。普通我記錄路線,攏是用手機仔抑是專門个𤆬路機,罕得用電腦來看。 毋過,"仙人拍鼓有時錯,跤步踏差啥人無"。有一擺我無細膩,袂記得共一擺活動的路線收煞起來,閣直接開始記錄下一擺的活動,按呢共幾落...