list选取多个元素 python_【幼儿园级】0基础学python一本通(上)——AI未来系列1...
在未來面前,每個人都是學(xué)生
江海升月明,天涯共此時,關(guān)注江時!
引
子
本篇為AI未來系列第一篇。為什么要研究學(xué)習(xí)python?python是未來屠龍的屠龍寶刀,再輔助以我們的高中數(shù)學(xué)基礎(chǔ)(足夠用的屠龍術(shù)),小白們即可把握人工智能的未來。本系列初步階段主要攻克數(shù)據(jù)分析問題,中階攻克爬蟲問題,高階進(jìn)入人工智能階段,順帶會穿插一些硬件知識。
想想比爾蓋茨的發(fā)家史,也有點(diǎn)小小激動喲。未來已來,just do it。時不我待,今天是2019年2月12日農(nóng)歷初八,趕緊開始第一篇——幼兒園級,老嫗也會,0基礎(chǔ)學(xué)python一本通。
正
文
為什么Python這么受歡迎?
簡單的來說,有下面五點(diǎn)原因:
1、Python可以在多種計算機(jī)操作系統(tǒng)中運(yùn)行(Unix,Windows,MacOS,Ubuntu等等),python在這些語言中是最簡單易用的。
2、Python能夠?qū)崿F(xiàn)交互式命令輸出。對于非專業(yè)程序員而言,都希望邊編寫程序,邊查看結(jié)果。
3、Python是開源免費(fèi)的,有很多強(qiáng)大易用的標(biāo)準(zhǔn)庫。對于非專業(yè)的程序員而言,使用這些庫可以免去自己編寫的煩惱。
4、Python是一種解析性的、面向?qū)ο蟮木幊陶Z言。面向?qū)ο缶幊毯鸵话愕木幊滩惶粯?#xff0c;有其自身的優(yōu)勢。
5、Python是可以連接多種語言的膠水語言。
Python與其他數(shù)據(jù)分析語言對比
一、Python基礎(chǔ)語法
初次使用Python,首先要明確三點(diǎn):
Python的標(biāo)識符(例如變量名、函數(shù)名等),可用字母、數(shù)字和下劃線構(gòu)成,不能以數(shù)字開頭,且區(qū)分大小寫。
Python對于縮進(jìn)敏感。在Python中,是使用縮進(jìn)來寫代碼塊。
Python的注釋語句一般用#開頭。多行注釋可以有用三引號。
這里使用了多行注釋
使用三引號將注釋內(nèi)容包含起來
在代碼上中只能使用#開頭的注釋語句
'''
a?=?1???????#小寫字母定義變量
A?=?2???????#大小字母定義變量
a1?=?3??????#小寫字母+數(shù)字?一起來定義變量
a_b_c?=?4???#小寫字母+下劃線?來定義變量
_n_?=?5?????#下劃線+小寫字母?來定義變量
print(a,A,a1,a_b_c,_n_)```
1 2 3 4 5
'''使用縮進(jìn)來說明代碼塊
下面編寫了一個循環(huán)
注意到循環(huán)體N=N+n相對于之前的代碼縮進(jìn)了
因為它是整個循環(huán)的循環(huán)體,需要通過縮進(jìn)標(biāo)識出來
'''
N?=?0
for?n?in?[1,2,3,4,5]:
????N?=?N?+?n
print(N)
15
'''刪除某個對象
'''
x?=?1
del?x?#刪除對象x
x
二、Python基礎(chǔ)數(shù)據(jù)類型
Python中基礎(chǔ)的數(shù)據(jù)類型只有兩類:字符串string和數(shù)字。在數(shù)字類型下,可細(xì)分為4個類型整型int、長整型long、浮點(diǎn)數(shù)float和復(fù)數(shù)complex。常用的數(shù)字類型為整型int和浮點(diǎn)數(shù)float。
2.1 字符串string
關(guān)于字符串,有下面三點(diǎn)需要注意。其中第三點(diǎn)尤為關(guān)鍵,且不光是針對字符串,對于python中所有的索引都是適用的。
1、Python用單引號'',雙引號"",三引號''''''來標(biāo)識字符串,三引號用于多行文本
2、字符串也是一個序列,可以截斷和切片
3、注意python中的索引:從左到右索引默認(rèn)從0開始,最大范圍為字符串長度-1。從右向左索引默認(rèn)從-1開始,最大范圍是字符串開頭
long_string?=?'''
I?love?Wind
and?Wind?welcomes?everyone
We?are?a?family
'''
#?上面定義兩個字符串?其中?long_string為一個多行的字符串?所以用''''''包含起來
print(string)
print(long_string)
I?love?Wind!
I love Wind!
I love Wind
and Wind welcomes everyone
We are a family
print('字符串的倒數(shù)第一個元素(支持負(fù)索引):???????',string[-1])
print('原字符串(注意空格也占據(jù)一個字符):?????????',string)
print('字符串索引2至5(注意索引的話左包含右不包含):',string[2:6])
print('字符串索引2至最后:???????????????????????',string[2:])
print('字符串索引-2至最后:??????????????????????',string[-2:])
字符串的第一個元素(注意索引為0): ? ? ? ? ? I
字符串的倒數(shù)第一個元素(支持負(fù)索引): ? ? ? ?!
原字符串(注意空格也占據(jù)一個字符): ? ? ? ? ?I love Wind!
字符串索引2至5(注意索引的話左包含右不包含): love
字符串索引2至最后: ? ? ? ? ? ? ? ? ? ? ? ?love Wind!
字符串索引-2至最后: ? ? ? ? ? ? ? ? ? ? ? d!
關(guān)于字符串的運(yùn)算
'''
print('字符串重復(fù)2遍:',string?*?2)
print('字符串的拼接:',string?+?'?and?Wind?welcomes?everyone!')
字符串重復(fù)2遍: I love Wind!I love Wind!
字符串的拼接: I love Wind! and Wind welcomes everyone!
\n可用來字符串的換行
'''
print('我想換行\(zhòng)n換行成功')
我想換行
換行成功
\t可用來輸入制表符
'''
print('我想插入一個制表符\t插入成功')
我想插入一個制表符 ? ?插入成功
2.2 數(shù)字number
數(shù)字可以細(xì)分為四個類型,一般常用的是整形int和浮點(diǎn)數(shù)float。
x1?=?10?;?x2?=?2.23???#用分號;隔開?可以在一行中寫多個語句type(x1),type(x2)
(int, float)
三、Python數(shù)據(jù)集合類型
在基礎(chǔ)數(shù)據(jù)類型的基礎(chǔ)上,Python有6中數(shù)據(jù)集合的類型:
1、列表list,最常用的數(shù)據(jù)類型,以[]為標(biāo)識
2、元組tuple,和list很相似,但是不能二次賦值,用()標(biāo)識
3、集合set,和list類似,但是set中沒有重復(fù)的元素,常用于集合間的運(yùn)算,用{}標(biāo)識
4、字典dict,無序的對象集合,字典中的元素通過關(guān)鍵詞key來調(diào)用,同樣以{}來標(biāo)識
5、數(shù)組array,科學(xué)計算和代數(shù)運(yùn)算常用的數(shù)據(jù)類型,在后續(xù)numpy庫系列詳細(xì)說明
6、數(shù)據(jù)框dataframe,數(shù)據(jù)分析處理常用的數(shù)據(jù)類型,在后續(xù)pandas庫系列詳細(xì)說明
3.1 列表list
print('這里定義了一個列表list——x1,注意到列表x1中的元素是可以不同的,這里由兩個數(shù)字1和2,一個字符串James,一個列表[1,2,3]這四個元素構(gòu)成了x1這個列表list。')x1?=?[1,2,?'James',?[1,2,3]]
print(x1)
這里定義了一個列表list——x1,注意到列表x1中的元素是可以不同的,這里由兩個數(shù)字1和2,一個字符串James,一個列表[1,2,3]這四個元素構(gòu)成了x1這個列表list。
[1, 2, 'James', [1, 2, 3]]
print('調(diào)用列表x1的第一個元素(注意第一個元素的索引為0):',x1[0])
print('調(diào)用列表x1的最后一個元素(注意最后一個元素的索引為-1):',x1[-1])
print('調(diào)用列表x1的前2個元素(注意索引的時候右不包含):',x1[:2])
如何來調(diào)用列表x1中的某個或者某幾個元素呢??
調(diào)用列表x1的第一個元素(注意第一個元素的索引為0): 1
調(diào)用列表x1的最后一個元素(注意最后一個元素的索引為-1): [1, 2, 3]
調(diào)用列表x1的前2個元素(注意索引的時候右不包含): [1, 2]這里要說明的是,python下序列(例如數(shù)組,列表,元組等)的索引,是從0開始而非從1開始。從左到右索引默認(rèn)從0開始,從右到左索引默認(rèn)從-1開始。
一般索引的方式為 序列[索引開始:索引結(jié)尾],且要注意python索引是右不包含,即索引結(jié)尾對應(yīng)的元素是不包含在結(jié)果中的。
x2?=?['a','b','c']
print('將兩個列表x1和x2拼接起來',x1+x2)
x1.append('新增元素')
print('在列表x1中添加一個元素',x1)
print('將列表x2重復(fù)兩遍',x2*2)
關(guān)于列表的運(yùn)算
將兩個列表x1和x2拼接起來 [1, 2, 'James', [1, 2, 3], 'a', 'b', 'c']
在列表x1中添加一個元素 [1, 2, 'James', [1, 2, 3], '新增元素']
將列表x2重復(fù)兩遍 ['a', 'b', 'c', 'a', 'b', 'c']
append是在列表的末尾添加元素,那如果要在列表中間添加元素怎么做呢?
'''
print('原列表:',x1)
x1.insert(2,1000)
print('在索引2位置添加了新的元素:',x1)
原列表: [1, 2, 'James', [1, 2, 3], '新增元素']
在索引2位置添加了新的元素: [1, 2, 1000, 'James', [1, 2, 3], '新增元素']
根據(jù)索引來刪除列表中的元素
'''
print('原列表:',x1)
x1.pop(3)
print('刪除索引3上的元素后:',x1)
原列表: [1, 2, 1000, 'James', [1, 2, 3], '新增元素']
刪除索引3上的元素后: [1, 2, 1000, [1, 2, 3], '新增元素']
在列表中添加多個元素
'''
print('原列表:',x1)
x1.extend([0,1,2,3,4,5,6])
print('添加多個元素后:',x1)
原列表: [1, 2, 1000, [1, 2, 3], '新增元素']
添加多個元素后: [1, 2, 1000, [1, 2, 3], '新增元素', 0, 1, 2, 3, 4, 5, 6]
根據(jù)元素值來刪除元素
'''
print('原列表:',x1)
x1.remove('新增元素')
print('刪除"新增元素"元素后:',x1)
原列表: [1, 2, 1000, [1, 2, 3], '新增元素', 0, 1, 2, 3, 4, 5, 6]
刪除"新增元素"元素后: [1, 2, 1000, [1, 2, 3], 0, 1, 2, 3, 4, 5, 6]
print('查看元素1在列表中出現(xiàn)的次數(shù):',x2.count(1))
查看元素1在列表中出現(xiàn)的次數(shù): 4
print('關(guān)于列表的排序\n')x3?=?[-10,-2,1,-100,333,1000]
print('原列表:',x3)
x3.sort()
print('按從小到大排序:',x3)
x3.sort(reverse=True)
print('按從大到小排序:',x3)
關(guān)于列表的排序
原列表: [-10, -2, 1, -100, 333, 1000]
按從小到大排序: [-100, -10, -2, 1, 333, 1000]
按從大到小排序: [1000, 333, 1, -2, -10, -100]
3.2 元組tuple
x3?=?(66.6,'萬得資訊',1.0000)print('這是一個元組tuple:',x3)
x3[0]?=?1
這是一個元組tuple: (66.6, '萬得資訊', 1.0)
print('關(guān)于元組tuple的相關(guān)計算:')print(x3?+?('a','b'))
print(x3?*?2)
#從結(jié)果可以發(fā)現(xiàn),元組的一些計算和列表list是類似的
關(guān)于元組tuple的相關(guān)計算:
(66.6, '萬得資訊', 1.0, 'a', 'b')
(66.6, '萬得資訊', 1.0, 66.6, '萬得資訊', 1.0)
可以發(fā)現(xiàn),當(dāng)想對一個元組tuple的第一個元素(索引0)重新賦值時,則會報錯。說明元組一旦定義好了就不能二次賦值了。但是要注意如下這種情況
x4[2][1]?=?1000
x4
('jack', 1000, [1, 1000, 3])
在x4這個元組中,索引2對應(yīng)的元素是一個列表[1,2,3],那么這個列表中的元素做一個更改的話是可以的
3.3 集合set
x0?=?[1,1,2,2,3,3,4,4,5,5]print('含有重復(fù)元素的一個列表x0:',x0)
x0_set?=?set(x0)
print('將列表x0轉(zhuǎn)化一個集合:',x0_set)
print('可以發(fā)現(xiàn)集合x0_set中沒有重復(fù)的元素')
含有重復(fù)元素的一個列表x0: [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]
將列表x0轉(zhuǎn)化一個集合: {1, 2, 3, 4, 5}
可以發(fā)現(xiàn)集合x0_set中沒有重復(fù)的元素
set1?=?{1,2,3,4,5}
set2?=?{2,3,4}
print('集合set1:',set1,'\n','集合set2:',set2)
print('集合set1和集合set2的差集:',set1-set2)
print('集合set1和集合set2的交集:',set1.intersection(set2))
關(guān)于集合set的計算
集合set1: {1, 2, 3, 4, 5}
集合set2: {2, 3, 4}
集合set1和集合set2的差集: {1, 5}
集合set1和集合set2的交集: {2, 3, 4}
print('集合set1和集合set2的交集:',set1&set2)
print('集合set1和集合set2的并集:',set1|set2)
集合set1: {1, 2, 3, 4, 5}
集合set2: {2, 3, 4}
集合set1和集合set2的交集: {2, 3, 4}
集合set1和集合set2的并集: {1, 2, 3, 4, 5}
3.4 字典dict
#?字典定義方式一dict1?=?{}??#先創(chuàng)建一個空字典
dict1['姓名']?=?'萬礦'
dict1['年齡']?=??0.5
dict1['能力值']?=?1000
print(dict1)
#?字典定義方式二
dict2?=?{'姓名':'Kobe?Bryant','身高':198,'冠軍數(shù)':5}
print(dict2)
{'能力值': 1000, '年齡': 0.5, '姓名': '萬礦'}
{'身高': 198, '冠軍數(shù)': 5, '姓名': 'Kobe Bryant'}
dict3?=?dict.fromkeys(['A','B','C'],1000)
print(dict3)
#?字典定義方式四
dict4?=?dict(zip(['A','B','C'],[1,10,100]))
print(dict4)
{'B': 1000, 'A': 1000, 'C': 1000}
{'B': 10, 'A': 1, 'C': 100}
print('查看字典dict2的關(guān)鍵詞:',dict2.keys())
print('查看字典dict2的值:',dict2.values())
字典由關(guān)鍵詞key和值value兩個部分構(gòu)成
查看字典dict2的關(guān)鍵詞: dict_keys(['身高', '冠軍數(shù)', '姓名'])
查看字典dict2的值: dict_values([198, 5, 'Kobe Bryant'])
刪除字典中的關(guān)鍵詞
'''
dict1.pop('姓名')
print('刪除關(guān)鍵詞“姓名”:',dict1)
刪除關(guān)鍵詞“姓名”: {'能力值': 1000, '年齡': 0.5}
dict1.clear()print('清除字典中的所有元素:',dict1)
清除字典中的所有元素: {}
四、Python基本運(yùn)算符
五、條件和循環(huán)
5.1條件語句
條件語句基本框架如下:if 判斷語句1:執(zhí)行語句塊1elif 判斷語句2:執(zhí)行語句塊2else:執(zhí)行語句塊3
a?=?102
if?a%2?==?0?:?????#這里使用了取余函數(shù)%
3
????print(a,'是偶數(shù)')
4
else:
5
????print(a,'是奇數(shù)')
10 是偶數(shù)
b?=?'張三'2
if?b?in?['張一','張二','張三','張四']:??#這里使用了in來判斷
3
????print(b,'是張家人')
4
else:
5
????print(b,'不是張家人')
張三 是張家人
c?=?202
if?c?3
????print(c,'小于20')
4
elif?c?>?80:
5
????print(c,'大于80')
6
else:
7
????print(c,'在20~80之間')
20 在20~80之間
5.2 循環(huán)語句
5.2.1 for循環(huán)
1sum?=?0??#實現(xiàn)0+1+2+。。+9
2
for?j?in?range(10):
3
????sum?=?sum?+?j
4
print(sum)
45
1sum?=?0
2
for?j?in?range(10):
3
????sum?+=?j???#這句和?sum?=?sum?+?j一個效果
4
print(sum)
45
5.2.2 while循環(huán)
j?=?12
while?j?!=?6:
3
????j?=?j?+?1
4
print('循環(huán)結(jié)果為:',j)
循環(huán)結(jié)果為: 6
5.2.3 循環(huán)控制語句——break
break語句的含義是終止當(dāng)前循環(huán),且跳出整個循環(huán)
for?j?in?range(10):2
????if?j?==?6:
3
????????break
4
????print('當(dāng)前j的值為:',j)
當(dāng)前j的值為: 0
當(dāng)前j的值為: 1
當(dāng)前j的值為: 2
當(dāng)前j的值為: 3
當(dāng)前j的值為: 4
當(dāng)前j的值為: 5
5.2.4 循環(huán)控制語句——continue
continue語句的含義是終止當(dāng)次循環(huán),跳出該次循環(huán),直接執(zhí)行下一次循環(huán)
for?j?in?range(10):2
????if?j?==?6:
3
????????continue
4
????print('當(dāng)前j的值為:',j)
當(dāng)前j的值為: 0
當(dāng)前j的值為: 1
當(dāng)前j的值為: 2
當(dāng)前j的值為: 3
當(dāng)前j的值為: 4
當(dāng)前j的值為: 5
當(dāng)前j的值為: 7
當(dāng)前j的值為: 8
當(dāng)前j的值為: 9
5.2.5 pass語句
當(dāng)執(zhí)行到pass語句時,其含義就是不執(zhí)行任何操作
for?j?in?range(10):2
????if?j?==?6:
3
????????pass
4
????else:
5
????????print('當(dāng)前j的值為:',j)
當(dāng)前j的值為: 0
當(dāng)前j的值為: 1
當(dāng)前j的值為: 2
當(dāng)前j的值為: 3
當(dāng)前j的值為: 4
當(dāng)前j的值為: 5
當(dāng)前j的值為: 7
當(dāng)前j的值為: 8
當(dāng)前j的值為: 9
5.2.6 循環(huán)、條件嵌套
例如我們要尋找2-100中的所有素數(shù),本身需要一個循環(huán)。而判斷某一個數(shù)是否為素數(shù)也需要一個循環(huán),所以這里嵌套了兩個循環(huán)。循環(huán)中還有一些條件語句。
#尋找2-100中的所有素數(shù)2
num?=?[]??#這里創(chuàng)建一個空列表是為了存儲結(jié)果
3
for?i?in?range(2,100):
4
????j?=?2
5
????while?j?<=?i/j?:?
6
????????if?i%j?==?0:?#%指計算余數(shù)
7
????????????break
8
????????j?=?j?+?1
9
????if?j?>?i/j:
10
????????num.append(i)
11
print(num)
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
函數(shù),模塊,異常處理,讀取文件等未完待續(xù)。
來源:我的印象筆記整理
ABO
Me
JiangShi【ID:siteacher】
?AI CREATE FURTURE
VALUE LAST LONG
總結(jié)
以上是生活随笔為你收集整理的list选取多个元素 python_【幼儿园级】0基础学python一本通(上)——AI未来系列1...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php写入文本乱码,如何解决PHP用fw
- 下一篇: html jquery 模板,用模版生成