Python下載安裝(mac)

https://www.runoob.com/python3/python3-data-type.html

一、下載

https://www.python.org/downloads/mac-osx/

image.png

二、基礎(chǔ)語法和數(shù)據(jù)類型

1夫嗓、基本數(shù)據(jù)類型

Python3 的六個標準數(shù)據(jù)類型中:
不可變數(shù)據(jù)(3 個):Number(數(shù)字)简识、String(字符串)、Tuple(元組)忿危;
可變數(shù)據(jù)(3 個):List(列表)达箍、Dictionary(字典)、Set(集合)癌蚁。
string幻梯、list 和 tuple 都屬于 sequence(序列)

1??Number(數(shù)字)

Python3 支持 int兜畸、float、bool碘梢、complex(復數(shù))

#基本數(shù)據(jù)類型
counter = 100          # 整型變量
miles   = 1000.0       # 浮點型變量
name    = "runoob"     # 字符串

print (counter)
print (miles)
print (name)
print (counter)
print (miles)
print (name)

a = b = c = 1
print('a:',a)
print('b:',b)
print('c:',c)
print(a+b+c)

a, b, c = 1, 2, "runoob"
print('a:',a)
print('b:',b)
print('c:',c)
image.png

兩個函數(shù)

type() 函數(shù)可以用來查詢變量所指的對象類型
isinstance()來判斷是否為某一種類型

counter = 100          # 整型變量
miles   = 1000.0       # 浮點型變量
name    = "runoob"     # 字符串

print(type(counter),type(miles),type(name))   //查詢變量的類型
print(isinstance(counter,int))   //判斷是否為int
print(isinstance(counter,float)) //判斷是否為float

bol_1  = True     #布爾
bol_2  = False   #布爾
rint(type(bol_1),type(bol_2))
print(bol_1) 
print(bol_2)
print(bol_1+bol_2)  #true代表1咬摇,false代表0
image.png

數(shù)值運算

>>> 5 + 4  # 加法
9
>>> 4.3 - 2 # 減法
2.3
>>> 3 * 7  # 乘法
21
>>> 2 / 4  # 除法,得到一個浮點數(shù)
0.5
>>> 2 // 4 # 除法煞躬,得到一個整數(shù)
0
>>> 17 % 3 # 取余
2
>>> 2 ** 5 # 乘方
32

2??String(字符串)不可變(immutable)

是不可變結(jié)構(gòu)(immutable)
Python中的字符串用單引號 ' 或雙引號 " 括起來肛鹏,
同時使用反斜杠 \ 轉(zhuǎn)義特殊字符;+r可防止轉(zhuǎn)義

## 單引號
name = 'name'
## 雙引號
name = "hello"
##\\  表示\

索引:索引值以 0 為開始值恩沛,-1 為從末尾的開始位置
截取 :變量[頭下標:尾下標:步長]

#!/usr/bin/python3
str='0123456'
print('輸出字符串\'0123456\'\t'+str)    
print('輸出字符串第一個字符''\t'+str[0]) 
print('輸出字符串的最后一個字符''\t'+str[-1])
print('輸出字符串的倒數(shù)第二個字符''\t'+str[-2])
print('輸出從第一個開始到第五個字符''\t'+str[0:5])
print('輸出第一個到第五個在扰,每隔2個字符''\t'+str[0:5:2])
print('輸出字符串的第一個到倒數(shù)第二個字符''\t'+str[0:-1])
print('輸出第一個到第五個,每隔2個字符''\t'+str[0:-1:2])
print('r表示轉(zhuǎn)義‘+'r'\n') 
print('\n')
image.png

3??List(列表)可變(mutable)

放置任意數(shù)據(jù)類型的有序集合,動態(tài)可變(mutable)
支持索引雷客,切片芒珠,可修改
列表是寫在方括號 [] 之間、用逗號分隔開的元素列表搅裙。
變量[頭下標:尾下標]

list = [ 'abcd', 786 , 2.23, 'runoob', 70.2 ]
tinylist = [123, 'runoob']

