發表文章

python 讀取健保IC卡資訊

圖片
關於讀取健保IC卡資訊並非只有 python 才能寫,像是 c/c++、java、c#等等...都應該可以讀取,本篇因為用到 APDU 的指令,如何使用,小弟也正在研究中,之所以會想寫這篇,正是心血來潮突然想來玩玩讀卡機,目前市面上很多種讀卡機RFID、或者是NFC....,類似的讀卡機其實可以衍申很多種應用程式,例如我們可以利用讀卡機開發門禁考勤系統、POS收營系統、悠遊卡扣款系統、或者是點名報到系統,而類似超商使用的悠遊卡讀卡機一般人未必會擁有,但有一種機器肯定是每個人都會有的那就是 "EZ100PU",自從學習 python 第一天開始,便從 web 延伸接觸底層開發,這兩年中不知不覺已經摸超過百種設備,但這項最簡單的設備,卻竟然我一直沒去注意過,所以,寫下筆記,就讓我利用 python 來玩玩 EZ100PU 讀健保IC卡。 本環境如下 acer NB WINDOWS 7 PRO python 2.7 swigwin-3.0.12 (請上網下載並記得放在C底下並在環境設定裡加入路徑) pyscard-1.9.6.tar (解壓縮後就到該目錄底下並下指令python setup.py install) 範例程式 from smartcard.System import readers                                                                         ...

PHP 利用wake on lan 喚醒電腦

這是非常好用的工具,對於系統維護管理很便利,目前的電腦主機板均都支援網路喚醒開機,這次用PHP簡單寫一個程式來喚醒電腦主機,萬一主機因為停電、或者是癱瘓了,還可以利用wake on lan的方式來喚醒,前提是電腦主機板要設定好wake on lan。 index.php <?php mb_internal_encoding('UTF-8'); mb_http_output('UTF-8'); ob_start('mb_output_handler'); $_targets = array(      'ore-pc-1' => 'D8CB8AF1DBB4', ); ?> <html lang="ja"> <head>   <title>Wake On LAN</title>   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <h1>Wake On LAN</h1> <?php if (array_key_exists('pc', $_GET) && array_key_exists($_GET['pc'], $_targets)): ?>   <h2><?php echo h($_GET['pc']) ?>MagicPacket送出成功</h2>   <?php wake('255.255.255.255', $_targets[$_GET['pc']], 9); ?> <?php endif; ?> <ul> <?php foreach ($_targets as $name => $mac): ?>   <li><a href="?pc=<?php e...

Python 研究 - 基礎篇 2

for迴圈 >>> for i in range(len(name)): ...     print(name[i]) ... a s d f g rang為跌代器,range(10)相當於0-9。 本例子用for迴圈印出字串name裡的每一個字元。 while迴圈 >>> name='anthony' >>> while True: ...     if name=='anthony': ...             print('hello,anthony') ...             break ...     else: ...             print('error') ...             break ... hello,anthony 當條件為真實,執行此迴圈,本例while迴圈中加入判別,如果條件滿足則印出hello,anthony跳出迴圈(break用來跳出迴圈,不跳就會變成無窮迴圈),如果條件不滿足則印出error跳出迴圈 3.列表(list) 列表的表現形式:    name_list = ['akon','ak','cloris',12]                                ...

Python 研究 - 基礎篇

關於Python解釋器聲明和內容編碼: 在scripts的開頭必須聲明用什麼解釋器來執行程式碼和聲明編碼(Python3可以不用聲明內容編碼),Python解釋器在載入.py文件中的程式碼時,會對內容進行編碼(預設ascii),聲明如下:    #!/usr/bin/env python (linux環境下使用) # -*- coding:utf-8 -*-   常用編碼種類別:   ascii:美國標準訊息交換碼(8位)   unicode:萬國碼(至少16位),可以表示所有語言   utf-8:可以自動識別需要ascii或unicode編碼(節省空間)    註釋   單行註釋用#號表示,如下: #這一行被註釋   多行註釋用三個單引號(''' ''')或雙引號(""" """)表示,如下: ''' 多行註釋 多行註釋 ''' """ 多行註釋 多行註釋 """ 變 數 變數名要求: 只能用字母,下劃線和數字組成 第一個字元不能為數字 變數名要通俗易懂 聲明變數名的時候不能使用特殊關鍵字 (False,class,finally,is,return,None,continue,for,lambda,try ,True,def,from,nonlocal,while,  and,del,global,not,with,as,elif,if,or,yield,assert,else,import,pass,break,except,in,raise) 輸入:   輸入可以使用input(Python3)或raw_input(Python2.x)方法,用法如下: name=input('請輸入內容:') #Python3中用法 name=raw_input('請輸入內容:') #Python2.x中用法 資料類別型: 1.單值 數字:   整形(int):最大取值為2147483647(2**31-1)   長整型(long):最大取值為9223372036854775807(2**63-1)   浮點型(float):3....

Python 研究 - 有趣的 ** 用法

* 在 python 中,求餘數一樣是 %,求冪次則是 ** 例如要得到三的平方      3 ** 2 //為去除餘數,例如:5/2.0 的結果為 2.5,5//2.0 的結果為 2

Python 研究 - lambda 用法

Python 提供了一個簡易的 function define:lambda,用完即丟,不著痕跡。讓你實作出很簡單的 function ( 只處理一個運算式 )。 lambda param1, param2, ... : expression #其實就等於 def fun( param1, param2, ... ) :     return expression 其中的 expression 不能放 assignment,也就是這一行指令不能放=等號。因為,它就這麼簡單,別把它搞複雜化嘛~ Ex: def func(x, y, z):     return x + y + z #>>>  func(1, 2, 3) #>>>  6 func2 = lambda x,y,z : x+y+z #>>>  func2(1, 2, 3) #>>>  6 #也可以應用在 map  上 my_list = [1, 2, 3] map( lambda i: i * i, my_list ) #>>>  (1, 4, 9) lambda 在某些方面而言確實是很好用,但是也不能濫用,否則可能造成程式的可讀性降低。

Python 研究 - 字串格式化相關

Python 提供和 C 一樣的字串格式化用法可以參考下表 格式化字串時,所使用的 %d、%f、%s 等 與C語 言類似,之後使用%接上一個 tuple , 也就是範例中以 () 包 括的實字表示部份。一些可用的字串格式字列舉如下: %% 在字串 中顯示% %d 以10 進位整數方式輸出 %f 將浮點 數以10進位方式輸出 %e, %E 將浮點 數以10進位方式輸出,並使用科學記號 %o 以8進 位整數方式輸出 %x, %X 將整 數以16進位方式輸出 %s 使用 str() 將字串輸出 %c 以字元 方式輸出 %r 使用 repr() 輸 出字串