Python基礎#常用命令和函數(shù)

本篇內容為個人之前所有學的python常用命令和函數(shù)的整理曹抬,后期會不斷更新。由于本人平時雙開急鳄,會同時包含python2和python3的命令谤民,同時會以 #py2 #py3的注釋注明, 沒有注明的就代表通用疾宏。

如果想py2 py3雙開的同學可以參考

刀客特鹿:Windows下Python 2.7和3.X 在同一臺電腦上共存(雙開)方法zhuanlan.zhihu.com

本位作為筆記整理张足,可能不像教材那樣邏輯清晰,建議搜索使用坎藐,如果要系統(tǒng)性的學習为牍,還是建議找專業(yè)的材料。

本文內容全為自己手動整理,當然參考多方資料吵聪,如有侵權凌那,或者需要添加相關參考鏈接,請聯(lián)系本人吟逝,本人一定會盡自己所能遵守每一位互聯(lián)網原創(chuàng)者的知識版權帽蝶。

本文參考網站 和學習資源推薦:

廖雪峰的官方網站

Python教程www.liaoxuefeng.com

簡明Python教程

簡明 Python 教程www.kuqin.com

操作系統(tǒng) windows

IDE:pycharm

Python軟件安裝包:Anaconda

如果Python和pycharm都不會安裝的同學,請參考:

刀客特鹿:打開Python的優(yōu)雅姿勢——手把手教零基礎的你安裝python(Anaconda)zhuanlan.zhihu.com刀客特鹿:打開Python的優(yōu)雅姿勢——手把手教零基礎的你安裝python開發(fā)環(huán)IDE(Pycharm)zhuanlan.zhihu.com

統(tǒng)一程序的編碼:

# 因為python對中文字符串不是太友好块攒,一般都會在文件的首行定義編碼励稳。至于其中的原因,還希望大家自己去網上搜索答案囱井。初學者不理解也沒有關系驹尼,強行養(yǎng)成每次開篇打碼就把以下內容復制在首行就可以。

# encoding: utf-8# -*- coding: utf-8 -*-

# 以上兩種寫法的意思是一樣的庞呕,隨便哪種都可以新翎,意思都是指定本程序指定默認編碼 utf-8

當然,后續(xù)初學者還是會遇到很多編碼問題住练。這是一種挑戰(zhàn)地啰,也是一道門檻,鼓勵跨越讲逛。

有興趣的同學可以看廖老師的講解:

字符串和編碼www.liaoxuefeng.com

導入庫

import pandas import pandas as pdfrom Collecting_data import Collect_stock_data

# 從我自己寫的文件 Collecting_data作為函數(shù)導入

有些模塊內容比較豐富也會用到類似方法導入亏吝,如

from matplotlib.pyplot import plot

輸出打印

## hellow world

# py2

print 'hellow world'

# py3

print('hellow word')

# 其實python2.7版本也支持print()的方式, 如果是初學者可以統(tǒng)一使用print()方式

# 輸出格式打印

a = 'Peter'

# py2

print "My name is:" + a

# py3

print("My name is:" + a)

# 多變量的輸出打印

a = 'Peter'b = 1c = 17.4576

# py2

print a + 'has' + str(b) + 'book which is cost ' + str(c) + ' yuan.'print"%s has %d book which is cost %.2f yuan." % (a, b, c)print "{} has {} book which is cost {} yuan.".format(a, str(b), float(c))

# py3

print(a + ' has ' + str(b) + ' book which is cost ' + str(c) + ' yuan.')print("%s has %d book which is cost %.2f yuan." % (a, b, c))print("{} has {} book which is cost {} yuan.".format(a, str(b), float(c)))

輸出

# 從上面的代碼可以看出,py2 和 py3 對于print這個命令盏混,多數(shù)情況下蔚鸥,區(qū)別就是加不加()。

占位符

%d int

%s str

%f float

%x 十六進制整數(shù)

輸入變量

name = input()print(name)

還是用上面的案例

a = input()b = 1c = 17.4576print(a + ' has ' + str(b) + ' book which is cost ' + str(c) + ' yuan.')print("%s has %d book which is cost %.2f yuan." % (a, b, c))print("{} has {} book which is cost {} yuan.".format(a, str(b), float(c)))

在pycharm的終端輸入 你想設置的名字

# input()在py2和py3里的差異是许赃,py2里要輸入'Lilith', py3里只要輸入Lilith止喷,也就是說py2里input()輸入的變量類型要自己定義,而py3里則默認為str格式

終止運行程序

exit()

注釋

# 以 # 開頭的本行內容都為注釋

""" ... """ 以""" 開頭到 以"""結尾的多行內容都可以是注釋图焰。

數(shù)據類型和變量

數(shù)字變量

a = 100 # int 整型b = 18.88 # float 浮點數(shù)c = 3.14E10 # 科學計數(shù)法启盛,代表3.14*10~10次方

字符串 string

d = 'hellow world'? # 單引號,雙引號,三引號都可以蹦掐,引號內的可以是字母技羔, 單詞,語句卧抗。d = ”hellow world“d = '''hellow world'''

