前言:
零基礎學Python:Python從0到100最新最全教程。 想做這件事情很久了,這次我更新了自己所寫過的所有博客,匯集成了Python從0到100,共一百節課,幫助大家一個月時間里從零基礎到學習Python基礎語法、Python爬蟲、Web開發、 計算機視覺、機器學習、神經網絡以及人工智能相關知識,成為學習學習和學業的先行者!
歡迎大家訂閱專欄:零基礎學Python:Python從0到100最新最全教程!
一、Python語言特點
1. 簡單易學、明確優雅、開發速度快
?簡單易學:與C和Java比,Python的學習成本和難度曲線不是低一點,更適合新手入門,自底向上的技術攀爬路線。
?明確優雅:Python的語法非常簡潔,代碼量少,非常容易編寫,代碼的測試、重構、維護等都非常容易。
?開發速度快:當前互聯網企業的生命線是什么?產品開發速度!如果你的開發速度不夠快,在你的產品推出之前別人家的產品已經上線了,你也就沒有生存空間了,這里的真實例子數不勝數。那么,Python的開發速度說第二沒人敢稱第一!
2. 跨平臺、交互式、解釋型、面向對象的動態語言
?跨平臺:Python支持Windows、Linux和MAC os等主流操作系統。
?交互式:Python提供很好的人機交互界面,比如IDLE和IPython。可以從終端輸入執行代碼并獲得結果,互動的測試和調試代碼片斷。
?解釋型:Python語言在執行過程中由解釋器逐行分析,逐行運行并輸出結果。
?面向對象:Python語言具備所有的面向對象特性和功能,支持基于類的程序開發。
?動態語言:在運行時可以改變其結構。例如新的函數、對象、甚至代碼可以被引進,已有的函數可以被刪除或是其他結構上的變化。動態語言非常具有活力。
3.大量的標準庫和第三方庫
?Python為我們提供了非常完善的基礎庫,覆蓋了系統、網絡、文件、GUI、數據庫、文本處理等方方面面,這些是隨同解釋器被默認安裝的,各平臺通用,你無需安裝第三方支持就可以完成大多數工作。
4. 開源語言,發展潛力巨大
?Python是基于C語言編寫的,并且使用GPL開源協議,你可以免費獲取它的源代碼,進行學習、研究甚至改進。眾人拾柴火焰高,有更多的人參與Python的開發,促使它更好的發展,被更多的應用,形成良性循環。
?Python為什么會越來越火就是因為它的開放性,自由性,聚起了人氣,形成了社區,有很多人在其中做貢獻,用的人越來越多,自然就提高了市場占有率,企業、公司、廠家就不得不使用Python,提供的Python程序員崗位就越來越多,這就是開源的力量。
二、Python可以做什么
說到Python,大多數人會與人工智能掛鉤,確實人工智能與Python密不可分,但除了人工智能python還有很多很多的用處:
AI
網絡爬蟲
自動化
數據分析
WEB開發
常規軟件開發
云計算
…
可以說,Python無處不在!
1.文本編輯器 - Visual Studio Code
Visual Studio Code(通常簡稱為VSCode)是一個由微軟開發能夠在Windows、 Linux和macOS等操作系統上運行的代碼編輯神器。它支持語法高亮、自動補全、多點編輯、運行調試等一系列便捷功能,而且能夠支持多種編程語言。如果大家要選擇一款高級文本編輯工具,強烈建議使用VSCode。關于VSCode的下載、安裝和使用,推薦大家閱讀一篇名為《VScode安裝使用》的文章。
2.集成開發環境 - PyCharm
如果用Python開發商業項目,我們推薦大家使用更為專業的工具PyCharm。PyCharm是由捷克一家名為JetBrains的公司開發的用于Python項目開發的集成開發環境(IDE)。所謂集成開發環境,通常是指工具中提供了編寫代碼、運行代碼、調試代碼、分析代碼、版本控制等一系列功能,因此特別適合商業項目的開發。在JetBrains的官方網站上提供了PyCharm的下載鏈接,其中社區版(Community)是免費的但功能相對弱小(其實已經足夠強大了),專業版(Professional)功能非常強大,但需要按年或月付費使用,新用戶可以試用30天時間。
PyCharm常用的快捷鍵如下表所示,我們也可以在“File”菜單的“Settings”中定制PyCharm的快捷鍵(macOS系統是在“PyCharm”菜單的“Preferences”中對快捷鍵進行設置)。
3. PyCharm常用快捷鍵。
快捷鍵 | 作用 |
---|---|
ctrl + j | 顯示可用的代碼模板 |
ctrl + b | 查看函數、類、方法的定義 |
ctrl + alt + l | 格式化代碼 |
alt + enter | 萬能代碼修復快捷鍵 |
ctrl + / | 注釋/反注釋代碼 |
shift + shift | 萬能搜索快捷鍵 |
ctrl + d / ctrl + y | 復制/刪除一行代碼 |
ctrl + shift + - / ctrl + shift + + | 折疊/展開所有代碼 |
F2 | 快速定位到錯誤代碼 |
ctrl + alt + F7 | 查看哪些地方用到了指定的函數、類、方法 |
說明:使用macOS系統,可以將上面的
ctrl
鍵換成command
鍵,在macOS系統上,可以使用ctrl + space
組合鍵來獲得萬能提示,在Windows系統上不能使用該快捷鍵,因為它跟Windows默認的切換輸入法的快捷鍵是沖突的,需要重新設置。
4.hello, world
按照行業慣例,我們學習任何一門編程語言寫的第一個程序都是輸出hello, world
,因為這段代碼是偉大的丹尼斯·里奇(C語言之父,和肯·湯普森一起開發了Unix操作系統)和布萊恩·柯尼漢(awk語言的發明者)在他們的不朽著作The C Programming Language中寫的第一段代碼。
print('hello, world')
5.運行程序
如果不使用PyCharm這樣的集成開發環境,我們可以將上面的代碼命名為hello.py
,對于Windows操作系統,可以在你保存代碼的目錄下先按住鍵盤上的shift
鍵再點擊鼠標右鍵,這時候鼠標右鍵菜單中會出現“命令提示符”選項,點擊該選項就可以打開“命令提示符”工具,我們輸入下面的命令。
python hello.py
提醒:我們也可以在任意位置打開“命令提示符”,然后將需要執行的Python代碼通過拖拽的方式拖入到“命令提示符”中,這樣相當于指定了文件的絕對路徑來運行該文件中的Python代碼。再次提醒,macOS系統要通過
python3
命令來運行該程序。
你可以嘗試將上面程序單引號中的hello, world
換成其他內容;你也可以嘗試著多寫幾個這樣的語句,看看會運行出怎樣的結果。需要提醒大家,上面代碼中的print('hello, world')
就是一條完整的語句,我們用Python寫程序,最好每一行代碼中只有一條語句。雖然使用;
分隔符可以將多個語句寫在一行代碼中,但是最好不要這樣做,因為代碼會變得非常難看。
5.注釋你的代碼
注釋是編程語言的一個重要組成部分,用于在源代碼中解釋代碼的作用從而增強程序的可讀性。當然,我們也可以將源代碼中暫時不需要運行的代碼段通過注釋來去掉,這樣當你需要重新使用這些代碼的時候,去掉注釋符號就可以了。簡單的說,注釋會讓代碼更容易看懂但不會影響程序的執行結果。
Python中有兩種形式的注釋:
- 單行注釋:以
#
和空格開頭,可以注釋掉從#
開始后面一整行的內容。 - 多行注釋:三個引號開頭,三個引號結尾,通常用于添加多行說明性內容。
# print('hello, world')
print("你好,世界!")
三、Python基礎知識及應用
1.將字符列表轉化為字符串
l=['Python','Circle','is','ok']
j=''.join(l)
print(j)
2.將字符串居中
a='徐以鵬比易烊千璽帥億點'
b=a.center(50)
c=a.center(50,'*')
print(b)
print(c)
3.find方法找到字符串中的字符,找到就返回第一個字符的索引,找不到就返回-1
a='I love python'
b=a.find('o')
print(b)
c=a.find('lov')
print(c)
讓字符的首字母大寫,其他字母手寫
a='i love python'
b=a.title()
c='I LOVE PYTHON'
d=c.title()
print(b)
print(d)
用string中的capwords方法
import string
a='i lOve python'
b=string.capwords(a)
print(b)
清空列表
a=[1,2,3]
a.clear()
print(a)
a=[1,2,3]
a[:]=[]
print(a)
計算指定元素在列表中出現的次數
a=['i','am','ok','k','ok']
b=a.count('ok')
print(b)
在列表末尾加入元素
a=[1,2,3]
b=[4,5,6]
c=a+b
print(c)
a=[1,2,3]
b=[4,5,6]
a.extend(b)
print(a)
將對象插入到列表中
a=[1,2,3,4]
a.insert(2,'there')
print(a)
a=[1,2,3,4]
a[2:2]=['there']
print(a)
刪除列表中的元素
a=[1,2,3,4]
a.pop()#pop可以刪除指定元素,默認刪除最后一個元素
print(a)
a.pop(0)
print(a)
刪除列表中的指定元素
a=[1,2,4,3,4]
a.remove(4)#只刪除第一次出現的元素
print(a)
讓列表按相反順序排序?
a=[2,1,5,99]
a.reverse()
print(a)
a=[2,1,5,99]
a=a[::-1]
print(a)
表示只包含一個元素的元組,一定要在后面加逗號
a=(1)
print(type(a))#整數
a=(1,)
print(type(a))#元組
批量替換字符串中的元素
a='i love python'
b=a.replace('o','徐')
print(b)
將字符串按照空格進行拆分
a='i love python'
print(a.split())
去除字符串首位的空格
a=' i love python'
print(a.strip())
給字典中不存在的key指定默認值
a={'age':42,'name':'g'}
print(a.get('aa','N/2'))
快速求1到100所有整數相加的和
print(sum(range(1,101)))
快速啟動瀏覽器打開指定的網站,使用webbrowser庫
import webbrowser
webbrowser.open('http://www.python.org')'''
給函數編寫文檔在 def 語句后?把注釋?檔放在引號(單引、雙引、三引都可以)??就?,這個?檔可以通過 function.__doc__訪問。
def square(x):'''返回平方值'''return x*x
print(square.__doc__)
定義私有方法
#在方式名稱前加兩個下斜杠
class Person:def __name(self):print('私有方法')
#注明:? from module import * 導?時不會導?私有?法。
怎么判斷一個類是另一個類的子類?
class A:pass
class B(A):pass
print(issubclass(A,B))#是返回True,不是返回False
怎么從一個非空序列中隨機選擇一個元素?
import random
print(random.choice([1,'two',3,'四']))
怎么查出通過from xx import xx導入的可以直接調用的方法?
#? all ?法,這個?法查出的是模塊下不帶_的所有?法,可以直接調?。
import random
print(random.__all__)
集合
#花括號{}是集合還是字典:是字典#怎么求兩個集合的并集?
a={6,7,8}
b={7,8,9}
print(a.union(b))a={6,7,8}
b={7,8,9}
print(a|b)#求兩個集合的交集
a={6,7,8}
b={7,8,9}
print(a&b)a={6,7,8}
b={7,8,9}
print(a.intersection(b))#求兩個集合中不重復的元素
a={6,7,8}
b={7,8,9}
print(a^b)a={6,7,8}
b={7,8,9}
print(a.symmetric_difference(b))#求兩個集合的差集
a={6,7,8}
b={7,8,9}
print(a-b)a={6,7,8}
b={7,8,9}
print(b.difference(a))
print(a.difference(b))
#從一個序列中隨機返回n個不同值的元素
import random
t=(2020,7,3,21,48,56,4,21,0)
print(random.sample(t,2))#怎么生成兩個數之間的隨機實數
from random import uniform
print(uniform(10,20))
import random
print(random.uniform(10,20))#怎么在等差數列中隨機選擇一個數
print(random.randrange(0,100,10))
怎么在文件中寫入字符?
''#使用open函數,模式用w
with open('bruce.txt','w')as f:f.write('hello word')'''with open('bruce.txt','r')as f:f.read()
怎樣將當前時間轉化為字符串?
#用time模塊中的asctime方法
import time
print(time.asctime())
怎么隨機打亂列表的順序
import random
t=list(range(20))
print(t)
random.shuffle(t)
print(t)
文末推薦:人工智能通識講義
本書是面向青少年的人工智能科普書和入門教材,立足于趣味性、科學性、知識性和實踐性,盡量避免晦澀專業術語對閱讀流暢性的影響。書中還包含數十個精心篩選的實踐案例,可根據讀者需要靈活選用。
全書共5 個單元、14章,從人工智能的發展簡史講起,以語音、圖像、生活中的典型場景及倫理問題為主要知識載體,聚焦問題,深入淺出地引出人工智能的基本思想、主要原理、知識概念、典型應用實踐等。
本書可作為青少年課外科普讀物和中學信息技術等學科的輔助教材、職業院校的專業教材和本科階段的通識教育教材,還可作為相關培訓教材和科學素質提升讀本。
購買鏈接:https://item.jd.com/13166775.html
撰寫初衷
目前,新一代人工智能(AI)技術處于爆發期之后的深化期,各行業都需要大量的具備AI技術素養的專業人才,人們的日常生活已經和AI息息相關,幾乎每天都會和它打交道。與其他技術顯著不同的是,AI會通過“學習”幫我們做出偏好選擇和決定,一些不良的AI程序還在嘗試收集我們的隱私,如果對它一無所知是非常可怕的。具備一些認知和鑒別AI的信息意識、了解代表性AI技術原理與實現的計算思維、掌握簡單的AI案例的數字化實現手段、識別生活中AI技術的兩面性、肩負起構建和諧信息社會的責任,應該成為青少年的基本信息素養。因此,人工智能教育不應局限于高等教育,相關科技的了解和普及教育應該從青少年開始。
隨著人工智能應用的遍地開花,我國已將人工智能作為贏得全球科技競爭主動權的重要戰略抓手,不斷進行深化研究,近年來我國人工智能原創優秀成果以及與傳統文化結合而產生的交叉研究成果也在不斷涌現,并成為我們國家科技飛速發展的一個重要標志。因此,我們迫切需要有更多面向青少年的人工智能書籍,在傳播知識的同時能夠幫助他們建立文化自信、培養家國情懷、激發工匠精神,為未來培養更多人工智能應用和國家建設科技強國的生力軍。
本書特色
本書定位為面向青少年的AI知識科普讀物和入門教材,書中并未詳細介紹人工智能的學術體系,而是希望通過案例來激發學習AI的好奇心和同理心,將內容聚焦到語音、視覺、生活中的AI和AI倫理四方面,也是日常生活中接觸使用最多、迫切需要去了解。本書立足于青少年學生能讀懂、有關科任教師能講透、案例易于上手實踐和理解,再根據趣味性、科學性、知識性和實踐性來組織各章節內容。
主要特點如下:
(1)本書采用圖文并茂的寫作方式,沒有大段公式和大篇幅理論知識論述,符合目標群體認知特點。
(2)本書僅介紹了人工智能專業的必要概念,避免了概念過多且難以理解對讀者群體造成困惑。
(3)全書內容不需要讀者具備線性代數和概率論等專業知識,專業術語也經過反復斟酌,盡量用淺顯、通俗的語言來解釋。
(4)本書采用固定體例的方式,包括學習啟航、知識講堂、拓展閱讀、活動實踐、課后練習等欄目,符合教師的教學和青少年的閱讀習慣。
(5)本書強調理論與實踐相結合,精心篩選和設計了數十個難度不同的實踐案例,可以供不同讀者靈活選用,多數案例可掃描二維碼觀看操作視頻。
(6)本書多處探討了AI可能帶來的隱私泄露、技術濫用等問題,還特別設置了人工智能倫理章節,以增強青少年對AI的思辨能力和信息安全意識。
(7)書中對一些知識點做了適當延伸,如鳥類識別、深度學習等,與其他內容是一個有機的整體,如果完整地學下來并不難理解。
(8)本書特別設計了人工智能與文學、藝術等交叉的新興內容,能向讀者有效傳遞文化自信,提升讀者全方位素養。
本書使用
本書按照單元和章節的方式進行組織,單元內部各章節的內容有序而又獨立,形成章節內部的邏輯主線。本書的結構體系側重于面向問題而不是知識點,每個章節從AI應用中的具體話題引出,同一個單元的章節之間又前后呼應。作為科普讀物,讀者既可以通篇閱讀,也可以按照章節獨立閱讀。教師作為教學參考書時,既可以按順序使用,也可以根據教學需要選擇不同單元的內容。
本書中的實踐案例以及思考討論題目有助于學習和掌握相關知識,還可以通過掃描二維碼觀看主要實踐案例的操作視頻,大部分章節都有思考或練習題,教師可根據需要選用或拓展。本書涉及的編程軟件,讀者可以按需下載和配置使用,少量案例需要額外的硬件支持,一般性的學習可跳過,這不影響書籍閱讀的整體性。如作為職業院校的教材或期望掌握AI編程技術的同學使用,建議多嘗試基于Python編程的案例。
編寫團隊
本書的編寫團隊包括人工智能領域專家、專業研究學者、教研人員、一線中學骨干教師、職業院校科任教師、專業科普人員和技術開發人員等。領域專家熟悉人工智能的歷史脈絡及學科知識體系,確保知識內容的科學性及嚴謹性。教研人員了解代表性青少年群體的信息科技知識水平、興趣點及迫切需要了解的內容。中學和職業院校教師具有豐富的教學經驗,了解青少年的認知水平和認知習慣,了解其基礎知識體系構成,使得書籍行文充分符合青少年教材和參考書的特點。專業科普人員則熟悉教學和科普的差異,對知識點的講解和呈現形式做了專門的設計。技術開發人員根據操作簡便的原則專門開發了配套的軟件,并對編程案例設計進行了測試和優化。
本書配套資源和獲取方式
本書配有大量多媒體資源,如微課視頻、實踐活動所需各類素材(圖像素材原文件、代碼、活動案例網站地址、音頻文件,部分插圖的彩色圖像文件)。音視頻資源可在正文中掃描二維碼獲得,其他資源可掃描封底二維碼獲取電子資源包。
本書中的Python編程實例推薦使用Anaconda和PyCharm軟件環境,安裝和配置流程詳見電子資源包中的說明文檔或掃描附錄中的二維碼觀看視頻。
特別致謝
感謝北京市教育科學研究院基礎教育教學研究中心、北京市東城區教育科學研究院、北京建筑大學、北京工商大學等單位在本書撰寫過程給予的大力支持與指導。感謝北京市大興區科學技術協會對本書出版和科普試用給予的大力支持。感謝北京智教未來科技有限公司、天津市大然科技有限公司等單位組織技術人員專門研制“塔羅斯+”軟件,并對相關實例進行了開發和測試。
特別感謝中國科學院計算技術研究所研究員、中國計算機學會秘書長唐衛清老師在本書書稿成型過程中給予的指導。唐老師的指導意見中肯、專業、深入且富有啟發,對本書最終成型起到了關鍵作用。
由于作者水平有限,書中難免有錯誤或疏漏之處,敬請廣大讀者批評指正。