[爆卦]python判斷是否存在是什麼?優點缺點精華區懶人包

雖然這篇python判斷是否存在鄉民發文沒有被收入到精華區:在python判斷是否存在這個話題中,我們另外找到其它相關的精選爆讚文章

在 python判斷是否存在產品中有2篇Facebook貼文,粉絲數超過3,992的網紅台灣物聯網實驗室 IOT Labs,也在其Facebook貼文中提到, 機器學習識別特徵阻絕代測 上鏈回送監理資料庫防竄改 人臉辨識加酒精鎖阻酒駕 串區塊鏈上傳比對告警 2021-05-24社團法人台灣E化資安分析管理協會元智大學多媒體安全與影像處理實驗室 本文將介紹酒精防偽人臉影像辨識系統,結合了人臉辨識、酒精鎖以及區塊鏈應用,以解決酒駕問題,並透過監控系統避免...

 同時也有26部Youtube影片,追蹤數超過4萬的網紅吳老師教學部落格,也在其Youtube影片中提到,VBA到Python程式開發202101第7次上課 01_重點回顧與判斷檔案是否存在 02_判斷all存在與刪除與刪除all以外檔案 03_合併細節說明與檔案分割與取得檔名 04_新增SQLite資料庫資料表與欄位 05_SQL資料庫與建立資料表與欄位並新增資料 06_用Select語法查詢結果 ...

  • python判斷是否存在 在 台灣物聯網實驗室 IOT Labs Facebook 的精選貼文

    2021-05-29 18:18:27
    有 0 人按讚

    機器學習識別特徵阻絕代測 上鏈回送監理資料庫防竄改

    人臉辨識加酒精鎖阻酒駕 串區塊鏈上傳比對告警

    2021-05-24社團法人台灣E化資安分析管理協會元智大學多媒體安全與影像處理實驗室

    本文將介紹酒精防偽人臉影像辨識系統,結合了人臉辨識、酒精鎖以及區塊鏈應用,以解決酒駕問題,並透過監控系統避免代測狀況發生。且利用區塊鏈不可修改的特性,將車輛與人臉資料串上區塊鏈,以確保駕駛人的不可否認性。

    長長期以來「酒駕」都是一個很嚴肅且必須被重視的議題,儘管在2019年立法院修法酒駕及拒絕酒測的罰則,但是抱持僥倖心態的人還是數不勝數,導致因酒駕釀成車禍的悲劇還是一再重演,讓不少的家庭因此破滅。

    據統計,從2015年到2018年的酒駕取締件數都逾10萬件,而因為酒駕車禍的死亡人數逾百人。在2019年酒駕新制上路以後,2020年警方酒駕取締件數有明顯下降至約6萬件,雖然成功達到嚇阻效果,但是死亡人數仍與去年前年持平,可見離完全遏止酒駕還有很長的路需要努力。

    立法院於2018年三讀通過了「道路交通管理處罰條例部分條文修正案」,酒駕者必須重新考照,並且只能駕駛具有酒精鎖(Alcohol Interlock)的車輛,所謂酒精鎖,屬於車輛點火自動鎖定裝置,在汽車發動前必須進行酒測,通過才能將汽車發動,而且在每45分鐘至60分鐘後酒精鎖系統就會要求駕駛人在一定時間內進行重新酒測,以便防範在行車過程中有飲酒的情況發生,若駕駛人未遵守其要求,車子就會強制熄火並鎖死,必須回酒精鎖服務中心才能將鎖解開。

    由於法案的方式無法完全遏止酒駕,因此許多創新科技或是企業致力於研究相關科技來解決酒駕的問題。

    其中本田(Honda)汽車與日立(Hitachi)公司研發出手持型酒精含量檢測裝置,讓駕駛人必須在駕駛之前都先進行酒測,若酒精濃度超標就會將汽車載具上鎖,藉此避免酒駕意外或事故發生,且該技術結合了智慧鑰匙功能,若偵測到酒測值超標,車輛中的顯示面板將會發出警告訊號告知駕駛人,避免酒駕上路之問題。

    另一方面則是解決酒精殘值之問題,因為有許多駕駛人都會認為,休息一下後,身體也無感到不適,即駕車出門,等到駕駛人被警方臨檢時才知道酒測未通過,因此收到罰單,甚至是吊銷駕照處罰等。

    根據醫學研究指出,酒精是在人體體內由肝臟代謝,實際代謝時間必須看體質以及飲酒量而定。台灣酒駕防制社會關懷協會建議,喝酒後至少要10至20小時後再駕車比較安全。多數人無具備酒精代謝時間的觀念,導致駕駛人貿然上路,待意外發生或罰單臨頭時,已經為時已晚。

    背景知識說明

    本文介紹的方法為酒精鎖結合攝影鏡頭進行人臉辨識,並將人臉特徵資料與車輛資料串上區塊鏈,並利用區塊鏈不可篡改的特性,來避免駕駛人在解鎖酒精鎖時發生他人代測的問題。

    由於人臉辨識技術具備防偽性、身分驗證的特性,因此將酒精鎖的技術結合人臉辨識,便可確認為駕駛本人。

    何謂人臉辨識

    人臉辨識技術屬於生物辨識的一種,基於人工智慧、機器學習、深度學習等技術,將大量人臉的資料輸入至電腦中做為模型訓練的素材,讓電腦透過演算法學習人類的面部特徵,藉以歸納其關聯性最後輸出人臉的特徵模型。

    目前人臉辨識技術已經遍佈在日常生活之中,其應用面廣泛,最為常見的應用即為智慧型手機的解鎖、行動支付如LINE Pay、Apple Pay等,其他應用還包括行動網路銀行、網路郵局、社區大樓門禁管理系統、企業監控系統、機場出入關、智能ATM、中國天眼系統等。一般來說,人臉辨識皆具備以下幾個特性:

    ‧ 普遍性:屬於任何人皆擁有的特徵。

    ‧ 唯一性:除本人以外,其他人不具相同的特徵。

    ‧ 永續性:特徵不易隨著短時間有大幅的改變。

    ‧ 方便性:人臉辨識容易實施,設備容易取得,如相機鏡頭。

    ‧ 非接觸性:不須直接接觸儀器,也可以進行辨識,這部分考量到衛生問題以及辨識速度。

    人臉辨識透過人臉特徵的分析比對進行身分的驗證,別於其他生物辨識如虹膜辨識、指紋辨識,無須近距離接觸,也可以精準地辨識身分,且具有同時辨識多人的能力。因應新冠肺炎疫情肆虐全球,人臉辨識技術也被用來管理人來人往的人流。人臉辨識的儀器可以搭配紅外線攝影機來測量人體體溫,在門禁進出管制系統中,利於提高管理效率,有效掌握到進出人員的身分,以及幫助衛生福利部在做疫調時更容易掌握到確診病患行經的足跡。

    人臉辨識的步驟

    人臉辨識的過程與步驟,包括人臉偵測、人臉校正、人臉特徵值的摘取,進行機器學習與深度學習、輸出人臉模型,從影像中先尋找目標人臉,偵測到目標後會將人臉進行預處理、灰階化、校正,並摘取特徵值,接著人臉資料交給電腦進行機器學習與深度學習運算,最後輸出已訓練好的模型。相關辨識的步驟,如圖1所示。

    人臉偵測

    基於Haar臉部檢測器的基本思想,對於一個一般的正臉而言,眼睛周圍的亮度較前額與臉頰暗、嘴巴比臉頰暗等其他明顯特徵。基於這樣的模式進行數千、數萬次的訓練,所訓練出的人臉模型,其訓練時間可能為幾個小時甚至幾天到幾周不等。利用已經訓練好的Haar人臉特徵模型,可以有效地在影像中偵測到人臉。

    Python中的Dilb函式庫提供了訓練好的人臉模型,可以偵測出人臉的68個特徵點,包括臉的輪廓、眉毛、眼睛、鼻子、嘴巴。基於這些特徵點的資料就能夠進行人臉偵測,如圖2~4所示。圖中左上角的部分是偵測到的分數,若分數越高,代表該張影像就越可能是人臉,右側括弧中的編號代表子偵測器的編號,代表人臉的方向,其中0為正面、1為左側、2為右側。

    人臉的預處理

    偵測到人臉後,要針對圖片進行預處理。通常訓練的影像與攝影鏡頭拍出來的照片會有很大的不同,尤其會受到燈光、角度、表情等影響,為了改善這類問題,必須對圖片進行預處理以減少這類的問題,其中訓練的資料集也很重要:

    ‧ 幾何變換與裁剪:將影像中的人臉對齊與校正,將影像中不重要的部分進行裁切,並旋轉人臉,並使眼睛保持水平。

    ‧ 針對人臉的兩側用直方圖均衡化:可以增強影像中的對比度,可以改善過曝的影像或是曝光不足的問題,更有效地顯示與取得人臉目標的特徵點。

    ‧ 影像平滑化:影像在傳遞的過程中若受到通道、劣質取樣系統或是受到其他干擾導致影像變得粗糙,藉由使用圖形平滑處理,可以減少影像中的鋸齒效應和雜訊。

    人臉特徵摘取

    關於人臉特徵摘取,相關的技術說明如下:

    ‧ 歐式距離:人臉辨識是一個監督式學習,利用建立好的人臉模型,將測試資料和訓練資料進行匹配,最直觀的方式就是利用歐式距離來計算所有測試資料與訓練資料之間的距離,選擇差距最小者的影像作為辨識結果。由於人臉資料過於複雜,且需要大量的訓練集資料與測試集資料,會導致計算量過大,使辨識的速度過於緩慢,因此需要透過主成分分析法(Principal Components Analysis,PCA)來解決此問題。

    ‧ 主成分分析法:主成分分析法為統計學中的方法,目的是將大量且複雜的人臉資料進行降維,只保留影像中的主成分,即為影像中的關鍵像素,以在維持精確度的前提下加快辨識的速度。先將原本的二維影像資料每列資料減掉平均值,並計算協方差矩陣且取得特徵值與特徵向量,接著將訓練集與測試集的資料進行降維,讓新的像素矩陣中只保留主成分,最後則將降維後的測試資料與訓練資料做匹配,選擇距離最近者為辨識的結果。由於影像資料經過了降維的步驟,因此人臉辨識的速度將會大幅度地提升。

    ‧ 卷積神經網路:卷積神經網路(Convolutional Neural Network,CNN)是一種神經網路的架構,在影像辨識、人臉辨識至自駕車領域中都被廣泛運用,是深度學習(Deep Learning)中重要的一部分。主要的目的是透過濾波器對影像進行卷積、池化運算,藉此來提取圖片的特徵,並進行分類、辨識、訓練模型等作業。在人臉辨識的應用中,首先會輸入人臉的影像,再透過CNN從影像提取像素特徵並轉換成特定形式輸出,並用輸出的資料集進行訓練、辨識等等。

    何謂酒精鎖

    酒精鎖(圖5)是一種裝置在車輛載體中的配備,讓駕駛人必須在汽車發動前進行酒測,通過後才能將車輛發動。且每隔45分鐘至60分鐘會發出要求,讓駕駛人在時間內再次進行檢測。

    根據歐盟經驗,提高罰款金額以及吊銷駕照只有在短期實施有效,只有勸阻的效果,若在執法上不夠嚴謹,被吊照者會轉變成無照駕駛,因此防止酒駕最有效的方法就是強制讓駕駛人無法上路,這就是「酒精鎖」的設計精神。

    在本國2020年3月1日起酒駕新制通過後,針對酒駕犯有了更明確且更嚴厲的規定,在酒駕被吊銷駕照者重考後,一年內車輛要裝酒精鎖,未通過酒測者無法啟動,且必須上15小時的教育訓練才能重考,若酒駕累犯三次,要接受酒癮評估治療滿一年、十二次才能重考。

    許多民眾對於「酒精鎖」議論紛紛,懷疑是否會發生找其他人代吹酒精鎖的疑慮,為防範此問題,酒精鎖在啟動後的五分鐘內重新進行吹氣,且汽車在行駛期間的每45至60分鐘內,便會隨機要求駕駛重新進行酒測,如果沒有通過測量或是沒有測量,整合在汽車智慧顯示面板的酒精鎖便會發出警告,並勸告駕駛停止駕車。

    對於酒精鎖的實施,目前無法完全普及到每一台車子,而且對於沒有飲酒習慣的民眾而言,根本是多此一舉,反而增加不少麻煩給駕駛。若還有每45~60分鐘的隨機檢測,會導致多輛汽車必須臨時停靠路邊進行檢測,可能加劇汽車違規停車的發生頻率。

    認識區塊鏈

    區塊鏈技術是一種不依賴於第三方,透過分散式節點(Peer to Peer,P2P)來進行網路數據的存儲、交易與驗證的技術方法。本質上就是一個去中心化的資料庫,任何人在任何時間都可以依照相同的技術標準將訊息打包成區塊並串上區塊鏈,而這些被串上區塊鏈的區塊無法再被更改。區塊鏈技術主要依靠了密碼學與HASH來保護訊息安全,也是賦予區塊鏈技術具有高安全性、不可篡改性以及去中心化的關鍵。區塊鏈相關概念,如圖6所示。

    區塊鏈的原理與特性

    可以將區塊鏈想像成是一個大型公開帳本,網路上的每個節點都擁有完整的帳本備份,當產生一筆交易時,會將這筆交易廣播到各個節點,而每個節點會將未驗證的交易HASH值收集至區塊內。接著,每個節點進行工作量證明,選取計算最快的節點進行這些交易的驗證,完成後會把區塊廣播給到其他節點,其他節點會再度確認區塊中包含的交易是否有效,驗證過後才會接受區塊並串上區塊鏈,此時就無法再將資料進行篡改。

    關於區塊鏈的特性,可分成以下四部分做說明:

    1. 去中心化:區塊鏈其中一個最重要的核心宗旨,就是「去中心化」,區塊鏈採用分散式的點對點傳輸,該概念架構中,節點與節點之中沒有所謂的中心,所有的操作都部署在分散式的節點中,而無須部署在中心化機構的伺服器,一筆交易或資料的傳輸不再需要第三方的介入,因此又可以說每個節點就是所謂的「中心」。這樣的結構也加強了區塊鏈的穩定性,不會因為其中的部分節點故障而癱瘓整個區塊鏈的結構。

    2. 不可篡改性:透過密碼學與雜湊函數的運用來將資料打包成區塊並上鏈,所有區塊都有屬於它的時間戳記,並依照時間順序排序,而所有節點的帳本資料中又記錄了完整的歷史內容,讓區塊鏈無法進行更改或是更改成本很高,因此使區塊鏈具備「不可篡改性」,並且同時確保了資料的完整性、安全性以及真實性。

    3. 可追溯性:區塊鏈是一種鏈式的資料結構,鏈上的訊息區塊依照時間的順序環環相扣,這便使得區塊鏈具有可追溯的特性。可追本溯源的特性適用在廣泛的領域中,如供應鏈、版權保護、醫療、學歷認證等。區塊鏈就如同記帳帳本一般,每筆交易記錄著時間和訊息內容,若要進行資料的更改,則會視為一筆新的交易,且舊的紀錄仍會存在無法更動,因此仍可依照過去的交易事件進行追溯。

    4. 匿名性:在去中心化的結構下,節點與節點之間不分主從關係,且每個節點中都擁有一本完整的帳本,因此區塊鏈系統是公開透明的。此時,個人資料與訊息內容的隱私就非常重要,區塊鏈技術運用了HASH運算、非對稱式加密與數位簽章等其他密碼學技術,讓節點資料在完全開放的情況下,也能保護隱私以及用戶的匿名性。

    區塊鏈與酒精鎖

    由於區塊鏈的技術具備去中心化、記錄時間以及不可篡改的特性,且更加強酒精鎖的檢測需要身分驗證的保證性。當進行酒精鎖檢測解鎖時,系統記錄駕駛人吹氣時間以及車輛的相關資訊,還有人臉特徵資料打包成區塊並串上區塊鏈。因此,在同一時間當監控系統偵測到當前駕駛人與吹氣人不同時,此時區塊鏈中所記錄的資料便能成為一個強而有力的依據,同時也能讓其他的違規或違法事件可以更容易進行追溯。

    酒駕防偽人臉辨識系統介紹

    為了解決酒精鎖發生駕駛人代測的問題,酒精鎖產品應導入具有身分驗證性的人臉辨識技術。酒駕防偽人臉辨識系統即為駕駛人在進行酒精鎖解鎖時,要同時進行人臉辨識,來確保駕駛人與吹氣人為同一人。

    在駕駛座前方的位置會安裝攝影鏡頭,作為駕駛的監控裝置。進行酒測吹氣的人臉資料將會輸入到該系統中的資料庫儲存,並將人臉資料以及酒測的時間戳記打包成區塊串上區塊鏈,當汽車已經駛動時,攝影鏡頭將會將當前駕駛人畫面傳回系統進行人臉比對驗證。如果驗證成功,會將通過的紀錄與時間戳一同上傳至區塊鏈,若是系統偵測到駕駛人與吹氣人為不同對象,系統將發出警示要求駕駛停車並重新進行檢測,並同時將此次異常的情況進行記錄上傳到區塊鏈中。

    如果駕駛持續不遵循系統指示仍持續行駛,該系統會將區塊鏈的紀錄傳送回給開罰的相關單位,並同時發出警報以告知附近用路人該車輛處於異常情況,應先行迴避。且該車輛於熄火後,酒精鎖會將車輛上鎖,必須聯絡酒精鎖廠商或酒精鎖服務中心才能解鎖。相關的系統概念流程圖,如圖7所示。

    區塊鏈打包上鏈模擬

    在進行酒測解鎖完畢以及進行人臉資料儲存後,會透過CNN將影像轉換輸出成128維的特徵向量作為人臉資料的測量值,接著將128個人臉特徵向量資料取出,並隨著車輛資訊一起打包到同一個區塊,然後串上區塊鏈。取出的人臉特徵資料,如圖8所示。

    要打包成區塊和上鏈的內容,包括了人臉特徵資料、車牌號碼、酒測解鎖時間點等相關輔助資料,接著透過雜湊函數將相關的資料打包成區塊。以車牌號碼ABC-1234為例,圖9顯示將車輛資料和人臉資料進行區塊鏈的打包,並進行HASH運算。

    將人臉資料和車輛相關資料作為一次的交易內容,並打包區塊,經過HASH後的結果如圖10所示,其中prev_hash屬性代表鏈結串列指向前一筆資料,由於這是實作模擬情境,並無上一筆資料,其中messages屬性代表內容數,一筆代表車牌資料,另一筆則為人臉資料。time屬性則代表區塊上鏈的時間點,代表車輛解鎖的時間點。

    情境演練說明

    話說小禛是一間企業的上班族,平時以開車為上下班的交通工具,他的汽車配置了酒駕防偽影像辨識系統,以下模擬小禛下班後準備開車的情境。

    已經下班的小禛今天打算從公司開車回家,當小禛上車準備發動車子時,他必須先拿起安裝在車上的酒測器進行吹氣,並將臉對準攝影鏡頭讓系統取得小禛的人臉影像。小禛在汽車發動前的人臉影像,如圖11所示。

    待攝影鏡頭偵測到小禛的人臉後,接著系統便會擷取臉上五官的68個特徵點,如圖12所示。然後,相關數據再透過CNN轉換輸出成128維的特徵向量作為人臉資料的測量值,如圖13所示。

    酒精鎖通過解鎖後,車輛隨之發動,解鎖成功的時間點將會記錄成時間戳記,隨著影像與相關資料串上區塊鏈。在行駛途中,設置在駕駛座前方的鏡頭將擷取目前駕駛的人臉,以取得駕駛人的128維人臉特徵向量測量值,並且與汽車發動前所存入的人臉資料進行比對,藉以判斷目前的駕駛人與剛才的吹氣人臉是否為同一位駕駛。當驗證通過後,也會再將通過的紀錄與時間戳上傳至區塊鏈中,如此一來,區塊鏈的訊息內容便完整記載了這一次駕車的紀錄,檢測通過的示意圖如圖14所示。

    系統通過辨識後,便確認了駕駛人的身分與吹氣人一致。且透過時戳的紀錄和區塊鏈的輔助,也確保了駕駛的不可否認性。若有其他違規事件發生時,區塊鏈的紀錄便成為一個強而有力的依據來進行追溯。

    如此一來,便可以預防小禛喝酒卻找其他人代吹酒測器的情況發生。在駕駛的途中,如果有需要更換駕駛人,必須待車輛靜止時,從車載系統發出更換駕駛要求,再重新進行酒測以及重複上述流程,才可以更換駕駛人。如果沒有按照該流程更換駕駛,系統將視為異常情況。

    結語

    酒駕一直是全球性的問題,將有高機率導致重大交通事故,造成人員傷亡、家庭破碎,進而醞釀後續更多的社會問題,皆是酒駕所引發的不良效益。為了解決酒駕的問題,各個國家都有不同的酒駕標準或是法律規範,但是大部分國家的規範和制度都只有嚇阻作用卻無法完全遏止。在不同的國家防止酒駕的方式不盡相同,有的國家如新加坡,透過監禁及鞭刑來遏止酒駕犯,又或者是薩爾瓦多,當發現酒駕直接判定死刑,這樣的制度雖嚇阻力極強,但是若讓其他國家也跟進,會造成違憲或是違反人權等問題。因此,各國都在酒駕的問題方面紛紛投入研究,想要達到零酒駕的社會。

    為達成此理想,本文介紹了基於區塊鏈的酒駕防偽辨識系統,利用酒精鎖搭配人臉辨識技術以及區塊鏈技術,使有飲酒的駕駛人無法發動汽車。且該系統搭載在行車電腦中,結合攝影鏡頭的監控對駕駛進行酒測防制管理,將人臉資料、酒精鎖、解鎖時間點與相關資訊打包成區塊並上鏈。基於區塊鏈技術內容的不易篡改,可加強駕駛人的不可否認性,當汽車發生異常情況時,便能利用有效且可靠的依據進行追溯。人工智慧和物聯網時代已經來臨,透過酒駕防偽辨識系統來改善酒駕問題,在未來能夠普及並結合法規,智慧汽車以及智慧科技的應用將會帶給人們更安全、更便利的社會。

    附圖:圖1 人臉辨識的步驟。
    圖2 人臉特徵點偵測(正臉)。
    圖3 人臉特徵點偵測(左側臉)。
    圖4 人臉特徵點偵測(右側臉)。
    圖5 酒精鎖。 (圖片來源:https://commons.wikimedia.org/wiki/File:Guardian_Interlock_AMS2000_1.jpg with Author: Rsheram)
    圖6 區塊鏈分散式節點的概念圖。
    圖7 系統概念流程圖。
    圖8 取出人臉128維特徵向量。
    圖9 儲存車輛相關資料及人臉資料到區塊。
    圖10 HASH後及打包成區塊的結果。
    圖11 汽車發動前小禛的人臉影像。
    圖12 小禛的人臉影像特徵點。
    圖13 小禛的人臉特徵向量資料。
    圖14 系統通過酒測檢測者與駕駛人為同一人。

    資料來源:https://www.netadmin.com.tw/netadmin/zh-tw/technology/CC690F49163E4AAF9FD0E88A157C7B9D

  • python判斷是否存在 在 李開復 Kai-Fu Lee Facebook 的最佳貼文

    2020-07-02 15:56:45
    有 475 人按讚

    分享好文,中學生要學電腦嗎?
    作者:創新工場CTO、人工智慧工程院執行院長 王詠剛

    文章来自半轻人微信公众号(ban-qing-ren)
    ………………………………

    朋友的孩子高中剛畢業,已拿到美國頂尖大學(非電腦專業)的錄取通知。疫情影響,不知何時才能去學校報到。孩子想抓緊學習一下程式設計,為大學打好基礎。這孩子找我聊了一個多小時,從如何學程式設計,聊到非電腦專業和電腦專業的路徑差異,又聊到如何從不同角度認識電腦與程式設計。聊得比較寬泛,不知是否對這孩子有用。

    回想我自己的高中時代:那時雖迷戀程式設計,卻完全沒有懂行的人指導。在我們那個四線城市的廠礦中學裡,開設電腦興趣課的老師知道的資訊還沒我多。我高一時跑到北京中關村逛街,卻完全沒意識到中國第一代頂尖程式師當時就在我身邊的低矮辦公樓裡寫代碼(這話說得並不準確,比如求伯君那年就主要是在珠海做開發),鼎鼎大名的UCDOS、WPS、CCED就出自他們之手……我在當時街邊的一家書店(位置似乎就在今天的鼎好大廈對面)買到了許多種印刷品質極低劣的電腦圖書。用今天的標準看,那就是一批盜版影印或未授權翻譯的國外圖書。可那批書竟成了我高中時代最寶貴的程式設計知識來源。

    顯然,我在高中時根本就是野路子學電腦。現在後悔也沒用,當時我的眼界或能觸及的資源就那麼多。如果能穿越回30年前,我該對喜歡程式設計的自己說些什麼呢?這些年,我與世界上最好的一批程式師合作過,也參與過世界上最有價值的軟體系統研發——我所積累的一些粗淺經驗裡,有哪些可以分享給一個愛程式設計的中學生?

    【問題1】中學生要不要學電腦?

    當然要!

    每個中學生都要學。只不過——建議大部分中學生使用“休閒模式”,小部分(不超過10%)中學生使用“探險模式”。

    啊?兩個模式?那我該進入哪個模式?⟹請跳轉至【問題2】

    【問題2】選哪個模式?

    你癡迷電腦嗎?比如,你玩遊戲時會特別想知道這遊戲背後的代碼是如何編寫的嗎?再比如,就算老師家長不同意你學電腦,甚至當著你的面把電腦砸了,你也要堅持學電腦嗎?如果是,恭喜你進入“探險模式”⟹請跳轉至【問題200】

    你對數學有興趣嗎?比如,你看到街邊建築的曲線,就會在腦子裡琢磨曲線對應的函數或方程嗎?每當手裡攥著幾粒骰子,你就會不由自主地計算概率嗎?如果是,歡迎進入“探險模式”⟹請跳轉至【問題200】;當然,如果有些猶豫,也可以先進入“休閒模式”⟹請跳轉至【問題100】

    即便你對電腦和數學興趣不大,家長、老師還是強烈建議你學電腦嗎?就算你一百個沒時間一千個不願意,家長、老師還是會逼著你學電腦嗎?如果是,建議你主動進入“休閒模式”並向家長、老師彙報說“我已經按照前谷歌資深軟體工程師的專業建議在認真學程式設計了”⟹請跳轉至【問題100】

    其他情況,一律進入“休閒模式”。⟹請跳轉至【問題100】

    【問題100】休閒模式 | 主要學什麼?

    “休閒模式”將電腦視為我們生活、工作中的必備工具,主要學習如何聰明、高效、優雅地使用計算設備。這裡說的計算設備,包括所有形式的電腦、手機、遊戲機、智慧家電以及未來一定會進入生活的自動駕駛汽車。

    什麼什麼?你已經會用電腦、會玩手機、會打遊戲了?別著急,慢慢往下看。

    【問題101】休閒模式 | 我會用搜尋引擎嗎?

    我知道你會用百度搜習題答案。但,習題答案不是知識。你會用搜尋引擎來搜索和梳理知識嗎?請試著用電腦和你喜歡的搜尋引擎來解決如下兩個問題:

    (1)圓周率𝜋的計算方法有多少種?每種不同的計算方法分別是由什麼人在什麼時代提出的?借助電腦,今天人們可以將圓周率𝜋計算到小數點後多少位?將圓周率𝜋計算到小數點這麼多位元,一次大概需要花掉多少度電?

    (2)全球大約有多少個廁所?在發展程度不同的國家,分別有多少比例的人可以享用安裝了抽水馬桶的衛生廁所?為什麼比爾·蓋茨曾大力推動一個設計新型馬桶的研發專案?比爾·蓋茨的公益組織在這個專案上大約花費了多少資金,最終收到了多大的效果?

    如果你沒法快速得到上述問題的全部答案,那就給自己設一個小目標:一個月內,學會用搜尋引擎系統地獲取、梳理一組知識點的全部技巧。

    【問題102】休閒模式 | 接下來學什麼?

    建議學好典型的工具軟體。比如,我知道你會用Office了,但用Office和用Office是很不一樣的。對生活、學習、工作來說,學好、學透一個工具軟體比鑽研程式設計技巧更實用。

     你會用Excel來管理班級公益基金的預算和實際收支情況嗎?
     你會用Excel做出過去20年裡全球大學排名的演變趨勢圖嗎?
     你會用Word排版一篇中學生論文嗎?論文中的圖表和最後的參考文獻部分該如何排版?
     你會用Word編排一份班級刊物,包含封面、扉頁、目錄、插圖頁、附錄、封底等部分,可以在列印後直接裝訂成冊嗎?
     PowerPoint呢?你有沒有研究過蘋果公司發佈會上那些幻燈片的設計?當約伯斯(多年以前)或蒂姆·庫克站在幻燈片前的時候,他們的演講思路是如何與幻燈片完美結合的?

    還有哦,別忘了學學如何為數碼照片做後期,如何用電腦或手機剪視頻,如何為剪輯好的視頻配字幕,如何將照片、音樂、視頻等素材結合起來,做出一段吸引人的快手/抖音短視頻。

    最後,抽空玩玩那些設計精妙的遊戲吧,比如《紀念碑穀》、《塞爾達傳說:曠野之息》之類;同時,遠離那些滿屏廣告,或者一心騙你在遊戲裡充值花錢的垃圾。

    【問題103】休閒模式 | 不學學知識嗎?

    當然要學知識。下面每種實用的電腦知識都夠大家學一陣子了。

    (1)色彩知識:你知道同一張數碼照片在不同品牌的手機螢幕上、不同的電腦螢幕上、不同的智慧電視上顯示時,為什麼經常有較大色差嗎?你知道有一些色彩只適合螢幕顯示,不適合列印輸出嗎?你知道軟體工具裡常用的RGB、HSL之類的色彩空間都是什麼意思嗎?如何在設計PowerPoint幻燈片時選擇一組和諧美觀的色彩?

    (2)字體知識:你知道什麼是襯線字體,什麼是無襯線字體嗎?你知道網頁中常用的英文字體都有哪些嗎?你知道商務演講時最適用于幻燈片的英文字體有哪些嗎?你知道電腦和手機常用的黑體、宋體、仿宋體、楷體等中文字體分別適合哪些實際應用場合嗎?你會將不同字體混排成一個美觀的頁面嗎?

    (3)網路知識:你知道5G是什麼嗎?你知道5G和4G在通信頻寬、通信距離上的具體區別嗎?你知道什麼是路由器,什麼是防火牆嗎?你知道如何配置路由器,如何配置防火牆嗎?微信或QQ聊天時,對方發的文字、語音或視頻是如何傳送到你的手機上的?

    (4)應用知識:淘寶中搜索得到的商品資訊是從哪裡來的?商品是按什麼方式排序的?為什麼購物APP經常會推薦給你一些曾經買過、看過的商品?你知道如何為自己建立個人網站嗎?你知道如何管理微信公眾號嗎?

    (5)安全知識:你知道網路上的釣魚攻擊是怎麼回事兒嗎?你知道什麼是電腦漏洞嗎?你知道駭客為什麼想把一大批受攻擊的電腦變成可以遠端操控的傀儡機嗎?你知道為什麼現在很多手機APP都要通過短信發送驗證碼嗎?如果驗證碼被壞人截獲,你會面臨哪些風險?

    這裡只是舉例。實用的電腦知識還有很多。大家可以自己發掘。

    【問題104】休閒模式 | 我需要學程式設計嗎?

    可以學,但不是必須。即便學,也只需要根據自己的需要,學那些最能幫你解決現實問題的部分。

    【問題105】休閒模式 | 我該學什麼程式設計語言?

    在“休閒模式”裡,電腦就是工具,程式設計也是工具,夠用就好。學什麼程式設計語言,完全看你想要電腦幫你做什麼。

    • 如果你想對資料處理有更多自主權,那不妨學學Python;
    • 如果你想做簡單的交互演示程式,那就先把JavaScript學起來;
    • 如果你想更好、更快地寫論文,那不妨學學LaTeX(什麼什麼,LaTeX不是程式設計語言?你太小看LaTeX了);
    • 如果你想學做簡單的手機APP,那麼,Android手機就學Java,蘋果手機就學Swift好了;
    • 如果你只想知道程式設計是怎麼回事,那……從Python或JavaScript開始就行。其實,跟五六歲的小朋友一起學學Scratch圖形程式設計也不錯。

    【問題106】休閒模式 | 我需要學人工智慧嗎?

    在“休閒模式”裡,最需要學的不是“人工智慧的實現原理”,而是“什麼是人工智慧”,以及“人工智慧能做什麼,不能做什麼”。

    • 在手機上試一試,人工智慧做語音辨識時能做到什麼水準?哪些話容易識別,哪些話不容易識別?
    • 打開機器翻譯軟體,試一試哪些資訊翻譯得好,哪些資訊翻譯得不好?
    • 手機上的拍照軟體一般都有人臉識別功能。試一試人臉識別在什麼場景下做得好,什麼場景下做得不好?
    • 找一部講人工智慧的科幻電影,用自己的判斷解讀一下,電影裡哪些技術有可能成為現實,哪些技術存在邏輯矛盾。

    【問題107】休閒模式 | 推薦什麼參考書、參考文獻?

    書不重要,豆瓣評分7分以上的電腦應用、程式設計甚至科普類圖書都可以拿來翻翻。

    直接在知乎裡搜索你想瞭解或學習的知識點可能更有效率。

    如果你意猶未盡,覺得自己剛活動開筋骨,還想挑戰更高層次,歡迎進入“探險模式”。⟹請跳轉至【問題200】

    否則,“休閒模式”到此結束。⟹請離開此問答

    【問題200】探險模式 | 主要學什麼?

    “探險模式”需要有挑戰精神。電腦科學的世界技術演進快,脈絡複雜,要想在探索時不迷路,你得通過有順序、有系統地學習電腦知識,慢慢構建出一張可以在未來幫你走得更遠的思維地圖來。

    在“探險模式”裡,電腦就不止是一件能快速計算的工具了。電腦更像是我們大腦的一種延伸。這既包括認知能力的延伸,也包括認知邏輯的延伸。隨著學習深入,大家會逐漸體會到電腦所具有的多維度能力:

     電腦是一種可以表示不同類型資訊(數、符號、文字、語音、圖像、視頻、虛擬空間、抽象邏輯)的“資訊管理機”;
     同時,電腦也是一種可以連續執行指令以完成特定的資訊處理任務的“指令處理機”;
     同時,電腦還是一種可以在知識與邏輯層面完成特定推理任務的“知識推理機”;
     同時,電腦也是一種可以從人類給定的資料或自我生成的資料中總結規律,建立模型,自主完成某些決策的“智慧學習機”。

    “探險模式”的目標就是盡可能準確地認識電腦,掌握有關電腦運行的最基本規律。有了這些基礎。未來在大學期間或工作中,你就能更容易地設計電腦軟硬體系統,或是設計出碳基大腦(人類)與矽基大腦(機器智慧)之間的最佳協作方案。

    【問題201】探險模式 | 我的英語水準足夠嗎?

    蘋果每年秋季的新品發佈會,不加字幕的話,你能聽懂多少?

     能聽懂大部分:建議在學習電腦的過程中,盡可能使用英文教材、英文文檔。
     能聽懂小部分:建議將原來準備學電腦的時間,分出一部分來學英語。
     只能聽懂“你好”“再見”之類:⟹請離開此問答。然後,把原來準備學電腦的時間用於學英語,六個月後再回來。

    【問題202】探險模式 | 我的數學水準足夠嗎?

     如果你是數學和數學應用小能手——較複雜的數學問題總能快速找到核心思路,或快速簡化為簡單問題;很容易就能將抽象概念映射到具體的數學圖形,或將數學問題與相應的現實問題關聯在一起:請繼續探險之旅。
     如果你應付正常數學課程感到吃力:建議將原來準備學電腦的時間,分出一部分來學數學。
     如果你還搞不清楚什麼是方程、函數、集合、概率……:⟹請離開此問答。然後,把原來準備學電腦的時間用於學數學,六個月後再回來。

    【問題203】探險模式 | 為什麼強調英語和數學?

    (1)統計上說,最好的電腦參考資料大都是英文寫的,最好的電腦課程大都是用英文講的,最新的電腦論文大都是用英文發表的。

    (2)函數、方程、坐標系、標量、向量、排列組合、概率這些中學數學裡會初步學習到的數學知識,是電腦科學的基礎。

    【問題204】探險模式 | 電腦知識那麼多,正確的學習順序是什麼?

    最重要的順序有兩個。建議先從順序一開始,學有餘力時兼顧兩個順序。

    順序一:自底向上,即,自底層原理向上層應用拓展的順序。

     電腦原理的基礎知識:
     為什麼每台電腦(包括手機)都有CPU、記憶體和外部設備?
     (馮·諾依曼體系結構的)記憶體中為什麼既可以存儲資料,也可以存儲指令?
     CPU是如何完成一次加法運算的?
     程式設計語言的基礎知識:
     資料類型,值,變數,作用域……
     語句,流程控制語句……
     過程、方法或函數,類,模組,程式,服務……
     編譯系統的基本概念:
     電腦程式是如何被解釋或編譯成目標代碼的?
     演算法和資料結構的基礎知識:
     陣列,向量,鏈表,堆,棧,二叉樹,樹和圖……
     遞迴演算法,排序演算法,二叉樹搜索演算法,圖搜索演算法……
     應用層的基礎知識:
     為什麼電腦需要作業系統?設備驅動程式是做什麼的?
     網路通信的基本原理是什麼?流覽器是怎麼找到並顯示一個網頁的?
     資料庫是做什麼用的?
     虛擬機器是怎麼回事?
     人工智慧系統的基礎知識:
     先熟悉些線性代數、概率和數學優化的基礎知識。
     什麼是機器學習?從簡單的線性回歸中體會機器學習的基本概念、基本思路。
     什麼是神經網路?什麼是深度神經網路?為什麼神經網路可以完成機器學習任務?
     如何使用PyTorch或TensorFlow實現簡單的深度學習功能?

    順序二:自頂向下,即,自頂層抽象邏輯向下層具體邏輯拓展的順序。

    • 電腦的本質是什麼?
    • 什麼是圖靈機?什麼是通用圖靈機?
    • 什麼是讀取﹣求值﹣輸出迴圈(Read–eval–print Loop,REPL)?
     如何用自頂向下的方式理解(解析、解釋、編譯)一段程式碼?
    • 靜態語言和動態語言的區別?
     如何理解變數與資料類型之間的綁定關係?
    • 什麼是函數式程式設計?
     程式設計語言中,函數的本質是什麼?
     函數為什麼可以像一個值一樣被表示、存儲、傳遞和處理?

    • 什麼是物件導向?
     類的本質是什麼?
     如何用物件導向的方式定義個功能介面?
     如何依據介面實現具體功能?
    • 什麼是事件驅動?
     什麼是事件?事件如何分發到接收者?
     如何在事件驅動的環境中理解代碼的狀態和執行順序?

    【問題205】探險模式 | 如何提高程式設計水準?

    在掌握基本知識體系的基礎上,學好程式設計只有一條路:多程式設計,多參加程式設計比賽,多做程式設計題,多做實驗項目,多找實習機會——其中,能參與真實專案是最有價值的。

    【問題206】探險模式 | 該從哪一門程式設計語言學起?

     我個人推薦的程式設計入門語言(可根據情況任選):
     Python
     Java
     Swift
     C#
     JavaScript / TypeScript
     Ruby
     ……
     可能不適合入門,但適合後續深入學習的語言:
     C
     C++
     Go

     Objective-C
     組合語言
     機器語言(CPU指令集)
     Shell Script
     Lua
     Haskell
     OCaml
     R
     Julia
     Erlang
     MATLAB
     ……

    【問題207】探險模式 | 如何選參考書和參考資料?

    (1)強烈推薦的參考書和參考資料:

    • MIT、Stanford、CMU、UC Berkeley這四所大學中任何一個電腦專業方向使用的教學參考書或參考資料。網上可以查到這些學校電腦專業方向的課程體系,有的學校甚至公開了課程視頻。其中往往會列舉參考書和參考資料連結。
    • 維琪百科(英文)上的數學、電腦科學相關條目。
    • Github上star數在1000以上的開原始程式碼和開來源文件。

    (2)強烈推薦但須小心辨別的參考資料:

     知乎上的數學、電腦科學相關條目。使用時需要格外注意三件事:
     儘量只看高贊答案或高贊文章;
     辨別並避開廣告軟文;
     辨別並避開純抖機靈的故事或段子。
     Stack Overflow上的程式設計問題解答:
     自己動手實驗,辨別解答是否有效。
     CSDN上的程式設計問題解答:
     自己動手實驗,辨別解答是否有效。

    (3)其他推薦的參考書和參考資料:

     國內專業作者寫作的專業技術書籍(豆瓣評分7分以上的)。
     大廠(Google、Facebook、Microsoft、Amazon、阿裡、騰訊、百度、頭條等)資深工程師的技術公號、專欄、博客等。

     著名圖書系列:如O’Reilly的動物封面的系列圖書(請注意最新版本和時效性)。
     國內翻譯的著名技術圖書(譯本在豆瓣評分7分以上的)。

    (4)儘量避免的參考書和參考資料:

    • 已經過時的圖書或參考資料。
    • 作者或譯者人數比章節數還多的專業圖書。
    • 百度百科上的數學或電腦科學相關資料。

    什麼什麼?你這篇問答居然沒有推薦一本具體的圖書?是,沒錯。如果你覺得即便有了上面的線索,自己還是找不到好書好資料,那也許你還是適合“休閒模式”⟹請跳轉至【問題100】

  • python判斷是否存在 在 吳老師教學部落格 Youtube 的最讚貼文

    2021-04-07 00:33:46

    VBA到Python程式開發202101第7次上課

    01_重點回顧與判斷檔案是否存在
    02_判斷all存在與刪除與刪除all以外檔案
    03_合併細節說明與檔案分割與取得檔名
    04_新增SQLite資料庫資料表與欄位
    05_SQL資料庫與建立資料表與欄位並新增資料
    06_用Select語法查詢結果

    完整教學
    http://goo.gl/aQTMFS

    吳老師教學論壇
    http://www.tqc.idv.tw/

    教學論壇(之後課程會放論壇上課學員請自行加入):
    https://groups.google.com/forum/#!forum/tcfst_python_2021_1

    課程簡介:入門
    建置Python開發環境
    基本語法與結構控制
    迴圈、資料結構及函式
    VBA重要函數到Python
    檔案處理
    資料庫處理
    課程簡介:進階
    網頁資料擷取與分析、Python網頁測試自動化、YouTube影片下載器
    處理 Excel 試算表、處理 PDF 與 Word 文件、處理 CSV 檔和 JSON 資料
    實戰:PM2.5即時監測顯示器、Email 和文字簡訊、處理影像圖片、以 GUI 自動化來控制鍵盤和滑鼠

    上課用書:
    參考書目
    Python初學特訓班(附250分鐘影音教學/範例程式)
    作者: 鄧文淵/總監製, 文淵閣工作室/編著?
    出版社:碁峰? 出版日期:2016/11/29

    Python程式設計入門
    作者:葉難
    ISBN:9789864340057
    出版社:博碩文化
    出版日期:2015/04/02

    吳老師 110/4/6

    EXCEL,VBA,Python,自強工業基金會,EXCEL,VBA,函數,程式設計,線上教學,PYTHON安裝環境

  • python判斷是否存在 在 吳老師教學部落格 Youtube 的最佳貼文

    2021-04-07 00:33:40

    VBA到Python程式開發202101第7次上課

    01_重點回顧與判斷檔案是否存在
    02_判斷all存在與刪除與刪除all以外檔案
    03_合併細節說明與檔案分割與取得檔名
    04_新增SQLite資料庫資料表與欄位
    05_SQL資料庫與建立資料表與欄位並新增資料
    06_用Select語法查詢結果

    完整教學
    http://goo.gl/aQTMFS

    吳老師教學論壇
    http://www.tqc.idv.tw/

    教學論壇(之後課程會放論壇上課學員請自行加入):
    https://groups.google.com/forum/#!forum/tcfst_python_2021_1

    課程簡介:入門
    建置Python開發環境
    基本語法與結構控制
    迴圈、資料結構及函式
    VBA重要函數到Python
    檔案處理
    資料庫處理
    課程簡介:進階
    網頁資料擷取與分析、Python網頁測試自動化、YouTube影片下載器
    處理 Excel 試算表、處理 PDF 與 Word 文件、處理 CSV 檔和 JSON 資料
    實戰:PM2.5即時監測顯示器、Email 和文字簡訊、處理影像圖片、以 GUI 自動化來控制鍵盤和滑鼠

    上課用書:
    參考書目
    Python初學特訓班(附250分鐘影音教學/範例程式)
    作者: 鄧文淵/總監製, 文淵閣工作室/編著?
    出版社:碁峰? 出版日期:2016/11/29

    Python程式設計入門
    作者:葉難
    ISBN:9789864340057
    出版社:博碩文化
    出版日期:2015/04/02

    吳老師 110/4/6

    EXCEL,VBA,Python,自強工業基金會,EXCEL,VBA,函數,程式設計,線上教學,PYTHON安裝環境

  • python判斷是否存在 在 吳老師教學部落格 Youtube 的最讚貼文

    2021-04-07 00:33:16

    VBA到Python程式開發202101第7次上課

    01_重點回顧與判斷檔案是否存在
    02_判斷all存在與刪除與刪除all以外檔案
    03_合併細節說明與檔案分割與取得檔名
    04_新增SQLite資料庫資料表與欄位
    05_SQL資料庫與建立資料表與欄位並新增資料
    06_用Select語法查詢結果

    完整教學
    http://goo.gl/aQTMFS

    吳老師教學論壇
    http://www.tqc.idv.tw/

    教學論壇(之後課程會放論壇上課學員請自行加入):
    https://groups.google.com/forum/#!forum/tcfst_python_2021_1

    課程簡介:入門
    建置Python開發環境
    基本語法與結構控制
    迴圈、資料結構及函式
    VBA重要函數到Python
    檔案處理
    資料庫處理
    課程簡介:進階
    網頁資料擷取與分析、Python網頁測試自動化、YouTube影片下載器
    處理 Excel 試算表、處理 PDF 與 Word 文件、處理 CSV 檔和 JSON 資料
    實戰:PM2.5即時監測顯示器、Email 和文字簡訊、處理影像圖片、以 GUI 自動化來控制鍵盤和滑鼠

    上課用書:
    參考書目
    Python初學特訓班(附250分鐘影音教學/範例程式)
    作者: 鄧文淵/總監製, 文淵閣工作室/編著?
    出版社:碁峰? 出版日期:2016/11/29

    Python程式設計入門
    作者:葉難
    ISBN:9789864340057
    出版社:博碩文化
    出版日期:2015/04/02

    吳老師 110/4/6

    EXCEL,VBA,Python,自強工業基金會,EXCEL,VBA,函數,程式設計,線上教學,PYTHON安裝環境

你可能也想看看

搜尋相關網站