以上三種寫法效果一樣

轉義字符 \ %

e = 'I\'m \"OK\"!'? # 通常用來輸出 引號 這類有特殊意義的符號f = 100.00print('Percentage is %f%%' % (float(f)))? # 第二個%是轉義字符藤滥,第三個%是要輸出的內容

布爾值, bool:

True

False

空值

None

查看變量類型 type()

a = 'Peter'

b = 1

c = 17.4576

d = True

e = None

print(type(a), type(b), type(c), type(d), type(e))

基本運算:

計算符號

算符是連接一個或多個元素的符號社裆,用來表達計算

常見的算術符號:+ - * / %

% 是取余數(shù)的操作拙绊,不是除法

9 % 3 == 0,9%2==1

注意:除法運算時 /

整除還是整,要得到小數(shù)标沪,需要用浮點數(shù)除整或者浮點數(shù)除浮點數(shù)

print(10 / 3)? # 整數(shù)除以整數(shù)榄攀,結果是整數(shù)3,而不是3.33333...print(10.0 / 3) # 小數(shù)除以整數(shù)金句,結果是浮點數(shù)檩赢,結果是3.33333...

自運算的快速寫法

num = 1num += 1? # 等價于 num = num + 1

# 在寫一個計數(shù)器的時候經常使用上面的操作

類似的還有

num -= 1num *= 2num /= 3

比較運算符:

>, <, >=, <=, ==, !=(不等于)

返回的是布爾值

布爾運算符:

and, or, &, |

and 等價于 &

or 等價于 |

作用是 布爾值比較

# 建議盡量使用 & | 表達邏輯關系,因為在很多情況下违寞,如pandas的dataframe中用and和or是無法識別邏輯關系的贞瞒。

列表 list[] 操作

list是一種有序的集合,可以隨時添加和刪除其中的元素趁曼。

定義一個列表

a = [1, 2 ,3 , 4, 5]

有序的概念

b = [5, 4, 3, 2, 1]a ! = b? # 輸出 True

列表長度 len()

len(a) == 5

切片操作

列表內的元素從0開始順序計數(shù)

a[0] == 1,? a[2] == 3

切片賦值军浆,元素賦值

a[0] = 5,? a == [5, 2, 3, 4, 5]

反向切片

a[-1] == 5

多個元素切片

a[1:3] == [2, 3]? # 注意list的切片區(qū)間是開閉的,取前不取尾巴a[1:] == [2, 3, 4, 5]? #取出序號1以后所有的元素a[-1:] == 5? a[-2:] == [4, 5]a[ : 3]? == [1, 2, 3]

# 從這個結果可以看出 : 前面默認hi0挡闰, 后面默認的是len(list), 而且只能從坐向右取數(shù)

a[1:4:2] == [2, 4]? # 按范圍[1:4] 按步長2 取數(shù)

列表中可以同時放入多種變量類型

b = [1, 'a', 2.44, 5E10, 'name' ]

列表的相加(合并)

c = a + bc = a.extend(b)

輸出:[1, 2, 3, 4, 5, 1, 'a', 2.44, 50000000000.0, 'name']

這種操作類似 a.extend(b) print(a) 注意:c = a.extend(b) 結果是None

另外對列表中的元素對應求和操作需要for 或者itertools

列表乘以數(shù)字 *

print(a*3)

輸出:[1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5]

列表添加列表 extend()

a.extend(b)

輸出:[1, 2, 3, 4, 5, 1, 'a', 2.44, 50000000000.0, 'name']

列表添加元素 append()

a.append(b)

輸出:[1, 2, 3, 4, 5, [1, 'a', 2.44, 50000000000.0, 'name']]

append是將一個列表作為一個元素塞入原始列表中

列表刪除元素 remove()

a.remove(3)a.remove(a[2])

只能刪除單個元素

列表的插入 insert(index, value)

a.insert(1,'Second')print(a)

輸出 [1, 'Second', 2, 3, 4, 5]

列表的反轉乒融,倒敘,排序操作

反轉摄悯,倒敘 reverse()

a.reverse()

排序 sort()

a.sort()? # 默認從小到大排序簇抵,可以設置參數(shù)reverse=True, 效果就和reverse()一樣了b.sort()? # 如果有字符串也能排序print(b)

輸出:[1, 2.44, 50000000000.0, 'a', 'name']

列表查詢射众,元素定位 list.index()

print(a.index(4))

輸出:3

如果一個列表里有兩個相同的元素碟摆,只會輸出第一個元素在列表里的位置(序號)

a = [5, 2, 3, 4, 5]print(a.index(5))

輸出:0

快速創(chuàng)建一個列表 range()

print(range(5))? # 輸出 [0, 1, 2, 3, 4]? # 從0開始計數(shù), 輸出5個數(shù)字print(range(1:10))? # 輸出 [1, 2, 3, 4, 5, 6, 7, 8, 9]print(range(1: 10: 2))? # 輸出[1, 3, 5, 7, 9]? #? 從1到10,步長為2

