生活随笔
收集整理的這篇文章主要介紹了
Python学习笔记(三) Python基础
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
(二)python基礎
python基礎
自然語言與編程語言有所不同 ,自然語言可以在不同的情景下有不同的含義或解釋 , 但這是編程語言是堅決杜絕的 。 編程語言應有的性能要求有:一致性 、 無二義性 、 簡潔性 、局部性 、 線性 。 python語言也不列外 。 python的 語法比較簡單 , 采用縮進的方式 。 如:
a=100;
if a>=0:print(a)
else:print(-a)
1. 以#開頭的是注釋
2. 每一行都是一個語句
2. 當語句以:結尾時 , 縮進的語句視為一整個代碼塊(縮進有利有弊 1. 好處是強迫你寫出格式化美觀的代碼 , 但是在python中并沒有規定縮進是幾個空格還是tab , 一般約定俗成堅持使用四個空格的縮進 。2. 強迫你縮進更少的代碼 , 這樣你回吧傾向于更長的代碼拆分為若干個函數 ,提高代碼復用性3. 壞處就是 , 當你粘貼代碼的時候必須要重新檢查縮進是否正確 , 此時IDE也很難像格式化java代碼一樣格式化Python代碼 )
4. Python程序時大小寫敏感的語言
一、數據類型和變量 、常量
基本數據類型: 整數: 在python中可以處理任意大小的整數 ,包括負數 , 在python語言中的表示方法和數學上的寫法一模一樣 浮點數 浮點數就是小數 , 之所以叫浮點數是因為當用 科學計數法表示一個小數小數點的位置不是固定的 ,而是浮動的 , 在Python中很大或很小的浮點數最好使用科學計數法表示 。 整數和浮點數在計算機中存儲的方式是不同的 。整數在計算機中存儲是永遠是精確的 , 而浮點數只有很少一部分能精確存儲 。 字符串 字符串是以單引號或雙引號引起來的任意文本 布爾值 一個布爾值只有True 、 False兩種值 , 在python中可以直接用True 、 False表示布爾值(注意大寫) , 也可以通過布爾運算計算出來 。 布爾值也可以用 and 、 not 、 or 運算 空值 空值是Python中一個特殊的值 , 用None表示 , Nono不能理解為0 , 因為0是有意義的 , 而None是一個特殊的空值 。 變量: 變量名只能由字母 、 數字 、 下劃線組成 , 且不能用數字開頭 在Python中 = 是復制語句 , 可以把任意數據類型復制給變量 ,同一個變量可以反復復制 , 而且可以使不同類型的變量 。(這種變量類型本身不確定的語言稱之為動態語言 ) 當執行 a=’abc’ 時 , Python解釋器干了兩件事: 在內存中創建了一個‘abc’的字符串 在內存中創建了一個名為a的變量 , 并把它指向‘abc’ 常量: 常量就是不能變的變量 , 一般來說常量全部用大寫的變量名表示 , 如數學常數π在Python中使用PI表示 。 但事實上常量仍然是一個變量 , Python根本沒有任何機制保證PI不會被改變
二、 字符串和編碼
編碼 略 字符串
對于單個字符的編碼 , Python提供了ord()函數獲取字符的整數表示 , chr()函數把編碼轉換為對應的字符 python的字符串類型是str , 在內存中以Unicode表示 , 一個字符對應若干個字節 , 如果要在網絡上進行傳輸 , 或者保存在磁盤上 , 就需要把str保存為以字節為單位的bytes 。 python中bytes類型的數據用帶b前綴的單引號或雙引號表示
x=b'abc'
要注意bytes類型和str類型的數據 , b’abc’ 和’abc’雖然內容一致 , 但是bytes的數據每個字符只占一個字節 。 : encode() : 可以使用encode()方法把str類型的字符串通過指定編碼進行轉換 。當指定的編碼無法表示對應的字符時會報錯 。 decode() : 當python代碼從磁盤讀取數據時 , 讀取到的是字節流, 如果想要獲取中文數據 , 需要對字節流使用decode()進行解碼操作 。當需要忽略字節流中錯誤的字節時 , 可以添加參數errors=‘ignore’ len(str):查看字符串包含多少個字符注意不是字節而是字符 len(bytes): 獲取字符串字節個數 在開發中如果需要中文與bytes轉換時 , 應該堅持使用utf-8 , py源代碼本身也是一個文本文件 , 當源代碼中包好中文時保存python源代碼應該制定編碼為utf-8(windows下默認gbk , linux下默認utf-8) 。為了在python源碼執行時解釋器解釋正確 , 因該在文件中開頭處加上 # -- coding:utf-8 -- 告訴解釋器解釋代碼時使用 utf-8編碼 。 格式化字符串: 如何輸出類似“親愛的xxx , 你xx月的話費是xxxx!”的字符串 , xxx中的內容都是根據變量變化的 , 所以python提供了簡便的格式化字符的方式 。 在需要變量的位置放入占位符 , 在有參數時自動調用參數中對應的內容 。常見的占位符:
占位符替換內容 %d 整數 %f 浮點數 %s 字符串 %x 十六進制數
其中格式化整數和浮點式還可以指定是否補0和整數與小數的位數
當字符串中包含%時 , %需要轉義 ,用%%表示% 。 format() : 另一種格式化字符串的方法 , 他會將傳入的字符串依次的替換字符串內的占位符
三 、 list和tuple
list: 列表list是python內置的一種數據類型 。 list是一種有序的集合 , 可以隨時添加和刪除其中的元素 。
可以用索引來訪問list中的元素 。 當索引為正整數時 , 索引從0開始 。當索引為負整數時, 索引從-1開始 。 當索引超出list的長度時 , 會報錯索引越界 。 list是一個可變的有序列表 添加元素到末尾 添加元素到指定位置 獲取并刪除末尾元素 獲取并刪除指定位置元素 list中的元素數據類型可以不同 tuple: 另一種序列表叫元祖 。 tuple與list非常相似 。 但是tuple一旦初始化就不能修改 。只能獲取其中的元素而不能刪除或修改 。
因為tuple是不可變的 , 所以代碼更加安全 , 在能用tuple時盡量使用tuple 。 但是tuple由于是不可變的 ,所以在定義tuple時 , 其中的所有元素就應該確定下來 list用[]來表示 , tuple用()表示 。 tuple中即使只有一個元素時 , 也必須加上逗號 ,避免與計算時的()混淆 。
四 、 條件判斷
之所以可以做很多自動化任務 , 就是因為他可以自動根據情景做條件判斷 。 根據python的縮進規則 , 相同的連續的縮進視為同一個代碼塊 。
# -*- coding:utf-8 -*-
# 使用input獲取到的內容都為Str類型 需要轉換后才能使用運算符運算
age =int(input("請輸入你的年齡:"))
if age>18 :print("你是成年人!")
elif age>15 :print("你是青少年!")
else: print("你是兒童!")input("輸入任意字符退出!")
python中if判斷天劍還可以簡寫 , 直接判斷自動推斷數據類型 , 然后自動判斷整數或浮點數是否為0 , 字符串是否為空 ,list是否為空 。 如果是則運算結果為Ture , 否則為False 。
五 、 循環
python中提供 兩種循環: for-in 和while循環 。
for循環 :
# -*- conding : utf-8 -*-
#python中循環#循環輸出名字
names = ['韓梅梅' , '李雷雷' , '小明明']
for name in names :print(name)#循環輸出有序數字
list = [1,2,3,4,5,6,7,8,9]
for l in list :print(l) # 但是如果想要輸出1~10000的有序數字 , 難道需要提前定義1~10000的list么list2=range(10001) # range()函數用于生成0到指定數字的有序list
for l in list2:print(l)
while循環:
#while 循環
# 求0到100的和sum = 0
n = 100
while n>0 :sum =sum +nn = n - 1
print("0到100的整數和為:" ,sum)
break 與 continue 在循環中可以使用break提前結束循環 , 一般需要配合if使用 。 在循環中可以使用continue結束本輪循環 , 之后繼續進行下一輪循環 。
六 、 dict和set
dict : python中內置了dict的支持 , dict全程dictionary , 在其他語言中也稱為map , 使用鍵值對存儲 , 有著極快的查找速度 。 (原因: dict有自己的索引表 , 不會隨著元素的增多而導致查詢速度變慢) 在dict中 一個key只能對應一個value ,在key一樣的情況下 后進的value會把之前的value覆蓋。 在修改value時如果value不存在 , 則會報錯 。為了避免key不存在的錯誤 , 可以事先通過in判斷key在dict中是否存在 。 也可以通過get()函數判斷key是否存在 ,如果不存在則返回none 或返回自己制定的缺省值。 (在python的交互環境中測試時 如果結果為None , 則不會有任何顯示 。 ) dict和list相比: dict可以存儲鍵值對格式的數據 。 dict的查詢速度非常快 , 不會隨元素增多而變慢 dict占用的內存空間較大 , 內存浪費多 dict總結: dict可以 =用在需要鈣素查詢多的地方 , 在python代碼中幾乎無處不在 ,需要注意的是dict中元素的key必須是不可變對象 。 這是因為dict需要根據key來計算value的存儲位置 , 如果每計算的位置都不一樣那就完全混亂了 。 在python中字符串 、 整數都是不可變的 , 因此可以放心的用作key 。 set : set中存儲的元素格式與list類似, 但是存儲的元素的位置和存儲的順序無關, 且set內存儲的元素是不可以重復的 。
add() : 通過add()函數將元素添加到set中 。 remove() : 通過remove()函數將元素從set 中移除 。 在數學的概念上 set是一個無序不重復的元素的集合 , 所以可以對set進行交集、 并集運算 。
set總結: set和dict 的唯一區別就是dict存儲的元素是鍵值對形式的 ,而set只存儲了key , set和dict中的key都是不可重復的 , 存儲順序相對于存入順序來說都是無序的 , 且set和dict的原理是一樣的 , 同樣不可以存儲可變元素 , 因為無法判斷兩個元素是否相等 , 也就無法保證set中不會有重復元素 。(在python中str和整數是不可變元素 )
總結
以上是生活随笔 為你收集整理的Python学习笔记(三) Python基础 的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。