一膝藕、基本使用
1.1 print功能
1.python3以后的版本需要加括號(hào)棋凳,python2.7及2.7以前的版本不需要加括號(hào)。
2.打印字符串需要加單引號(hào)或者雙引號(hào)。
3.打印字符串的疊加可以用+將兩個(gè)字符串連接起來(lái)抒寂。
4.可以打印簡(jiǎn)單的運(yùn)算(+,-掠剑,*屈芜,/)。字符串不可以直接和數(shù)字相加朴译。
5.打印多個(gè)變量時(shí)用,分隔井佑。如:print(a,b,c)
1.2 基礎(chǔ)數(shù)學(xué)運(yùn)算
1.基本運(yùn)算有:+,-眠寿,躬翁,/,//(除取整)盯拱,%(除取余)盒发,m*n(m的n次方)。
1.3 變量
1.命名規(guī)則:英文狡逢、數(shù)字和_的組合宁舰,不能以數(shù)字開頭;區(qū)分大小寫奢浑。
2.可以一次定義一個(gè)或者多個(gè)變量
二明吩、while和for循環(huán)
2.1 while循環(huán)
1.基本語(yǔ)法
while condition: #condition為判斷條件
expressions #expressions是執(zhí)行的語(yǔ)句
2.注意點(diǎn):在使用while的時(shí)候在循環(huán)內(nèi)部一定要修改判斷條件的值。如果陷入無(wú)限循環(huán)殷费,使用ctrl+c來(lái)終止程序
3.condition可以是判斷表達(dá)式(<,>,<=,>=,==,!=)印荔;也可以是數(shù)字,整數(shù)和浮點(diǎn)數(shù)也能進(jìn)行Boolean數(shù)據(jù)操作详羡,0或者0.0會(huì)返回False其余的返回True仍律;也可以是None的數(shù)據(jù)類型,將會(huì)返回False实柠;也可以是集合類型水泉,例如list,tuple,dict和set等,如何集合中的元素?cái)?shù)量為0窒盐,返回False草则,否則返回True。
2.2 for循環(huán)
1.基本語(yǔ)法:
for item in sequence: #sequence為可迭代的對(duì)象蟹漓,item為序列中的每個(gè)對(duì)象
expressions
2.可迭代對(duì)象可以用range來(lái)獲得炕横,range有三種方法:
(1)range(start, stop),start是序列的起始值葡粒,stop為結(jié)束值份殿,但不包括改值膜钓。
(2)range(stop),默認(rèn)從0開始
(3)range(start, stop, step)卿嘲,step是步長(zhǎng)颂斜,每次增加step的值。
3.python內(nèi)置的list拾枣、tuple沃疮、dict和set四種基本集合的對(duì)象都能夠作為迭代集。
4.可以按照迭代器的要求自己生成迭代器對(duì)象梅肤。只要類中實(shí)現(xiàn)了__iter__
和next
函數(shù)忿磅,就可以使用。例子如下(來(lái)源于莫煩的python教程)凭语。
# define a Fib class
class Fib(object):
def __init__(self, max):
self.max = max
self.n, self.a, self.b = 0, 0, 1
def __iter__(self):
return self
def __next__(self):
if self.n < self.max:
r = self.b
self.a, self.b = self.b, self.a + self.b
self.n = self.n + 1
return r
raise StopIteration()
# using Fib object
for i in Fib(5):
print(i)
5.Python 使用 yield 關(guān)鍵字也能實(shí)現(xiàn)類似迭代的效果葱她,yield 語(yǔ)句每次 執(zhí)行時(shí),立即返回結(jié)果給上層調(diào)用者似扔,而當(dāng)前的狀態(tài)仍然保留吨些,以便迭代器下一次循環(huán)調(diào)用。這樣做的 好處是在于節(jié)約硬件資源炒辉,在需要的時(shí)候才會(huì)執(zhí)行豪墅,并且每次只執(zhí)行一次。
def fib(max):
a, b = 0, 1
while max:
r = b
a, b = b, a+b
max -= 1
yield r
# using generator
for i in fib(5):
print(i)
三黔寇、if判斷
1.基本語(yǔ)法
#第一種類型
if condition:
expressions
#第二種類型
if condition:
true_expressions #條件為真執(zhí)行的語(yǔ)句
else:
false_expressions #條件為假時(shí)執(zhí)行的語(yǔ)句
#第三種類型
if condition1:
true1_expressions
elif condition2:
true2_expressions
elif condtion3:
true3_expressions
elif ...
...
else:
else_expressions
2.python 可以通過if-else
完成類似condition ? value1 : value2
這樣的三木運(yùn)算的功能偶器。
var = var1 if condition else var2
四、定義功能
4.1 def函數(shù)
1.基本語(yǔ)法:
def function_name(parameters):
expressions
4.2 函數(shù)參數(shù)
1.基本用法:
def function_name(parameters):
expressions
4.3 函數(shù)默認(rèn)參數(shù)
1.基本用法:
def function_name(para_1,...,para_n=defau_n,..., para_m=defau_m):
expressions
2.默認(rèn)參數(shù)不能出現(xiàn)在非默認(rèn)參數(shù)前面缝裤。
3.自調(diào)用:如果執(zhí)行該腳本的時(shí)候屏轰,該 if 判斷語(yǔ)句將會(huì)是 True,那么內(nèi)部的代碼將會(huì)執(zhí)行。 如果外部調(diào)用該腳本憋飞,if 判斷語(yǔ)句則為 False,內(nèi)部代碼將不會(huì)執(zhí)行霎苗。
if __name__ == '__main__':
#code_here
4.可變參數(shù):參數(shù)個(gè)數(shù)不固定¢蛔觯可變參數(shù)在函數(shù)定義不能出現(xiàn)在特定參數(shù)和默認(rèn)參數(shù)前面唁盏,因?yàn)榭勺儏?shù)會(huì)吞噬掉這些參數(shù)。
def report(name, *grades): #參數(shù) *grades 使用了 * 修飾检眯,表明該參數(shù)是一個(gè)可變參數(shù)厘擂,這是一個(gè)可迭代的對(duì)象
total_grade = 0
for grade in grades:
total_grade += grade
print(name, 'total grade is ', total_grade)
5.關(guān)鍵字參數(shù):參數(shù)在函數(shù)內(nèi)部自動(dòng)封裝成一個(gè)字典(dict),通常來(lái)講關(guān)鍵字參數(shù)是放在函數(shù)參數(shù)列表的最后
def portrait(name, **kw): #\*\*表示kw是關(guān)鍵字參數(shù)
print('name is', name)
for k,v in kw.items():
print(k, v)
五锰瘸、變量形式
1.局部變量
2.全局變量
六刽严、文件讀寫
1.open讀文件方式
my_file=open('my file.txt','w') #用法: open('文件名','形式'), 其中形式有'w':write;'r':read.
my_file.write(text) #該語(yǔ)句會(huì)寫入先前定義好的 text
my_file.close() #關(guān)閉文件
2.在文件后面追加內(nèi)容
my_file=open('my file.txt','a') # 'a'=append 以增加內(nèi)容的形式打開
my_file.write(append_text)
my_file.close()
3.讀取文件類容
(1) file.read() 能夠讀取到文本的所有內(nèi)容
file= open('my file.txt','r') content=file.read() print(content)
(2)按行讀取 file.readline()
file= open('my file.txt','r') content=file.readline() # 讀取第一行 print(content)
(3)讀取所有行 file.readlines()
file= open('my file.txt','r') content=file.readlines() # python_list 形式,如果要打印出內(nèi)容获茬,需要用for來(lái)迭代 print(content)
七港庄、class類
1.基本用用法:class
定義一個(gè)類, 后面的類別首字母推薦以大寫的形式定義,比如Calculator
恕曲。class
可以先定義自己的屬性鹏氧,比如該屬性的名稱可以寫為 name='Good Calculator'
。class
后面還可以跟def
, 定義一個(gè)函數(shù)佩谣。
class Calculator: #首字母要大寫把还,冒號(hào)不能缺
name='Good Calculator' #該行為class的屬性
price=18
def add(self,x,y): #注意這里的self 是默認(rèn)值
print(self.name)
result = x + y
print(result)
def minus(self,x,y):
result=x-y
print(result)
def times(self,x,y):
print(x*y)
def divide(self,x,y):
print(x/y)
2.類的初始化:init可以理解成初始化class的變量.
class Calculator:
name='good calculator'
price=18
def __init__(self,name,price,height,width,weight): # 注意,這里的下劃線是雙下劃線
self.name=name
self.price=price
self.h=height
self.wi=width
self.we=weight
八茸俭、input輸入
1.variable=input()
表示運(yùn)行后吊履,可以在屏幕中輸入一個(gè)數(shù)字,該數(shù)字會(huì)賦值給自變量调鬓,從屏幕獲得的值默認(rèn)為字符串艇炎。
a_input=input('please input a number:')
九、元組腾窝、列表缀踪、字典
1.tulpe:用小括號(hào)、或者無(wú)括號(hào)來(lái)表述虹脯,是一連串有順序的數(shù)字,元素可以一個(gè)一個(gè)地被迭代驴娃、輸出、運(yùn)用循集、定位取值唇敞。元素的值不能被改變。
2.list:是以中括號(hào)來(lái)命名的,元素可以一個(gè)一個(gè)地被迭代咒彤、輸出疆柔、運(yùn)用、定位取值镶柱。元素的值可以被改變婆硬。用append()
在末尾添加元素,insert()
在指定的位置添加元素奸例,remove()
刪除某個(gè)元素彬犯,count()
計(jì)算某個(gè)元素出現(xiàn)的次數(shù),sort()
排序查吊。
3.字典:有key和 value兩種元素谐区,每一個(gè)key對(duì)應(yīng)一個(gè)value。
a_tuple = (12, 3, 5, 15 , 6)
another_tuple = 12, 3, 5, 15 , 6
a_list = [12, 3, 67, 7, 82]
d1 = {'apple':1, 'pear':2, 'orange':3}
十逻卖、模塊
1.import time
指 import
time
模塊宋列。
2.import time as __
,__
下劃線縮寫部分可以自己定義。
3.from time import time,localtime
,只import
自己想要的功能评也。
4.from time import *
輸入模塊的所有功能炼杖。
十一灭返、其他補(bǔ)充
1.跳出循環(huán):break & continue
2.錯(cuò)誤處理:使用try
try:
file=open('eeee.txt','r') #會(huì)報(bào)錯(cuò)的代碼
except Exception as e: # 將報(bào)錯(cuò)存儲(chǔ)在 e 中
print(e)
3.zip函數(shù)接受任意多個(gè)(包括0個(gè)和1個(gè))序列作為參數(shù),合并后返回一個(gè)tuple列表坤邪。
4.lambda:定義一個(gè)簡(jiǎn)單的函數(shù)熙含。fun = lambda x,y : x+y
。
fun= lambda x,y:x+y
x=int(input('x=')) #這里要定義int整數(shù)艇纺,否則會(huì)默認(rèn)為字符串
y=int(input('y='))
print(fun(x,y))
5.map:是把函數(shù)和參數(shù)綁定在一起怎静。
def fun(x,y):
return (x+y)
a=list(map(fun,[1,2],[3,4]))
6.copy.copy & copy.deepcopy 淺復(fù)制 & 深復(fù)制:當(dāng)使用淺拷貝時(shí),python只是拷貝了最外圍的對(duì)象本身黔衡,內(nèi)部的元素都只是拷貝了一個(gè)引用而已;deepcopy對(duì)外圍和內(nèi)部元素都進(jìn)行了拷貝對(duì)象本身蚓聘,而不是對(duì)象的引用。
7.多線程
8.多進(jìn)程
9.tkinter窗口
10.pickle 是一個(gè) python 中, 壓縮/保存/提取 文件的模塊盟劫。
import pickle
a_dict = {'da': 111, 2: [23,1,4], '23': {1:2,'d':'sad'}}
# pickle a variable to a file
file = open('pickle_example.pickle', 'wb')
pickle.dump(a_dict, file) #保存a_dict的內(nèi)容到file里面
file.close()
# reload a file to a variable
with open('pickle_example.pickle', 'rb') as file:
a_dict1 =pickle.load(file) #提取用pickle保存的文件的內(nèi)容
print(a_dict1)
11.集合set:最主要的功能就是尋找一個(gè)句子或者一個(gè) list 當(dāng)中不同的元素夜牡。
12.正則表達(dá)式