python基礎(chǔ)

1.三引號

多行注釋:
"""
第一行注釋
第二行注釋
第三行注釋
"""
跨多行字符串:
str ="""
how are you?
I'm fine.
thank you,and you?
me too!
 """

2.運(yùn)算符

//表示整除鬼雀,%求余數(shù),**乘方敛滋,floor向上取整寸爆,ceil向下取整

2*2
print(2*2)
foo = math.sqrt
foo(4)=2.0

3.輸出的格式化方法

format方法
age = 20
name = '海哥'
print('My name is {0} .I am {1} years old'.format(name,age))
print('My name is {name} .I am {age} years old'.format(age =age,name = name))
格式符
# 格式符是有多種
print('My name is %s.I am %d years old.' % ('海哥',20))
縮進(jìn)

python對縮進(jìn)格式很嚴(yán)格,縮進(jìn)不同層次則不同:縮進(jìn)用Tab或者4個空格來表示衩辟。

a = 5
# 行首有一個空格螟炫,會出錯
 print(a)
# 正確寫法
print(a)

# 正確的格式
a = [1,2,3]
for i in a:
    if i>=2:
        print(i)

4.控制流

控制流語句有 if for while(需要在邏輯行的末尾加上:)

a = [1,2,3]
for i in a:
    if i==1:
        print("[1]這是",i)
    elif i==2:
        print("[2]這是",i)
    else:
        print("[3]這是",i)
        
## 輸出結(jié)果為
# [1]這是 1
# [2]這是 2
# [3]這是 3

5.函數(shù)

通過關(guān)鍵字 def 來定義

global語句

global語句用以申明x是一個全局變量

x = 50
def func():
    global x

    print('x is',x)
    x = 2
    print('x is',x)
func()
print('x is',x)

結(jié)果:
x is 50
x is 2
x is 2
關(guān)鍵字參數(shù)

函數(shù)的參數(shù)可以不一定要按順序賦予,可以根據(jù)關(guān)鍵字來指定值艺晴。

def func(a,b=4,c=10):
    print("a=",a,"b=",b,"c=",c)
func(2,3,4)
func(b=3,a=6,c=3)

結(jié)果:
a= 2 b= 3 c= 4
a= 6 b= 3 c= 3
可變參數(shù)

可以讓函數(shù)有任意數(shù)量的變量昼钻,通過星號(*)實(shí)現(xiàn)。

當(dāng)我們聲明一個param的星號參數(shù)時封寞,從此處開始直到結(jié)束的所有位置參數(shù)都將被收集并匯集成一個稱為"param"的元組
類似地然评,當(dāng)我們聲明一個
*param的雙星號參數(shù)時,從此處開始直至結(jié)束的所有關(guān)鍵參數(shù)都將收集并匯集成一個名為"param"的字典

def total(a=5,*numbers,**phonebook):
    print("a=",a)
    # 遍歷元組中的所有項(xiàng)目
    for single_item in numbers:
        print('第二個參數(shù):',single_item)
    # 遍歷字典中的所有項(xiàng)目
    for first_part,second_part in phonebook.items():
        print('第三個參數(shù):',first_part,second_part)

total(10,1,2,3,4,JACK=1123,haige=123123)

結(jié)果:
a= 10
第二個參數(shù): 1
第二個參數(shù): 2
第二個參數(shù): 3
第二個參數(shù): 4
第三個參數(shù): JACK 1123
第三個參數(shù): haige 123123
DocStrings

首先要求是函數(shù)的第一行邏輯行的字符串開始狈究。(也可以是模塊或類)