print (list)            # 輸出完整列表
print (list[0])         # 輸出列表第一個元素
print (list[1:3])       # 從第二個開始輸出到第三個元素
print (list[2:])        # 輸出從第三個元素開始的所有元素
print (tinylist * 2)    # 輸出兩次列表
print (list + tinylist) # 連接列表

image.png

倒序輸出(反轉(zhuǎn))

reverse():是python中列表的一個內(nèi)置方法,其實返回的是None,只有在print()的時候才看出反轉(zhuǎn)的效果皱卓。
reversed():是python自帶的一個方法,返回的是一個把序列值經(jīng)過反轉(zhuǎn)之后的迭代器部逮。

bb = [1,3,5,7]  /# 列表的反轉(zhuǎn)
print(list(reversed(bb)))
aa = (1, 2, 3) #元祖的反轉(zhuǎn)
print(tuple(reversed(aa)))
ss = "qwer1234"#字符串的反轉(zhuǎn)
print(''.join(reversed(ss)))
image.png

字符串的串聯(lián)

join():python中 字符串 自帶的一個方法娜汁,S.join(可迭代) - > str返回一個字符串,該字符串是字符串的串聯(lián)迭代兄朋。 元素之間的分隔符是S掐禁。

tt = ["12", "345", "67"]/#可迭代對象為列表
cc = ''.join(tt)
ee = '?'.join(tt)
print(cc)
print(ee)

ss = ("qw", "er", "fg")/#可迭代對象為元祖
dd = ''.join(ss)
gg = '&'.join(ss)
print(dd)
print(gg)
image.png

分隔字符串

split():通過指定分隔符對字符串進行切片為列表,如果參數(shù) num 有指定值颅和,則分隔 num+1 個子字符串傅事。str.split(str="", num=string.count(str)).

str = "Line1-abcdef \nLine2-abc \nLine4-abcd"
print (str.split())   
print (str.split(' ', 1 ))
txt = "Google#Runoob#Taobao#Facebook"
# 第二個參數(shù)為 1,返回兩個參數(shù)列表
x = txt.split('#', 1)
print (x)
image.png

字符串的倒序輸出

inputWords  =  input("請輸入\n")#輸入字符串
x  =  inputWords.split()#將字符串切片成列表
y  =  x[-1::-1]#將列表反轉(zhuǎn)
print(y)
outWords  = "".join(y)#將反轉(zhuǎn)的列表拼接成字符串
print(outWords)#倒序輸出字符串

image.png

4??Tuple(元組)

放置任意數(shù)據(jù)類型的有序集合,靜態(tài)不可變(immutable)
支持索引峡扩、切片但不可修改

tuple = ( 'abcd', 786 , 2.23, 'runoob', 70.2  )
tinytuple = (123, 'runoob')

print (tuple)             # 輸出完整元組
print (tuple[0])          # 輸出元組的第一個元素
print (tuple[1:3])        # 輸出從第二個元素開始到第三個元素
print (tuple[2:])         # 輸出從第三個元素開始的所有元素
print (tinytuple * 2)     # 輸出兩次元組
print (tuple + tinytuple) # 連接元組
tup[0] = 11  # 修改元組元素的操作是非法的
image.png

雖然tuple的元素不可改變享完,但它可以包含可變的對象,比如list列表有额。
構(gòu)造包含 0 個或 1 個元素的元組比較特殊般又,所以有一些額外的語法規(guī)則:

tup1 = ()    # 空元組
tup2 = (20,) # 一個元素,需要在元素后添加逗號

5??Set(集合)

是由一個或數(shù)個形態(tài)各異的大小整體組成的巍佑,構(gòu)成集合的事物或?qū)ο蠓Q作元素或是成員茴迁。
基本功能是進行成員關(guān)系測試和刪除重復元素。
可以使用大括號 { } 或者 set() 函數(shù)創(chuàng)建集合萤衰,注意:創(chuàng)建一個空集合必須用 set() 而不是 { }堕义,因為 { } 是用來創(chuàng)建一個空字典。