列表的最大值 max(), 最小值min()

print(max(a))? 輸出: 5print(min(a))? 輸出:1

判斷某個元素是否在列表中叨橱,in

print(0 in a)? # 輸出:Falseprint(1 in a)? # 輸出: Trueprint(0 not in a)? # 輸出: Trueprint(1 not in a)? # 輸出:False

元組 tuple ()

另一種有序列表叫元組:tuple典蜕。tuple和list非常類似,但是tuple一旦初始化就不能修改罗洗。 所有的操作

可以參考列表list的操作

集合set

無序的列表集合愉舔,且不能有重復值,可以用作自動去重

d = set([1,2,3,3])e = set([3,2,1])print(d == e)

輸出: True

注:對于set的理解伙菜,廖雪峰老師的原文:set和dict類似轩缤,也是一組key的集合,但不存儲value贩绕。由于key不能重復火的,所以,在set中淑倾,沒有重復的key馏鹤。

而我個人覺得把set 和 list, tuple 歸為一類更好理解。因為無序娇哆,所以集合不能切片操作湃累,如果要結合向列表list那樣操作勃救,可以用list(d)再轉成列表

集合添加元素 add.

d.add(4)

集合刪除元素 remove

d.remove(3)

字典dict {}

Python內置了字典:dict的支持,dict全稱dictionary治力,在其他語言中也稱為map蒙秒,使用鍵-值(key-value)存儲,具有極快的查找速度宵统。

d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}d['Michael']

輸出 95

字典是無序的數(shù)組税肪,所以不能切片操作。

取出列表中指定元素榜田,用get, 或者直接用key值

d['Michael']? # 輸出 95d.get('Michael')? # 輸出 95

判斷key值是否存在 in 注意:這個方法只能判斷key值益兄,不能判斷value

print('Michael' in d)? # 輸出 Trueprint(95 in d)? # 輸出 False

字典的賦值,修改元素

d['Michael'] = 20print(d)

輸出 {'Bob': 75, 'Michael': 20, 'Tracy': 85}

添加元素箭券,通過賦值的方法可以直接添加元素

d['Ella'] = 20print(d)

輸出 {'Bob': 75, 'Ella': 20, 'Michael': 95, 'Tracy': 85}

輸出字典的key值

print(d.keys())

輸出字典的value值

print(d.values())

將兩個列表組合成一個dict净捅, map()

names = ['Michael', 'Bob', 'Tracy']scores = [95, 75, 85]d = dict(map(lambda x,y:[x,y], names,scores))

映射函數(shù) map(function, iterable)

function: 要重復運行的函數(shù)

iterable: 一個或多個序列(列表,元組辩块,集合)

對每個列表里的數(shù)組求平方:

def square(x):return x*xprint(map(square, [1,2,3,4,5]))

也可以寫成

print(map(lambda x: x*x, [1,2,3,4,5]))

兩個列表的元素相加求和

a = [1, 2, 4, 5, 6]b = [4, 5, 6, 7, 8]print(map(lambda x,y: x+y, a,b))

但是以下的寫法是錯誤的

print(map(sum,a,b))

只有運行本程序時蛔六,才會運行以下函數(shù),如果作為庫被導入則不運行

if __name__ == '__main__':

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末废亭,一起剝皮案震驚了整個濱河市国章,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌豆村,老刑警劉巖液兽,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異掌动,居然都是意外死亡四啰,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門粗恢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來柑晒,“玉大人,你說我怎么就攤上這事眷射〕自蓿” “怎么了?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵妖碉,是天一觀的道長涌庭。 經常有香客問我,道長嗅绸,這世上最難降的妖魔是什么脾猛? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任撕彤,我火速辦了婚禮鱼鸠,結果婚禮上猛拴,老公的妹妹穿的比我還像新娘。我一直安慰自己蚀狰,他們只是感情好愉昆,可當我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著麻蹋,像睡著了一般跛溉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上扮授,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天芳室,我揣著相機與錄音,去河邊找鬼刹勃。 笑死堪侯,一個胖子當著我的面吹牛,可吹牛的內容都是我干的荔仁。 我是一名探鬼主播伍宦,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼乏梁!你這毒婦竟也來了次洼?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤遇骑,失蹤者是張志新(化名)和其女友劉穎卖毁,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體落萎,經...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡势篡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了模暗。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片禁悠。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖兑宇,靈堂內的尸體忽然破棺而出碍侦,到底是詐尸還是另有隱情,我是刑警寧澤隶糕,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布瓷产,位于F島的核電站,受9級特大地震影響枚驻,放射性物質發(fā)生泄漏濒旦。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一再登、第九天 我趴在偏房一處隱蔽的房頂上張望尔邓。 院中可真熱鬧晾剖,春花似錦、人聲如沸梯嗽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽灯节。三九已至循头,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間炎疆,已是汗流浹背卡骂。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留形入,地道東北人偿警。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像唯笙,于是被迫代替她去往敵國和親螟蒸。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內容