-
Python(英語(yǔ)發(fā)音:/?pa?θ?n/), 是一種面向?qū)ο蟆⒔忉屝陀?jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,由Guido van Rossum于1989年發(fā)明,第一個(gè)公開(kāi)發(fā)行版發(fā)行于1991年。 -
Python是純粹的自由軟件, 源代碼和解釋器CPython遵循GPL(GNU General Public License)協(xié)議 。 - Python語(yǔ)法簡(jiǎn)潔清晰,特色之一是強(qiáng)制用空白符(white space)作為語(yǔ)句縮進(jìn)
-
Python是一種解釋型語(yǔ)言: 這意味著開(kāi)發(fā)過(guò)程中沒(méi)有了編譯這個(gè)環(huán)節(jié)。類(lèi)似于PHP和Perl語(yǔ)言 -
Python是交互式語(yǔ)言: 這意味著,您可以在一個(gè)Python提示符,直接互動(dòng)執(zhí)行寫(xiě)你的程序 -
Python是面向?qū)ο笳Z(yǔ)言: 這意味著Python支持面向?qū)ο蟮娘L(fēng)格或代碼封裝在對(duì)象的編程技術(shù) -
Python是初學(xué)者的語(yǔ)言:Python對(duì)初級(jí)程序員而言,是一種偉大的語(yǔ)言,它支持廣泛的應(yīng)用程序開(kāi)發(fā),從簡(jiǎn)單的文字處理到 WWW 瀏覽器再到游戲
-
一. Mac系統(tǒng)下搭建Python環(huán)境
- 首先到Python官網(wǎng) 下載安裝最新版本的
Python, 安裝比較無(wú)腦,一路按下去就OK - 安裝
Python開(kāi)發(fā)軟件, 推薦兩款開(kāi)發(fā)軟件Pycharm和Sublime Text, 這里只介紹Pycharm的安裝和破解方法 -
Python的開(kāi)發(fā)環(huán)境和開(kāi)發(fā)軟件都搞定之后,下面我們就來(lái)看看Python的基本語(yǔ)法吧 - 測(cè)試代碼詳見(jiàn) GitHub地址
二. 基本語(yǔ)法
1. 輸出格式
Python的輸出語(yǔ)法和Swift的輸出一樣
# 輸出
print("Hello Python")
2. 注釋
-
python中單行注釋采用 # 開(kāi)頭。 -
python中多行注釋使用三個(gè)單引號(hào)'''或三個(gè)雙引號(hào)"""
# 這里是單行注釋
'''
這是多行注釋?zhuān)褂脝我?hào)。
這是多行注釋?zhuān)褂脝我?hào)。
這是多行注釋?zhuān)褂脝我?hào)。
'''
"""
這是多行注釋?zhuān)褂秒p引號(hào)。
這是多行注釋?zhuān)褂秒p引號(hào)。
這是多行注釋?zhuān)褂秒p引號(hào)。
"""
3. 變量
Python中的變量不需要聲明,變量的賦值操作既是變量聲明和定義的過(guò)程。每個(gè)變量在使用前都必須賦值,變量賦值以后該變量才會(huì)被創(chuàng)建
counter = 100 # 賦值整型變量
miles = 1000.0 # 浮點(diǎn)型
name = "John" # 字符串
Python允許你同時(shí)為多個(gè)變量賦值, 也可以為多個(gè)對(duì)象指定多個(gè)變量。例如:
a = b = c = 1
# 多變量賦值
a, b, c = 1, 2, "jun"
三. 標(biāo)準(zhǔn)數(shù)據(jù)類(lèi)型
-
Python有五個(gè)標(biāo)準(zhǔn)的數(shù)據(jù)類(lèi)型:-
Numbers(數(shù)字) -
String(字符串) -
List(列表) -
Tuple(元組) -
Dictionary(字典)
-
1. Numbers(數(shù)字)
-
Number是不可被改變的數(shù)據(jù)類(lèi)型, 當(dāng)你指定一個(gè)值時(shí),Number對(duì)象就會(huì)被創(chuàng)建 -
Python支持四種不同的數(shù)值類(lèi)型:-
int(有符號(hào)整型) -
long(長(zhǎng)整型[也可以代表八進(jìn)制和十六進(jìn)制]) -
float(浮點(diǎn)型) -
complex(復(fù)數(shù))
-
- 復(fù)數(shù): 和數(shù)學(xué)中的復(fù)數(shù)含義一樣, 復(fù)數(shù)由實(shí)數(shù)部分和虛數(shù)部分構(gòu)成,可以用
a + bj, 或者complex(a, b)表示, 復(fù)數(shù)的實(shí)部a和虛部b都是浮點(diǎn)型
| int | long | float | complex |
|---|---|---|---|
| 10 | 51924361L | 0.0 | 3.14j |
| 100 | -0x19323L | 15.20 | 45.j |
| -786 | 0122L | -21.9 | 9.322e-36j |
| 080 | 0xDEFABCECBDAECBFBAEl | 32.3+e18 | .876j |
| -0490 | 535633629843L | -90. | -.6545+0J |
| -0x260 | -052318172735L | -32.54e100 | 3e+26J |
| 0x69 | -4721885298529L | 70.2-E12 | 4.53e-7j |
2. Python字符串
- 字符串或串(String)是由數(shù)字、字母、下劃線組成的一串字符
- 和
Swift中的字符串一樣, 每一個(gè)字符都有一個(gè)與之對(duì)應(yīng)的索引 -
python的字串列表有2種取值順序:- 從左到右索引默認(rèn)0開(kāi)始的,最大范圍是字符串長(zhǎng)度少1
- 從右到左索引默認(rèn)-1開(kāi)始的,最大范圍是字符串開(kāi)頭
- 獲取某一部分字符串的格式: [頭下標(biāo):尾下標(biāo)]
# 字符串
str = 'Hello Python'
# 1. 輸出完整字符串
print("完整字符串--" + str)
# 結(jié)果輸出:
# 2. 輸出第一個(gè)字符
print("第一個(gè)字符--" + str[0])
# 3. 輸出第三到七個(gè)字符
print("第3-7個(gè)字符--" + str[2:6])
# 4. 輸出低2個(gè)字符開(kāi)始的所有字符
print("第2個(gè)開(kāi)始的所有字符--" + str[1:])
# 5. 拼接字符串
# 像上面一樣, 字符串用 `+`拼接
print("拼接--" + str)
# 6. 輸出3次
# `*` 表示重復(fù)操作, 需要重復(fù)操作幾次, 后面跟上次數(shù)即可
print(str * 3)
# 7. 輸出最后一個(gè)字符
print("最后一個(gè)字符--" + str[-1])
# 8. 輸出倒數(shù)第二個(gè)字符
print("倒數(shù)第二個(gè)字符--" + str[-2])
下面是以上語(yǔ)法的輸出結(jié)果
/*
完整字符串--Hello Python
第一個(gè)字符--H
第3-7個(gè)字符--llo
第2個(gè)開(kāi)始的所有字符--ello Python
拼接--Hello Python
Hello PythonHello PythonHello Python
最后一個(gè)字符--n
倒數(shù)第二個(gè)字符--o
*/
3. List(列表)
-
List(列表) 是Python中使用最頻繁的數(shù)據(jù)類(lèi)型, 和C語(yǔ)言中的數(shù)組一樣, 語(yǔ)法操作和上述字符串類(lèi)似 - 列表可以完成大多數(shù)集合類(lèi)的數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)。它支持字符,數(shù)字,字符串甚至可以包含列表(所謂嵌套)。
- 列表用
[ ]標(biāo)識(shí)。是python最通用的復(fù)合數(shù)據(jù)類(lèi)型 - 列表中的值得分割也可以用到變量[頭下標(biāo):尾下標(biāo)],就可以截取相應(yīng)的列表
- 從左到右索引默認(rèn)0開(kāi)始的
- 從右到左索引默認(rèn)-1開(kāi)始
- 下標(biāo)可以為空表示取到頭或尾。
- 加號(hào)(+)是列表連接運(yùn)算符,星號(hào)(*)是重復(fù)操作
# List 列表
list1 = [12, 34, 3.14, 5.3, 'titan']
list2 = [10, 'jun']
# 1.完整列表
print(list1)
# 2.列表第一個(gè)元素
print(list1[0])
# 3.獲取第2-3個(gè)元素
print(list1[1:2])
# 4.獲取第三個(gè)到最后的所有元素
print(list1[2:])
# 5.獲取最后一個(gè)元素
print(list1[-1])
# 6.獲取倒數(shù)第二個(gè)元素
print(list1[-2])
# 7.獲取最后三個(gè)元素
print(list1[-3:-1])
# 8.合并列表
print(list1 + list2)
# 9.重復(fù)操作兩次
print(list2 * 2)
上述語(yǔ)句輸出結(jié)果如下
[12, 34, 3.14, 5.3, 'titan']
12
[34]
[3.14, 5.3, 'titan']
titan
5.3
[3.14, 5.3]
[12, 34, 3.14, 5.3, 'titan', 10, 'jun']
[10, 'jun', 10, 'jun']
4. 元組
- 元組是另一個(gè)數(shù)據(jù)類(lèi)型(
Python中的元組和Swift中的元組類(lèi)似) - 元組用"()"標(biāo)識(shí)。內(nèi)部元素用逗號(hào)隔開(kāi)
- 元素不能二次賦值,相當(dāng)于只讀列表
# 元組
tuple1 = (12, 34, 3.14, 5.3, 'titan')
tuple2 = (10, 'jun')
# 1.完整元組
print(tuple1)
# 2.元組一個(gè)元素
print(tuple1[0])
# 3.獲取第2-3個(gè)元素
print(tuple1[2:3])
# 4.獲取第三個(gè)到最后的所有元素
print(tuple1[2:])
# 5.獲取最后一個(gè)元素
print(tuple1[-1])
# 6.獲取倒數(shù)第二個(gè)元素
print(tuple1[-2])
# 7.獲取最后三個(gè)元素
print(tuple1[-3:-1])
# 8.合并元組
print(tuple1 + tuple2)
# 9.重復(fù)操作兩次
print(tuple2 * 2)
輸出結(jié)果
(12, 34, 3.14, 5.3, 'titan')
12
(3.14,)
(3.14, 5.3, 'titan')
titan
5.3
(3.14, 5.3)
(12, 34, 3.14, 5.3, 'titan', 10, 'jun')
(10, 'jun', 10, 'jun')
這里注意下, 當(dāng)截取某一范圍的數(shù)據(jù)時(shí), 類(lèi)似[2:3], [-3:-1], 實(shí)際的取值范圍是含左不含右, 等同于數(shù)學(xué)中的半開(kāi)半閉區(qū)間(左閉右開(kāi))--[2, 3)
# 因元組的元素是只讀的, 不能二次賦值, 所以請(qǐng)注意, 以下寫(xiě)法是錯(cuò)誤的
# 運(yùn)行會(huì)報(bào)錯(cuò): TypeError: 'tuple' object does not support item assignment
tuple2[0] = 20
tuple2[1] = "titan"
5. 字典
- 字典(
dictionary)是除列表以外python之中最靈活的內(nèi)置數(shù)據(jù)結(jié)構(gòu)類(lèi)型。 - 列表是有序的對(duì)象集合,字典是無(wú)序的對(duì)象集合。
- 兩者之間的區(qū)別在于:字典當(dāng)中的元素是通過(guò)鍵來(lái)存取的,而不是通過(guò)索引存取。
- 字典用"{ }"標(biāo)識(shí)。字典由索引(key)和它對(duì)應(yīng)的值value組成
- 這里的字典的key值, 不僅僅可以用字符串, 還可以用
Number類(lèi)型
# 字典
dict1 = {'name': 'jun', 'age': 18, 'score': 90.98}
dict2 = {'name': 'titan'}
# 完整字典
print(dict2)
# 1.修改或添加字典元素
dict2['name'] = 'brother'
dict2['age'] = 20
dict2[3] = '完美'
dict2[0.9] = 0.9
print(dict2)
# 2.根據(jù)鍵值獲取value
print(dict1['score'])
# 3.獲取所有的鍵值
print(dict1.keys())
# 4.獲取所有的value值
print(dict1.values())
# 5.刪除字典元素
del dict1['name']
print(dict1)
# 6.清空字典所有條目
dict1.clear()
print(dict1)
# 7.刪除字典
dict3 = {2: 3}
del dict3
# 當(dāng)該數(shù)組唄刪除之后, 在調(diào)用會(huì)報(bào)錯(cuò)
# print(dict3)
上述語(yǔ)句的輸出結(jié)果如下
{'name': 'titan'}
{'name': 'brother', 'age': 20, 3: '完美', 0.9: 0.9}
90.98
dict_keys(['name', 'age', 'score'])
dict_values(['jun', 18, 90.98])
{'age': 18, 'score': 90.98}
{}
6. 集合
- 集合對(duì)象是由一組無(wú)序排列的值組成的序列,集合成員可以做字典中的鍵
- 集合
sets有兩種不同的類(lèi)型:可變集合set和不可變集合frozenset
# 集合
s = {1, 2, 3, 4}
# 1. 輸出
print(s)
# 2. 用set轉(zhuǎn)化已存在的類(lèi)型, 可以去重
# 集合不會(huì)存在相同的元素
myList = [1, 2, 3, 3, 4, 4, 4]
mySet = set(myList)
print(mySet)
# 3. 添加元素(已經(jīng)存在的元素, 無(wú)法添加)
mySet.add(2)
print(mySet)
mySet.add(6)
print(mySet)
# 4.刪除元素
mySet.remove(2)
print(mySet)
# 5.方法difference
set1 = {1, 2, 4}
set2 = {1, 2, 5, 6}
# 用set1和set2做difference
diff = set1.difference(set2)
print(diff)
# 輸出: {4}
# 用set2和set1做difference
diff2 = set2.difference(set1)
print(diff2)
# 輸出: {5, 6}
# 6. 返回相同的元素
inter = set1.intersection(set2)
print(inter)
# 輸出: {1, 2}
# 7.合并集合
union1 = set1.union(set2)
print(union1)
# 輸出: {1, 2, 4, 5, 6}
7. 數(shù)據(jù)類(lèi)型轉(zhuǎn)換
- 有時(shí)候,我們需要對(duì)數(shù)據(jù)內(nèi)置的類(lèi)型進(jìn)行轉(zhuǎn)換,數(shù)據(jù)類(lèi)型的轉(zhuǎn)換,你只需要將數(shù)據(jù)類(lèi)型作為函數(shù)名即可。
- 以下幾個(gè)內(nèi)置的函數(shù)可以執(zhí)行數(shù)據(jù)類(lèi)型之間的轉(zhuǎn)換。這些函數(shù)返回一個(gè)新的對(duì)象,表示轉(zhuǎn)換的值
| 函數(shù) | 描述 |
|---|---|
| int(x) | 將x轉(zhuǎn)換為一個(gè)整數(shù) |
| long(x) | 將x轉(zhuǎn)換為一個(gè)長(zhǎng)整數(shù) |
| float(x) | 將x轉(zhuǎn)換到一個(gè)浮點(diǎn)數(shù) |
| complex(real [,imag]) | 創(chuàng)建一個(gè)復(fù)數(shù) |
| str(x) | 將對(duì)象 x 轉(zhuǎn)換為字符串 |
| repr(x) | 將對(duì)象 x 轉(zhuǎn)換為表達(dá)式字符串 |
| eval(str) | 用來(lái)計(jì)算在字符串中的有效Python表達(dá)式,并返回一個(gè)對(duì)象 |
| tuple(s) | 將序列 s 轉(zhuǎn)換為一個(gè)元組 |
| list(s) | 將序列 s 轉(zhuǎn)換為一個(gè)列表 |
| set(s) | 轉(zhuǎn)換為可變集合 |
| dict(d) | 創(chuàng)建一個(gè)字典。d 必須是一個(gè)序列 (key,value)元組。 |
| frozenset(s) | 轉(zhuǎn)換為不可變集合 |
| chr(x) | 將一個(gè)整數(shù)轉(zhuǎn)換為一個(gè)字符 |
| unichr(x) | 將一個(gè)整數(shù)轉(zhuǎn)換為Unicode字符 |
| ord(x) | 將一個(gè)字符轉(zhuǎn)換為它的整數(shù)值 |
| hex(x) | 將一個(gè)整數(shù)轉(zhuǎn)換為一個(gè)十六進(jìn)制字符串 |
| oct(x) | 將一個(gè)整數(shù)轉(zhuǎn)換為一個(gè)八進(jìn)制字符串 |
使用示例如下
# 數(shù)據(jù)類(lèi)型轉(zhuǎn)換
dic = {'name': 'jun', 'age': 18}
# 1.將x轉(zhuǎn)換為一個(gè)整數(shù)
print(int(9.89))
print(int('9'))
# print(int('8.89')) # 這樣的寫(xiě)法會(huì)報(bào)錯(cuò)
# 2.創(chuàng)建一個(gè)復(fù)數(shù)
print(complex(1, 2))
print(complex('3'))
print(complex(-2, -4))
# 3.轉(zhuǎn)換為一個(gè)浮點(diǎn)型
print(float(9))
print(float('12.45'))
# 4.轉(zhuǎn)換為字符串
print(str(9))
print(str(9.09))
print(str('89'))
print(str(dic))
# 5.轉(zhuǎn)換為表達(dá)式字符串
print(repr(9.09))
print(repr(9 + 10))
print(repr(dic))
# 6.用來(lái)計(jì)算在字符串中的有效Python表達(dá)式,并返回一個(gè)對(duì)象
print(eval('3*9'))
print(eval("dic['age']*2"))
# 7.將序列轉(zhuǎn)換為一個(gè)元組
list7 = [1, 2, 3]
print(tuple(list7))
# 8.將序列轉(zhuǎn)換為一個(gè)列表
tuple8 = ('a', 's', 'd')
print(list(tuple8))
# 9.轉(zhuǎn)換為可變集合
print(set(list7))
# 10.創(chuàng)建一個(gè)字典
dic10 = dict([('name', 'titan'), ('age', 17)])
print(dic10)
# 11.轉(zhuǎn)換為不可變集合
print(frozenset({1, 2}))
# 12.將一個(gè)整數(shù)轉(zhuǎn)換為一個(gè)字符
# 48對(duì)應(yīng)字符'0'(參照ASCII碼表)
print(chr(122))
# 13.將一個(gè)字符轉(zhuǎn)換為它的整數(shù)值
print(ord('0'))
# 14.將一個(gè)整數(shù)轉(zhuǎn)換為一個(gè)十六進(jìn)制字符串
print(hex(10))
# 15.將一個(gè)整數(shù)轉(zhuǎn)換為一個(gè)八進(jìn)制字符串
print(oct(10))
- 對(duì)于
Python語(yǔ)言, 我也是小白, 正在努力學(xué)習(xí)中, 文中如有不足之處, 還望多多指教 - 測(cè)試代碼詳見(jiàn) GitHub地址
- 后期會(huì)持續(xù)更新相關(guān)文章