sites = {'Google', 'Taobao', 'Runoob', 'Facebook', 'Zhihu', 'Baidu'}

print(sites)   # 輸出集合,重復的元素被自動去掉

# 成員測試
if 'Runoob' in sites :
    print('Runoob 在集合中')
else :
    print('Runoob 不在集合中')

# set可以進行集合運算
a = set('abracadabra')
b = set('alacazam')

print(a)
print(a - b)     # a 和 b 的差集
print(a | b)     # a 和 b 的并集
print(a & b)     # a 和 b 的交集
print(a ^ b)     # a 和 b 中不同時存在的元素
image.png

6??Dictionary(字典)

字典(dictionary)是Python中另一個非常有用的內(nèi)置數(shù)據(jù)類型倦卖。
列表是有序的對象集合洒擦,字典是無序的對象集合。兩者之間的區(qū)別在于:字典當中的元素是通過鍵來存取的怕膛,而不是通過偏移存取熟嫩。
字典是一種映射類型,字典用 { } 標識褐捻,它是一個無序的 鍵(key) : 值(value) 的集合掸茅。
鍵(key)必須使用不可變類型。在同一個字典中柠逞,鍵(key)必須是唯一的昧狮。

dict = {}
dict['one'] = "1 - 菜鳥教程"
dict[2]     = "2 - 菜鳥工具"

tinydict = {'name': 'runoob','code':1, 'site': 'www.runoob.com'}


print (dict['one'])       # 輸出鍵為 'one' 的值
print (dict[2])           # 輸出鍵為 2 的值
print (tinydict)          # 輸出完整的字典
print (tinydict.keys())   # 輸出所有鍵
print (tinydict.values()) # 輸出所有值
image.png

構(gòu)造函數(shù) dict() 可以直接從鍵值對序列中構(gòu)建字典如下:


image.png

三、輸入輸出

name = input("input your name:")

print(name)
## 支持占位符
key = 'key'
print('name: {}', key)

四板壮、執(zhí)行結(jié)構(gòu)

五逗鸣、函數(shù)模塊

六、一些方法和函數(shù)

1绰精、str.format()格式化

print("網(wǎng)站名:{name}, 地址 {url}".format(name="菜鳥教程", url="www.runoob.com"))
??網(wǎng)站名:菜鳥教程, 地址 www.runoob.com

2慕购、str.strip()截掉首尾指定字符

用于移除字符串頭尾指定的字符(默認為空格或換行符)或字符序列

str = "00000003210Runoob01230000000"; 
print str.strip( '0' );  # 去除首尾字符 0 
??3210Runoob0123
str2 = "   Runoob      ";   # 去除首尾空格
print str2.strip();
??Runoob
str = "123abcrunoob321"
print (str.strip( '12' ))  # 字符序列為 12
??3abcrunoob3

3、str.lstrip() 截掉左邊指定字符

方法用于截掉字符串左邊的空格或指定字符

4茬底、str.split()分隔字符串

通過指定分隔符對字符串進行切片為列表,如果參數(shù) num 有指定值获洲,則分隔

str = "Line1-abcdef \nLine2-abc \nLine4-abcd"
print (str.split())   
print (str.split(' ', 1 ))
txt = "Google#Runoob#Taobao#Facebook"
# 第二個參數(shù)為 1阱表,返回兩個參數(shù)列表
x = txt.split('#', 1)
print (x)

5、str.join()串聯(lián)字符串

tt = ["12", "345", "67"]/#可迭代對象為列表
cc = ''.join(tt)
ee = '?'.join(tt)
print(cc)
print(ee)
ss = ("qw", "er", "fg")/#可迭代對象為元祖
dd = ''.join(ss)
gg = '&'.join(ss)
print(dd)
print(gg)

6贡珊、str.count()統(tǒng)計字符串里某個字符出現(xiàn)的次數(shù)

str.count(sub, start= 0,end=len(string))