利用'''三引號來規(guī)定

可以通過doc函數(shù)來獲取文檔字符串

通過這種方式碗淌,當(dāng)我們引用別人的包,別人的庫時抖锥,如果不清楚函數(shù)的使用亿眠,可以通過提供者自己寫的文檔字符串,快速查看說明使用磅废。

# DocStrings 文檔字符串
# 能夠幫助你更好記錄程序并讓其更容易理解
# 只能是函數(shù)的第一行邏輯行
def print_max(x,y):
    '''Print the maximum of two numbers.
    The two values must be integers.'''

    x=int(x)
    y=int(y)

    if x>y:
        print(x,'is max')
    else:
        print(y,'is max')

print_max(1,4.5)
print(print_max.__doc__)

結(jié)果:
4 is max
Print the maximum of two numbers.
    The two values must be integers.

6.模塊

python的模塊真的太多太多纳像,太方便了。什么什么爬蟲拯勉,數(shù)據(jù)分析竟趾,可視化,機(jī)器學(xué)習(xí)用python語言學(xué)習(xí)很方便宫峦,就是因?yàn)閜ython的模塊化岔帽,讓我們其他用戶可以互相引用。

還可以使用C語言來撰寫Python模塊斗遏,在編譯后山卦,可以通過標(biāo)準(zhǔn)Python解釋器在自己的項(xiàng)目中使用它

模塊的種類

內(nèi)置模塊、第三方模塊诵次、自定義模塊

模塊的name

每個模塊都有自己的名稱

而在當(dāng)前運(yùn)行的py的name默認(rèn)為main

自然就引出我們平常開發(fā)時账蓉,調(diào)用函數(shù)時,得加多一句
當(dāng)我們寫一個模塊時逾一,而且為了測試而調(diào)用模塊下的函數(shù)铸本。這時候這個模塊有調(diào)用函數(shù)語句。

當(dāng)我們在一個py文件要調(diào)用這個模塊時遵堵,這時候我們的py文件就會自動執(zhí)行該模塊的調(diào)用語句箱玷。

那就很麻煩了怨规,因?yàn)槲覀兊哪康膬H僅是為了引入該模塊的方法。

所以為了開發(fā)的方便性锡足,我們每次開發(fā)項(xiàng)目時波丰,遇到調(diào)用方法時,加多以上的if語句舶得,這樣可以不斷方便被調(diào)用掰烟。

import 模塊名
from 模塊名 import 自己定義的變量名
if __name__ = '__main__'

包其實(shí)就是很多個模塊(py文件)組成的。
一個包含模塊與一個特殊的init.py文件的文件夾沐批。

7.數(shù)據(jù)結(jié)構(gòu)

序列

序列的三種形態(tài)——列表纫骑、元組、字符串

列表

列表用于保存一系列有序項(xiàng)目的集合九孩。類似于購買清單先馆,每件物品都單獨(dú)列一行,且按逗號隔開躺彬。

列表用方括號括起來煤墙,一旦創(chuàng)建了,可以添加顾患、移除番捂、搜索列表中的項(xiàng)目。

shoplist = ['banana','apple','water']

# 輸出數(shù)量
print('I have',len(shoplist),'items to purchase')

# 直接列表輸出
print('list output:',shoplist)

# 分別輸出
print('There items are:',end=' ')
for i in shoplist:
    print(i,end=' ')

# 添加項(xiàng)目-
print('\nI alse have to buy phone:')
shoplist.append('phone')
print('list output:',shoplist)

# 刪除項(xiàng)目
print('I do not want to buy water')
del shoplist[2]
print('list output:',shoplist)

# 給項(xiàng)目排序
print('sort my list:')
shoplist.sort()
print('list output:',shoplist)

結(jié)果:
I have 3 items to purchase
list output: ['banana', 'apple', 'water']
There items are: banana apple water 

I alse have to buy phone:
list output: ['banana', 'apple', 'water', 'phone']

I do not want to buy water
list output: ['banana', 'apple', 'phone']

sort my list:
list output: ['apple', 'banana', 'phone']
元組

用括號來定義江解,用于將多個對象保存到一起设预。

元組不能被編輯或更改。

相當(dāng)于不變的列表犁河。

字典

python用的比較多的數(shù)據(jù)類型鳖枕。它就像JSON數(shù)組。

字典就是一個地址簿桨螺,知道姓名就可以找到其地址宾符。分為keys(唯一)與value,一一對應(yīng)灭翔。

data_mail = {
    'chen':'chen@qq.com',
    'lihua':'lihua@163.com',
    'haige':'2016@m.scnu.edu.cn'
}

# 根據(jù)key值找value
print("haige's mail is",data_mail['haige'])

# 添加一對鍵/值
data_mail['xiaoming']='xiaoming@126.com'
if 'xiaoming' in data_mail:
    print('存在xiaoming')

# 刪除一對鍵/值
del data_mail['lihua']
if 'lihua' not in data_mail:
    print('不存在lihua')

# 輸出當(dāng)前的字典總數(shù)量
print('numbers:',len(data_mail))

# 輸出全部
for name,mail in data_mail.items():
    print('name is {} , mail is {}'.format(name,mail))

輸出:
haige's mail is 2016@m.scnu.edu.cn
存在xiaoming
不存在lihua
numbers: 3
name is chen , mail is chen@qq.com
name is haige , mail is 2016@m.scnu.edu.cn
name is xiaoming , mail is xiaoming@126.com
集合

集合是簡單對象的無序集合魏烫,當(dāng)集合中的項(xiàng)目存在比次序或出現(xiàn)次數(shù)重要時,我們就會用集合肝箱。

# 集合
bri= set(['china','USA','UK'])
print(bri)
print('china in bri is','china' in bri)
print('russia in bri is','russia' in bri)

bric = bri.copy()
print(bric)
bric.add('russia')
bric.remove('USA')
print('after doing something...\n',bric)

# 兩個集合的并集
print(bri & bric)

結(jié)果:
{'china', 'UK', 'USA'}
china in bri is True
russia in bri is False
{'china', 'UK', 'USA'}
after doing something...
 {'china', 'russia', 'UK'}
{'china', 'UK'}

8.序列操作:索引哄褒、切片、相加煌张、相乘

索引從0開始:字面量可以直接索引呐赡,無需變量賦值。
元素切片,第一個索引包括骏融,第二個索引链嘀,不包括
即元素個數(shù)為前后相減萌狂,3:6,即取3個元素怀泊,分別為4,5,6
從頭開始[ : num];從尾開始[-num : ]

[:]取整個序列
numbers = [1,2,3,4,5,6,7,8,9,10]
numbers[3:6]
>[4,5,6]
numbers[0:1]
>[0]
numbers[-3:]
>[8,9,10]
步長茫藏、隱式、顯式
numbers[0:10:2]
>[1, 3, 5, 7, 9]
numbers[::4]
>[1, 5, 9]
numbers[::-2]
>[10, 8, 6, 4, 2]

9.list操作

1.修改-索引賦值
2.刪除-del/或者賦值為[]
3.切片賦值-number[2:] = ['a','b','c','d']
4.append-將對象附加到list末尾包个,對象可以是list或者單一值
5.clear-清空列表內(nèi)容類似lst[:]=[]刷允,取整個序列賦值為空
6.copy:可以發(fā)現(xiàn),普通操作會同時影響a碧囊;需要用到copy方法,

a = [1,2,3,4]
b = a
b[1] = 'k'
>a
[1,'k',3,4]
c = a.copy()
>c[0] = 20
>[20,2,3,4]

7.count-指定元素在list中出現(xiàn)的次數(shù)
8.extend-將值附加到list末尾
9.index-指定值第一次出現(xiàn)的索引
10.insert-將一個對象插入列表纤怒;插入一個位置糯而,并不會替換掉原值
11.pop-從list中刪除一個元素(默認(rèn)為最后一個),并返回該元素.棧stack-類似于一疊盤子,上面添加或者上面拿走(后進(jìn)先出LIFO-last in first out)

a = [1,2,3]
a.pop()
>3
a
>[1,2]

12.remove-刪除第一個為指定值的元素泊窘;與pop的區(qū)別就是不返回值
13.reverse-反轉(zhuǎn)元素(反向排序),reversed-反向迭代器
14.sort-就地排序熄驼,對原list做修改

>x = [2,1,4,9,6]
>y = x.sort()
>print(y)
None
會報錯,因?yàn)閤.sort()是對x進(jìn)行修改烘豹,并不返回值瓜贾,所以y是None

15.高級排序
sort()可以接受兩個參數(shù),key,reverse携悯。其中將key設(shè)置為不同的函數(shù)是很有用的祭芦。

x.sort(key=len)
x.sort(reverse = True)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市憔鬼,隨后出現(xiàn)的幾起案子龟劲,更是在濱河造成了極大的恐慌,老刑警劉巖轴或,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件昌跌,死亡現(xiàn)場離奇詭異,居然都是意外死亡照雁,警方通過查閱死者的電腦和手機(jī)蚕愤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來饺蚊,“玉大人萍诱,你說我怎么就攤上這事⌒渡祝” “怎么了砂沛?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長曙求。 經(jīng)常有香客問我碍庵,道長映企,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任静浴,我火速辦了婚禮堰氓,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘苹享。我一直安慰自己双絮,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布得问。 她就那樣靜靜地躺著囤攀,像睡著了一般。 火紅的嫁衣襯著肌膚如雪宫纬。 梳的紋絲不亂的頭發(fā)上焚挠,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天,我揣著相機(jī)與錄音漓骚,去河邊找鬼蝌衔。 笑死,一個胖子當(dāng)著我的面吹牛蝌蹂,可吹牛的內(nèi)容都是我干的噩斟。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼孤个,長吁一口氣:“原來是場噩夢啊……” “哼剃允!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起硼身,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤硅急,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后佳遂,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體营袜,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年丑罪,在試婚紗的時候發(fā)現(xiàn)自己被綠了荚板。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡吩屹,死狀恐怖跪另,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情煤搜,我是刑警寧澤免绿,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站擦盾,受9級特大地震影響嘲驾,放射性物質(zhì)發(fā)生泄漏淌哟。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一辽故、第九天 我趴在偏房一處隱蔽的房頂上張望徒仓。 院中可真熱鬧,春花似錦誊垢、人聲如沸掉弛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽殃饿。三九已至,卻和暖如春芋肠,著一層夾襖步出監(jiān)牢的瞬間壁晒,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工业栅, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人谬晕。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓碘裕,卻偏偏與公主長得像,于是被迫代替她去往敵國和親攒钳。 傳聞我的和親對象是個殘疾皇子帮孔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評論 2 345