文章目錄
- Python
- 1、Python概述
- 2、Python解釋器和pycharmIDE工具
- 3、Python中的注釋
- 4、變量
- 5、標識符的命名規范
- 6、變量的使用
- 7、Python中的數據類型
- 8、Python中的bug和調試
- 9、字符串的格式化及輸出
Python
- Python基礎語法:標識符,關鍵字,變量,判斷循環 。。。。
- 容器類型(數據類型中的高級類型)
- 函數
- 文件處理
- 面向對象
- 包和模塊
- 異常處理
1、Python概述
- 創始人:吉多·范羅蘇姆 龜叔
- 為什麼要學習Python:大勢所趨,簡單易學,使用范圍廣
- 我們本次學習使用Python3.x版本
- Python在大數據生態中應用非常廣泛
2、Python解釋器和pycharmIDE工具
- Python解釋器是將Python代碼解釋為機器語言(二進制文件)的一種工具
- Python代碼必須經過解釋器解釋,計算機才能夠去執行命令
- 常見的解釋器版本:
- CPython: 官方版本,穩定,持續更新
- Ipython:可交互,在CPython基礎上進行了升級
- pypy:使用Python編寫的解釋器
- JPython:使用java編寫的解釋器,可以將Python便以為字節碼文件,在java平台上運行
- pycharm IDE:
- pychram基本設置
- 主題:file — settings—在搜索欄搜索 theme ----修改主題
- 字體:file — settings – 在搜索欄輸入font ---- 修改字體
- 修改解釋器:file — project:項目名稱— Python interpreter --修改解釋器
- 工程管理:file – open —選擇工程
- this windows : 在當前窗口打開
- new windows:在新窗口打開
- attach :合並項目窗口
- 關閉工程: file – close project
3、Python中的注釋
- 單行注釋: # 注釋的內容
- 多行注釋:三對單引號,或者三對雙引號
""" 我是文件開頭的多行注釋,顏色不一樣, 但是功能沒有區別 """
# 注釋:有提示作用,注釋不參與代碼執行,但是可以增加代碼的可讀性
# 語法規范:單行注釋#號與注釋內容之間存在一個空格, 如果在語句末尾注釋,語句和#之間要有兩個空格
# 單行注釋
print('hello world')
# 我是一個優秀的單行注釋
print('hello bigdata')
print('hello python') # 打印Python,可以添加在語句的末尾
print('hello itcast')
# 單行注釋快捷鍵:ctrl + /
# 如果想要快捷注釋多行內容,選中多行信息,使用ctrl+ /進行對多行代碼依次進行單行注釋
# print('hello itcast')
# print('hello itcast')
# print('hello itcast')
# 多行注釋
''' 我是一個多行注釋 在多行注釋內,可以隨意換行 換行後可以正常書寫 '''
""" 在Python中單雙引號不敏感,但要成對出現 雙引號也可以構建多行注釋 """
# ???多行注釋可以用在語句末尾麼? 不能
# print('hello python') """ abc """
# 在文件開始位置,多行注釋和文件中間的多行注釋顏色不一樣,效果一樣麼? 一樣
4、變量
- 變量特性:
- 變量定義的格式:
- 標識符的命名規則:
- 只能是數字字母下劃線組成
- 首字母不能是數字
- 嚴格區分大小寫
- 不能是關鍵字
- 在Python中定義變量必須賦值,否則報錯
# 牛奶和可樂交換的案例
''' 交換方式: 獲取一個空杯子 將牛奶倒入空杯子 將可樂倒入原牛奶現空杯子的杯子中..... '''
''' 換一個方式進行描述: # 開始 A杯子: 牛奶 B杯子: 可樂 C杯子: 空 # 過程 A >> C B >> A C >> B # 結尾 A杯子: 可樂 B杯子: 牛奶 C杯子: 空 '''
a = '牛奶'
b = '可樂'
c = '空'
print(a, b)
c = a
a = b
b = c
print(a, b)
# 關鍵字: 系統定義的具有一定功能或者含義的字符組合.(關鍵字不要背誦,遇到了就記下來,如果記不下來,關鍵字有自己的高亮效果)
# 標識符: 程序員自己定義的具有一定功能或者含義的字符組合.
# 標識符的命名規則:
# 1/只能由數字,字母,下劃線組成
# 2/首字母不能是數字
# 3/不能是關鍵字
# 4/嚴格區分大小寫
# 什麼地方使用了標識符:文件名,變量名, 函數名, 類型名 (只要是讓程序員起名字,都是標識符)
# 文件名可以不遵循標識符的命名規則,但是在服務器中無法使用,不能當做模塊進行導入,很多服務器工具或組件不支持非標識符文件.
''' Python)abc 不能 _abc 可以 anc______ 可以 123abc _____ 不可以 and 不可以 ABC 可以 anc 可以 '''
# 在windows中文件名定義時,不嚴格區分大小寫
# 程序員不可能定義變量出錯
# aaa
# 在Python中創建變量必須賦值,否則將會報錯
5、標識符的命名規范
- 見名知意
- 類名使用大駝峰命名法
- 變量名,函數名,包名,模塊名使用下劃線命名法
# 要見名知意
name = '小明'
age = 18
# abc = '小明'
# 見名知意不要寫縮寫,也不要寫首字母,尤其是不要寫拼音首字母,更不要寫拼音全拼
# 命名法
# 大駝峰命名法:
# 首字母大寫,如果由多個單詞組成,所有單詞的首字母大寫
# 在Python中類名的書寫使用大駝峰命名法
ClassName = 'Python+大數據54期'
# 小駝峰命名法:
# 首字母小寫,如果由多個單詞組成,第一個單詞首字母小寫,其余單詞首字母大寫
className = 'Python+大數據54期'
# 下劃線命名法:
# 在Python中 變量,函數,文件名稱(包和模塊名稱)使用下劃線命名法
# 所有字母小寫,多個單詞中間用下劃線連接
class_name = 'Python+大數據54期'
# 不滿足命名規范一樣不會報錯,但是不利於協作開發
6、變量的使用
- 定義:變量名 = 值
- 調用:函數(變量名) 或者 使用變量名進行運算 變量名1 + 變量名2
- 變量必須先定義後調用
# 使用變量直接調用變量名即可,我們使用的是變量名,參與執行和運算的是變量中的數據(值)
name = 'xiaoming' # 定義
print(name) # 調用
a = 1 # 定義
b = 1 # 定義
print(a + b) # 調用
# 所有的變量,要先定義後調用
# 程序運行起來後,從上到下依次執行代碼,解釋一行運行一行,在打印方法被執行時,還不知道price已經被定義,會報錯
# print(price)
# price = 15
7、Python中的數據類型
- int 整型
- float 浮點型
- bool 布爾型
- str 字符型 字符串
- list 列表
- tuple 元組
- set 集合
- dict 字典
- 查看數據類型使用的函數是 type()
# 數據類型查看的函數 type(數據/變量名)
# 基礎數據類型:int float bool
# 容器類型: str list tuple set dict
# 整型
int1 = 12
print(type(int1)) # <class 'int'>
# 浮點型
float1 = 12.1
print(type(float1)) # <class 'float'>
# 布爾型 (True/False)
bool1 = True
print(type(bool1)) # <class 'bool'>
# 字符串型
str1 = 'hello Python'
print(type(str1)) # <class 'str'>
# 元組
tuple1 = (1, 2, 3, 4)
print(type(tuple1)) # <class 'tuple'>
# 列表
list1 = [1, 2, 3, 4]
print(type(list1)) # <class 'list'>
# 集合
set1 = {
1, 2, 3, 4}
print(type(set1)) # <class 'set'>
# 字典
dict1 = {
'name': 'xiaoming', 'age': 18}
print(type(dict1)) # <class 'dict'>
# 代碼格式化的快捷鍵:ctrl + alt + L
# 練習:
a = 12
# a是什麼數據類型? int
a = 'str'
# a是什麼數據類型? str
a = '12'
# a是什麼數據類型? str
a = True
# a是什麼數據類型? bool
a = 13.4
# a是什麼數據類型? float
# 通過上述演示,我們發現在Python程序執行過程中,可以隨意改變變量的數據類型
8、Python中的bug和調試
# 常見的bug
# NameError: name 'a' is not defined (一般只變量名錯誤)
# 如果遇到此類錯誤,查看變量名是否被定義或者變量名是否書寫錯誤
# print(a)
# ZeroDivisionError: division by zero (零不能做分母)
# a = 10
# print(a / 0)
# IndentationError: unexpected indent (縮進錯誤)
# 修改縮進,或者去調整函數關系
# a = 5
# b = 10
# SyntaxError: unexpected EOF while parsing (語法錯誤)
# 找到報錯位置,查看語法是否存在問題,最好的辦法就是將其進行格式化
# print(123
# TypeError: can only concatenate str (not "int") to str (數據類型錯誤)
# a = '123'
# print(a + 12)
# Process finished with exit code 0 程序結束後 正常退出 code 為 0
# print('hello world')
# Process finished with exit code 1 程序異常結束 code 為 1
# print(a)
- bug調試工具的使用
- 打斷點:在行號後邊點擊出現小紅點
- 右鍵debug進入調試模式,代碼執行暫停到斷點位置代碼執行之前
- debugger :查看參數及變量在執行過程中的變化情況
- console:查看控制台輸出內容
- step over:單步執行代碼
- resume :執行到下一次斷點位置或者程序結束
- stop:讓程序終止
9、字符串的格式化及輸出
- 格式化是字符串所具有的功能,與print無關,哪怕不進行輸出,也可以進行字符串的格式化
# 字符串格式化 :格式化是字符串所具有的功能
# print 輸出: print函數只能將傳入的內容顯示到控制台中,與格式化沒有任何關系
# 需求:想讓小明的年齡,跟著age變量的變化,不斷發生變化,那麼我們應該怎麼做?
age = 16
print('小明14歲')
# 字符串的格式化
# 格式化輸出,到底是print 的功能還是字符串的功能呢?
print('小明 %d 歲' % age)
# 探索
str1 = '小明 %d 歲' % age
print(str1)
- 格式:
- 單占位符:‘要書寫的內容,占位符’ % 變量名
- 多占位符: ‘要書寫的內容,占位符1, 占位符2, 。。。。’ % (變量1, 變量2,。。。。)
- %之前的占位符數量要和%之後的變量數量相匹配,一一對應否則會報錯
# 格式: '字符串,占位符' % 變量
# 在上述格式中,格式化完成後,會將占位符位置填充上對應的變量
# 不同數據類型的變量,要使用不同的占位符進行占位
# 字符串數據使用 %s
# 浮點型數據使用 %f
# 整型數據使用 %d
name = 'xiaoming'
age = 18
height = 1.85
weight = 69.5
marriage = False
# 一個占位符的格式化輸出
print('學員的姓名是 %s' % name)
print('學員的年齡是 %d' % age)
print('學員的身高是 %f' % height)
print('學員的體重是 %f' % weight)
print('學生的婚姻狀況是 %s' % marriage)
# 有多個動態變量的時候,我們就需要使用多個占位符進行占位
# TypeError: not enough arguments for format string
# 如果前邊有多個占位符,那後邊的多個變量要使用括號進行包裹
print('學員的姓名是%s, 學員的年齡是%d歲, 學員的身高是%f米, 學員的體重是%fkg, 學員的婚姻狀況是%s' % (name, age, height, weight, marriage))
# 括號內的變量數量不能少於占位符數量
# print('學員的姓名是%s, 學員的年齡是%d歲, 學員的身高是%f米, 學員的體重是%fkg, 學員的婚姻狀況是%s' % (name, age, height, weight))
# not all arguments converted during string formatting
# 括號內的變量數量不能多於占位符的數量
# print('學員的姓名是%s, 學員的年齡是%d歲, 學員的身高是%f米, 學員的體重是%fkg, 學員的婚姻狀況是%s' % (name, age, height, weight,marriage,name))
# 結論:占位符的數量,與%後的變量數量必須保持一致,如果是一個占位符,則可以使用一個變量,如果是多個占位符,那麼多個變量必須使用括號包裹起來
# 能否控制變量輸出的結果的樣式:可以
name = 'xiaoming'
age = 18
height = 1.85
weight = 69.5
id = 12
# 需求:1.身高保留兩位小數,體重保留三位小數
# 需求:2.學員的id共占用6位,不足位用0填充
# 使用ctrl + d 可以整行復制
print('學員的姓名是%s, 學員的年齡是%d歲, 學員的身高是%f米, 學員的體重是%fkg, 學員的編號是%d' % (name, age, height, weight, id))
# 浮點型保留n位小數: %.nf
# 整型占用n位數據,不足位用0補齊 %0nd
print('學員的姓名是%s, 學員的年齡是%d歲, 學員的身高是%.2f米, 學員的體重是%.3fkg, 學員的編號是%06d' % (name, age, height, weight, id))