str = "this is string example....wow!!!";
sub = "i";
print "str.count(sub, 4, 40) : ", str.count(sub, 4, 40)
sub = "wow";
print "str.count(sub) : ", str.count(sub)
??str.count(sub, 4, 40) :  2
??str.count(sub) :  1

7最爬、list.index()

用于從列表中找出某個值第一個匹配項的索引位置
list.index(x[, start[, end]])

aList = [123, 'xyz', 'runoob', 'abc']
print "xyz 索引位置: ", aList.index( 'xyz' )
print "runoob 索引位置 : ", aList.index( 'runoob', 1, 3 )
??xyz 索引位置:  1
??runoob 索引位置 :  2

8、List sort()排序

list.sort( key=None, reverse=False)升序
函數(shù)sort()會默認地按升序排列
list.sort() 不會返回對象门岔,會改變原有的list

l = [1, 2, 3, 7, 9]
l.sort()
print(l.sort())
print(l)

list =['a','cc','eeee','ff']
list.sort()#升序
list.sort(reverse=True)#降序
print(list)

##9爱致、

def compare(x):
     return len(x)
list.sort(key=compare)  #按照字符串長度升序排列
print(list)
image.png

sorted與sort區(qū)別
前者是內(nèi)置函數(shù),后者是列表寒随、字典的方法糠悯;前者返回一個新列表

tup= (3.2,8,5)
print(sorted(tup))
print(tup)   #原值不會改變
print(tuple(reversed(tup))) #需要遍歷才能讀取
print(tup)   #原值不會改變

l = [1, 2, 3, 7, 7,9,33]
print(l.reverse()) #實際返回是NONE
print(l)#原值發(fā)生改變
print(l.sort()) #實際返回是NONE
print(l) #原值發(fā)生改變

9、reversed與reverse區(qū)別

前者是內(nèi)置函數(shù)妻往,后者是列表互艾、字典的方法。前者返回一個新列表

>>> i = [55, 12, 23, 45, 18, 26]
>>> for n in reversed(i):
 print(n, end = ' ')

26 18 45 23 12 55
>>> i
[55, 12, 23, 45, 18, 26]
>>> i.reverse()
>>> i
[26, 18, 45, 23, 12, 55]
>>>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末讯泣,一起剝皮案震驚了整個濱河市纫普,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌好渠,老刑警劉巖昨稼,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件节视,死亡現(xiàn)場離奇詭異,居然都是意外死亡假栓,警方通過查閱死者的電腦和手機寻行,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來但指,“玉大人寡痰,你說我怎么就攤上這事∑宓剩” “怎么了拦坠?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長剩岳。 經(jīng)常有香客問我贞滨,道長,這世上最難降的妖魔是什么拍棕? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任晓铆,我火速辦了婚禮,結(jié)果婚禮上绰播,老公的妹妹穿的比我還像新娘骄噪。我一直安慰自己,他們只是感情好蠢箩,可當我...
    茶點故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布链蕊。 她就那樣靜靜地躺著,像睡著了一般谬泌。 火紅的嫁衣襯著肌膚如雪滔韵。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天掌实,我揣著相機與錄音陪蜻,去河邊找鬼。 笑死贱鼻,一個胖子當著我的面吹牛宴卖,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播邻悬,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼嘱腥,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了拘悦?” 一聲冷哼從身側(cè)響起齿兔,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后分苇,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體添诉,經(jīng)...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年医寿,在試婚紗的時候發(fā)現(xiàn)自己被綠了栏赴。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡靖秩,死狀恐怖须眷,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情沟突,我是刑警寧澤花颗,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站惠拭,受9級特大地震影響扩劝,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜职辅,卻給世界環(huán)境...
    茶點故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一棒呛、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧域携,春花似錦簇秒、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至气筋,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間旋圆,已是汗流浹背宠默。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留灵巧,地道東北人搀矫。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓,卻偏偏與公主長得像刻肄,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子敏弃,可洞房花燭夜當晚...
    茶點故事閱讀 43,627評論 2 350

推薦閱讀更多精彩內(nèi)容