桂林網(wǎng)站建設費用seo搜索優(yōu)化公司
一、初識python
?(一).Python起源
Python創(chuàng)始人為吉多·范羅蘇姆(荷蘭),Python崇尚優(yōu)美、清晰、簡明的編輯風格。Python語言結(jié)構(gòu)清晰簡單、數(shù)據(jù)庫豐富、運行成熟穩(wěn)定,科學計算統(tǒng)計分析領(lǐng)先。目前廣泛應用于云計算、Web開發(fā)、科學運算、人工智能、系統(tǒng)運維、金融領(lǐng)域。在金融領(lǐng)域中,主要用于量化分析、金融分析尤其擅長策略回測。機緣巧合通過視頻課程學習Python,向金融+Python方向靠攏。
Python是一門解釋性語言。區(qū)別于輸出結(jié)果型,通過及時輸出,提高開發(fā)效率。
(二).python的基本知識
1.python變量的命名規(guī)則
(1).python變量由字母、數(shù)字、下劃線組成
(2). python變量不能用純數(shù)字,也不能用數(shù)字開頭
(3). python變量不能是python的關(guān)鍵字
2.python變量命名的常用規(guī)范
(1). 變量名不要太長
(2).變量名要有意義
(3)變量名區(qū)分大小寫
(4).變量名不要用中文
(5).多使用駝峰體和下劃線命名
3.python變量類型
(1).int類型,整數(shù),可以進行+、-*、/、%(計算余數(shù))、//(整除)運算
(2).str類型,字符串,',",'''??梢酝ㄟ^type(變量)查看數(shù)據(jù)類型,字符串可以進行+ *運算
(3).bool類型,真命題或假命題,結(jié)果True、False,只用來條件判斷
(4).用戶交互,使用input(),input接收到的為字符串
4.python基本數(shù)據(jù)類型
(1). int整數(shù)
#bit_length()返回一個數(shù)的二進制長度
(2)str字符串
由',",'''括起來的內(nèi)容是字符串,字符串是不可改變的數(shù)據(jù)類型,不論執(zhí)行任何操作,原字符串是不會改變的,每次操作都會返回字符串。
a.字符串的索引和切片
索引從0開始,使用[下標]
切片[起始位置:結(jié)束位置] #切片時顧頭不顧尾,只能切到開頭的位置,切不到結(jié)尾,默認從左往右切
print(s[-1:-3:-1])"-1"表示步長,每位移一單位,從右往左切片
b.字符串的修改
sn=s.capitalize() 把字符串首字母變成大寫
sn=s.upper() 把字符串變成大寫
sn=s.lower() 把字符串變成小寫
sn=s.swapcase() 把字符串大小寫互換
sn=s.title() 把字符串每個單詞首字母變成大寫
sn=s.center(x,"*or空白等") 把字符串左右兩邊用*拼接成x個單位
sn=s.strip() 默認去掉空格,空白,可以指定去掉的內(nèi)容 (去掉左側(cè)空格:s.lstrip 去掉右側(cè)空格:s.rstrip)
sn=s.erplace("old","new") 把字符串中的內(nèi)容進行替換
sn=s.split() 對字符串進行切割,切完的結(jié)果是一個列表 #與 joint相對
c.字符串的查找
sn=s.startwith() 字符串是否以xxx開頭
sn=s.endwith() 字符串是否以xxx結(jié)尾
sn=s.count(a) 字符串中a出現(xiàn)的次數(shù)
sn=s.find(a) 查找字符串中a第一次出現(xiàn)的位置,沒有返回-1
sn=s.inde(a) 查找字符串中a的位置,沒有會報錯
d.字符串的條件判斷
s.isdigit() 判斷是否為數(shù)字
s.isalpha() 判斷是否為字母
s.isalnum() 判斷是否為數(shù)字
e.字符串長度
len(s) 字符串中字符的個數(shù) #python內(nèi)置函數(shù)
(3)bool布爾值
布爾值只有兩個值,True,False,空的東西是False,非空的是True
(4)list列表
a.什么是列表
列表是一個可變的數(shù)據(jù)類型,列表由[]表示,每一項元素用逗號隔開,列表什么都能裝,能裝對象的對象,列表可以裝大量的數(shù)據(jù)
b.列表的索引和切片
列表和字符串一樣,也有索引和切片,切片切出的內(nèi)容是列表,索引的下標從0開始,[起始位置:結(jié)束位置:步長]
c.列表的增刪改查
增加:lst.append() 在原有列表基礎(chǔ)上進行的操作,屁股后面添加,只能加一個
lst.insert(n,xxx) 在第n個位置插入xxx
lst.extend(["",""]) 元素為列表整體添加,否則迭代添加
刪除:lst.pop(n) 刪除指定位置元素
lst.remove("") 刪除特定元素
del lst[:] 切片刪除
lst.clear() 清空
修改:lst[n]="xxx" 修改第n個元素為xxx
lst[m:n]=lst["x"] 切片部分修改為x
查詢:for el in lst:
print(el)
d.列表的相關(guān)操作
計數(shù):lst.count("") 列表中某個元素的個數(shù)
排序:lst.sort() 將列表正序排列
括號中加"reverse=True"變?yōu)榻敌蚺帕?/p>
翻轉(zhuǎn):lst.reverse() 將列表中的元素翻轉(zhuǎn)
嵌套:lst[][] 可進行降維操作
lst="_"join(["",""])將列表轉(zhuǎn)換成字符串,每個元素之間用_連接
split字符串切割為列表
(5)tuple元組
元組tu用()表示,元組中如果只有一個元素,需要在括號中加入一個逗號,Tu=tuple()為空元組,元組是一個可迭代對象,可以使用for循環(huán)。
元組不可以進行增刪改,只能看,可以查詢,切片。
元組查詢:tu[],tu[m:n]
元組第一層元素不能進行賦值,內(nèi)部元素是沒有要求的
(6)dict字典
a.字典的含義
字典dict用{}表示,字典為鍵值對數(shù)據(jù),{key:value},具有唯一性特點
字典中的鍵都必須是可hash的,不可變的任何數(shù)據(jù)類型都可以當做字典中的鍵,字典中的值沒有任何限制。
b.字典的增刪改查
增加:dic[key]=value
dic.setdefault(key,value) 如果字典中不存在就進行添加,存在不做任何操作
刪除:dic.pop("key")
del dic["key"]
修改:dic[key]=value 修改字典鍵對應的值
dic.update(字典)
查找:dic(key) 沒有會報錯
dic.get(key) 沒有返回none
set.default(key)
c.字典的其他操作:
dic.keys 獲取到的鍵存在一個高仿列表中
dic.values 獲取到的值存在一個高仿列表中
dic.items 獲取到的所有鍵值對元組形式存在一個高仿列表中
dic.fromkeys 不會對字典產(chǎn)生影響,fromkeys直接使用類名進行訪問
列表和字典在循環(huán)的時候不能直接刪除,需要把要刪除的內(nèi)容記錄在新列表中,然后循環(huán)新列表進行刪除。
(7)set集合
a.set集合定義:
set集合是Python的一個基本數(shù)據(jù)類型,一般不是很常用,set中的元素是不重復的,無序的,里面的元素必須是可hash的(int,str,tuple,bool),可以這樣來記,set就是dict類型的數(shù)據(jù),但是不保存value,只保存key,set也用{ }表示。
#set中的元素是可hash的,set本身不可hash.
集合去重
b.set集合的增刪改查
增加:s.add
s.update 迭代更新
刪除: s.pop # 隨機彈出一個
s.remove(“xxx”) #直接刪除元素 元素不存在會報錯
clear() 清空集合,打印出來是set()與dict區(qū)分
修改:
Set集合中的數(shù)據(jù)沒有索引,也沒有辦法定位一個元素,所以沒有辦法直接修改,可以采用先刪除后添加的方式完成修改操作
c.set集合的常用操作
查詢:for 循環(huán)
交集:print(s1 & s2)
并集: ?print(s1 | s2)
差集:print(s1 - s2)
子集:print(s1 <s2)
5.深淺拷貝
lst2 = lst1 ? ? ?# 賦值
沒有創(chuàng)建新對象,共用同一對象。
lst2 = lst1[:] ?#淺拷貝
只拷貝第一層內(nèi)容: [:],copy()
深拷貝:把對象內(nèi)部的內(nèi)容全部拷貝一份,引入copy模塊。
import copy
lst2 = copy.deepcopy(lst1)