在開發領域,計算機資源可以分為兩部分:軟件資源 + 硬件資源
軟件資源:看得見,摸不著
硬件資源:看得見,摸得著
硬件資源(CPU、內存、硬盤、風扇、電源、鍵盤、鼠標…)
軟件資源(Office辦公軟件、網易雲音樂、各種各樣的計算機游戲)
思考:我們發現,軟硬件之間其實是可以交互的,這是什麼原理呢?
答:使用操作系統,操作系統是計算機軟硬件之間的橋梁
在日常的應用中,操作系統大概可以分為三大類:
① Windows操作系統
② MacOS操作系統
③ Linux操作系統(服務器端使用量最大的操作系統)
① 技術趨勢
Python自帶明星屬性,熱度穩居編程語言界前三
② 簡單易學
開發代碼少,精確表達需求邏輯;33個關鍵字,7種基本數據類型;語法規則簡單,接近自然語。
③ 應用廣泛
Python語言涉及IT行業70%以上的技術領域
① Python其運行速度相對於C/C++/Java要略慢一些
② Python由於語言的特性,無法對代碼進行加密
③ Python的版本之間,兼容性不太理想(Python2和Python3)
Python是一種跨平台的計算機程序設計語⾔。 是一個高層次的結合了解釋性、編譯性、互動性和面向對象的腳本語⾔。最初被設計用於編寫自動化腳本Shell(適用於Linux操作系統),隨著版本的不斷更新和語言新功能的添加,逐漸被用於獨立的、大型項目的開發。
其實目前很多知名的機器學習、⼈⼯智能以及深度學習框架也都是基於Python語⾔進⾏開發的:
Google開源機器學習框架:TensorFlow
開源社區主推學習框架:Scikit-learn
百度開源深度學習框架:Paddle
在目前的Python領域,其主要應用版本有兩個:Python2和Python3
主要區別可以理解為:輸入、輸出以及編碼格式的不同
Python2.x
Python3.x
Python3.6、Python3.7、Python3.8、Python3.9…
在生產環境中,我們⼀般不會選擇最新版本的Python,因為可能會存在未知Bug,所以⼀般強烈建議大家在選擇軟件版本時,向前推1 ~ 2個版本。所以咱們課程主要講解Python3.7版本。
demo.py
print('Hello World')
由於Python屬於高級語言,其並不能直接在計算機中運行,因為缺少Python語言的運行環境:Python解析器
Python解析器的作用:就是把Python代碼轉換為計算機底層可以識別的機器語言,如0101…
① CPython,C語言開發的解釋器[官方],應⽤廣泛的解釋器。
② IPython,基於CPython的一種交互式解釋器。
③ 其他解釋器
PyPy,基於Python語言開發的解釋器。
JPython,運⾏在Java平台的解釋器,直接把Python代碼編譯成Java字節碼執⾏。
IronPython,運⾏在微軟.Net平台上的Python解釋器,可直接把Python代碼編譯成.Net的字節碼。
下載地址:https://www.python.org/downloads/release/python-379/
[單擊上述鏈接] – 查找目標文件:Windows x86-64 executable installer – 單擊即可下載。
第一步:雙擊運行Python的解析器,選擇自定義安裝以及添加Python到環境變量
第二步:選擇所有要安裝的功能菜單,默認全部勾選
pip:Python的包管理工具,可以用來安裝未來我們項目中需要使用的各種模塊
第三步:設置Python解析器的安裝路徑,強烈建議安裝在除C盤以外的盤符
第四步:測試Python解析器是否可以使用
按Windows + R,輸入cmd字符,打開Windows的DOS窗口,輸入python(全部小寫),如下圖所示:
出現了以上界面,就代表Python3.7的解析器已經安裝成功了。如何從這個窗口中退出到DOS模式呢?
答:使用exit()方法
>>> exit() 回車
工欲善其事必先利其器
在Python的開發領域,其開發工具非常非常多,EditPlus、Notepad++、Sublime Text3、Visual Studio Code、PyCharm(目前功能最強大的IDE)
PyCharm是⼀種Python IDE (集成開發環境),帶有一整套可以幫助用戶在使用Python語言開發時提高其效率的⼯具,內部集成的功能如下:
Project管理
智能提示
語法高亮
代碼跳轉
調試代碼
解釋代碼(解釋器)
框架和庫
…
PyCharm一共有兩個版本:專業版(收費) 與 社區版(免費、開源)
在基礎班,PyCharm社區版足夠我們使用,綽綽有余。
下載地址:https://www.jetbrains.com/pycharm/download/#section=windows
第一步:雙擊PyCharm軟件安裝包,進行軟件安裝
第二步:設置軟件的安裝路徑,理論上沒有任何要求,但是建議放在除C盤以外的盤符
第三步:PyCharm基本設置,創建桌面圖標與.py文件關聯
什麼是項目?其實我們在實際開發中,每次參與一個工作的開發都是一個項目的開發過程。所以使用PyCharm的第一件事就是學習Python項目的創建過程。
第一步:創建項目
第二步:設置項目路徑,必須放在C盤以外的盤符(非常重要!!!)
配置完成後,單機Create創建Python項目。
如果將來要上傳到服務器的文件,那麼文件名切記不能使用中文。
編寫Hello World
print('Hello World')
運行結果:
打開File文件,找到Settings設置,如下圖所示:更換Python解析器
① 軟件主題(軟件未來的樣式)
② 編碼字體的設置
③ 代碼字號的設置(文字大小)
打開File文件 => Settings設置,找到界面設置:
主題設置:
字體與字號設置:
字體設置:
字號設置:
打開項目:本身項目已經存在了,我們直接打開。
選擇項目目錄(文件夾)即可,如下圖所示:
① This Window => 覆蓋當前項⽬,從⽽打開目標項目
② New Window => 在新窗⼝打開,則打開兩次PyCharm,每個PyCharm負責一個項⽬
③ Attach => 把兩個項目合並在一起,放在同一個窗口中
關閉項目:對已經運行項目進行關閉操作。
首先強調一件事:Python代碼 => Python解析器 => 機器語言,但是注釋經過了Python的解釋器並不會解析與執行。因為其主要就是進行代碼的注釋。
注釋作用:提高代碼的閱讀性
在我們編寫Python程序時,為了了提高程序的可讀性,強烈建議大家為核心代碼添加注釋信息。
單行注釋,以"#"(Shift + 3)號開頭,只能注釋一行內容
# 注釋內容
示例代碼:
第一種:代碼行的上面
# 輸出Hello World字符串
print('Hello World')
第二種:放在代碼的後面(代碼後面保留2個空格)
print('Hello World') # 輸出Hello World字符串
多行注釋:可以同時注釋多行代碼或程序,常用於代碼塊的注釋
基本語法:
""" 注釋內容 第一行 第二行 第三行 """
或
'''
注釋內容
第一行
第二行
第三行
'''
示例代碼:
""" Hi, 大家好 我是黑馬程序員的小伙伴 從今天開始,我們將一起學習Python這門語言 """
''' Hi, 大家好 我是黑馬程序員的小伙伴 從今天開始,我們將一起學習Python這門語言 '''
print('Hi, 大家好')
print('我是黑馬程序員的小伙伴')
print('從今天開始,我們將一起學習Python這門語言')
在PyCharm中,我們可以使用Ctrl + /斜槓
來對代碼或程序進行快速注釋。
在PyCharm中,當我們輸入Python關鍵字中的前2~3個字符,其會自動進行代碼提示。這個時候,我們只需要按回車即可以快速的輸入某個內容。
編寫代碼時,一定要養成一個好的習慣,使用Ctrl + S
快速對代碼進行保存操作。
個人建議,當寫完一行代碼時,就按一次。
如果不小心刪除了某行代碼,這個時候我們可以快速按Ctrl + Z
就可以快速進行恢復。每按一次就撤銷一次,如果撤銷多了,怎麼辦?
答:還可以通過Ctrl + Y
進行恢復操作
案例:實現兩個變量的交換
1號杯:可樂
2號杯:牛奶
經過一系列Python操作以後
1號杯:牛奶
2號杯:可樂
什麼是量:量是程序中的最小單元。
那什麼是變量呢?
① 變量是存儲數據的容器
② 變量在程序運行過程中是可以發生改變的量
③ 變量存儲的數據是臨時的
淘寶注冊案例:
① 寫入用戶名、密碼
② Python程序要接收用戶名和密碼(臨時存儲)
③ 把剛才接收的用戶名和密碼永久的存儲起來(數據庫)
為了解決以上問題,Python開發了變量這樣一個概念,可以把用戶輸入的一些信息,臨時的保存起來,保存的這個容器就是Python變量。
基本語法:
變量名稱 = 變量的值
注:等號的兩邊都要保留一個空格,其實Python中建議符號的兩邊盡量都要保留一個空格
說明:在Python程序中,這個等號和日常生活中的等號不太一樣,其有一個專業名詞:賦值運算符,其讀法:要從右向左讀,把變量的值通過 = 賦值給左邊的變量。
標識符命名規則是Python中定義變量名稱時一種命名規范,具體如下:
① 由數字、字母、下劃線(_)組成
② 不能數字開頭
③ 嚴格區分⼤小寫
④ 不能使⽤內置關鍵字作為變量名稱
下劃線 => Shift + -減號
舉個栗子:
① abc、abc123、_abc、hello(合理)
② 123abc、@abc、abc-123(不合理)
③ _(下劃線) => 請問這可以是一個變量名稱麼?答:可以
for _ in range(10):
...
④ 變量abc和變量ABC是同一個變量麼?答:不一樣,這是兩個完全不同的變量
⑤ 記不住33個關鍵字怎麼辦?答:借助於help()方法
>>> help('keywords')
① 變量命名一定要做到見名知義。
② 大駝峰:即每個單詞首字母都大寫,例如: MyName 。
③ 小駝峰:第二個(含)以後的單詞首字母大寫,例例如: myName 。
④ 下劃線:例如: my_name 。
在Python中,記住:變量一定要先定義,後使用,否則會報錯。
定義:
name = 'itheima'
address = '北京市順義區京順路99號'
調用:
print(name)
print(address)
或
print(name, address)
① 變量與字符串如何區別:
在Python中,如果要賦值的內容添加了單引號或者雙引號,其就是Python中的一種數據類型:叫做字符串(日常生活中的文本信息)
② print打印變量時,喜歡為其添加引號
print(name) # 輸出變量name對應的值
與
print('name') # 輸出'name'這個字符串
變量的定義非常的簡單,但是很多小伙伴可能會想:變量除了存儲這種字符類型的數據以外,還能存儲其他類型的數據麼?其實,在 Python中,我們為了應對不同的業務需求,也會把數據分為不同的類型,如下圖所示:
面試題:請手寫出Python中的7種數據類型?
答:數值類型、布爾類型、字符串類型、列表類型、元組類型、集合類型、字典類型
今天我們只需要了解前3種即可。
問題:如何判斷一個變量到底是什麼類型?
答:① 使用type(變量名稱)方法,返回變量的數據類型 ② isinstance(變量名稱,數據類型),只能返回True或False(真的還是假的)
數值類型就是我們日常生活中的數字,數字又分為兩種形式:整數 與 小數(帶小數點)
整數類型:int類型
小數類型:float類型
案例1:定義一個人的信息,姓名:Tom、年齡18歲
name = 'Tom'
age = 18
print(type(age))
案例2:定義一個超市收銀系統,寫入一個名稱:大白菜,價格:3.5
name = '大白菜'
price = 3.5
print(type(price))
布爾類型是與邏輯相關一種數據類型,只有兩個值:True(真)與False(假)
案例1:手工定義一個flag變量,其值為True
flag = True
print(flag)
print(type(flag))
其實在Python中,很多程序的返回結果也可以是True或False,比如isinstance()
num = 10
print(isinstance(num, int)) # True
print(isinstance(num, bool)) # False
在Python變量定義中,如果其賦值的內容是通過單引號或雙引號引起來的內容就是字符串str類型。
msg = '這家伙很懶,什麼都沒有留下...'
print(type(msg))
# 1、list列表類型
list1 = [10, 20, 30, 40]
print(type(list1))
# 2、tuple元組類型
tuple1 = (10, 20, 30, 40)
print(type(tuple1))
# 3、set集合類型:去重
set1 = {
10, 20, 30}
print(type(set1))
# 4、dict字典類型:查詢、搜索
dict1 = {
'name':'itheima', 'age':18}
print(type(dict1))
所謂bug,就是程序中的錯誤。如果程序有錯誤,就需要咱們程序員來進行問題排查,及時糾正錯誤。
第一步:查看錯誤頁面
第二步:看錯誤的行號
第三步:根據具體的錯誤,具體分析
Debug工具是PyCharm IDE中集成的專門用來調試程序的工具,在這裡程序員可以查看程序的執行細節和流程,以方便我們快速找出程序的Bug!
Debug工具使⽤二步走:① 打斷點 ② Debug調試
斷點應該放在哪個位置:答:代碼可能出錯的代碼段的第一行
遇到小閃電圖標就代表這一行,可能出錯了。
目前為止,我們所有的輸出都是直接通過print(變量名稱)形式直接打印的。但是實際工作中,我們可能需要對變量的輸出進行格式化操作(按照一定格式進行輸出)。
基本語法:
...
print(變量名稱)
print('字符串%格式' % (變量名稱))
print('字符串%格式 %格式 %格式' % (變量名稱1, 變量名稱2, 變量名稱3))
%格式常見形式如下:
案例:定義兩個變量name=‘itheima’, age=18,按照如下格式進行輸出:我的名字是itheima,今年18歲了。
案例:定義兩個變量title=‘大白菜’,price=3.5,按照如下格式進行輸出:今天蔬菜特價了,大白菜只要3.5元/斤。
title = '大白菜'
price = 3.5
# 格式化輸出“今天蔬菜特價了,大白菜只要3.5元/斤。"
print("今天蔬菜特價了,%s只要%.2f元/斤。" % (title, price))
其實除了%f可以設置小數點位數以外,%d也可以填充序號。
案例:定義兩個變量id=1,name=‘itheima’,按照如下格式進行輸出:姓名itheima,學號000001
id = 1
name = 'itheima'
print("姓名%s,學號%06d" % (name, id))
基本語法:
...
print('字符串{}'.format(變量名稱1))
print('{}字符串{}'.format(變量名稱1, 變量名稱2))
案例:定義兩個變量,name=‘孫悟空’,mobile=‘18878569090’,按照以下格式進行輸出"姓名:孫悟空,聯系方式:18878569090"
name = '孫悟空'
mobile = '18878569090'
print("姓名:{},聯系方式:{}".format(name, mobile))
在Python3.6以後版本,為了簡化format輸出操作,引入了一個簡寫形式:
name = '孫悟空'
mobile = '18878569090'
print(f'姓名:{
name},聯系方式:{
mobile}')
在字符串中,如果出現了\t和\n,其代表的含義就是兩個轉義字符
\t :制表符,一個tab鍵(4個空格)的距離
\n :換行符
案例:
print('*\t*\t*')
print('hello\nworld')
特別說明:默認情況下,每個print()方法執行完畢後,都會輸出一個\n換行符。如果不想讓print()方法換行,可以添加一個end參數
print('*', end='')
到目前為止,我們所有的程序都只能把數據輸出給用戶。但是實際工作中,我們經常輸入獲取用戶的輸入信息,如銀行系統中的密碼輸入、淘寶中的用戶登錄驗證。
在Python中,如果想讓Python程序接受用戶的輸入信息,可以使用input()方法
基本語法:
input()
但是往往只有input()方法,其意義不大,我們還應該使用一個變量來臨時接受用戶的輸入,已方便後期的操作。
變量名稱 = input('提示信息:')
案例:銀行系統中的,輸入密碼的過程
password = input('請輸入您的銀行卡密碼:')
print(f'您輸入的銀行卡密碼為:{
password}')
記住:所有由input()方法獲取的數據都是==“字符串”==類型
name = input('請輸入您的姓名:')
age = input('請輸入您的年齡:')
print(type(name)) # <class 'str'>
print(type(age)) # <class 'str'>
print('*\t*\t*')
print('hello\nworld')
特別說明:默認情況下,每個print()方法執行完畢後,都會輸出一個\n換行符。如果不想讓print()方法換行,可以添加一個end參數
print('*', end='')
到目前為止,我們所有的程序都只能把數據輸出給用戶。但是實際工作中,我們經常輸入獲取用戶的輸入信息,如銀行系統中的密碼輸入、淘寶中的用戶登錄驗證。
[外鏈圖片轉存中…(img-lcvORuvD-1659170183515)]
在Python中,如果想讓Python程序接受用戶的輸入信息,可以使用input()方法
基本語法:
input()
但是往往只有input()方法,其意義不大,我們還應該使用一個變量來臨時接受用戶的輸入,已方便後期的操作。
變量名稱 = input('提示信息:')
案例:銀行系統中的,輸入密碼的過程
password = input('請輸入您的銀行卡密碼:')
print(f'您輸入的銀行卡密碼為:{
password}')
記住:所有由input()方法獲取的數據都是==“字符串”==類型
name = input('請輸入您的姓名:')
age = input('請輸入您的年齡:')
print(type(name)) # <class 'str'>
print(type(age)) # <class 'str'>