數(shù)據(jù)類型
Python中的變量不需要聲明蛤育。每個變量在使用前必須賦值豁辉,變量賦值以后才會被創(chuàng)建
Numbers / String / List / Tuple /Sets / Dictionaries
python中數(shù)字有四種類型:整數(shù)怠缸、布爾型、浮點數(shù)和復數(shù)
- 不可變數(shù)據(jù)(3個):Number(數(shù)字)蛛倦、String(字符串)耻煤、Tuple(元組)
- 可變數(shù)據(jù)(3個):List(列表)、Dictionary(字典)茶袒、Set(集合)
數(shù)字(整數(shù)梯刚、浮點數(shù)、復數(shù))
- int(整數(shù))如1薪寓,只有一種整數(shù)類型int乾巧,表示為長整形。
- flost(浮點數(shù))如1.23,3E-2
- bool( 布爾值)如true(布爾值 可以用and or 和 not運算)
- 空值 用None表示预愤。
- 變量賦值 與Java類似 (python為動態(tài)語言 不需要要聲明變量的類型)
- 常量 即不可改變的量
日常演示
type() 函數(shù)可以用來查詢變量所指的對象類型(也可以用isinstance來判斷)
兩者區(qū)別是
type()不會認為子類是一種父類類型沟于。
isinstance()會認為子類是一種父類類型。
print默認輸出是換行的植康,如果實現(xiàn)不換行的話需要在末尾加上end=""
代碼演示
print( y )
print('---------')
# 不換行輸出
print( x, end=" " )
變量
- Python中的變量不需要聲明旷太。每個變量在使用前必須賦值,變量賦值以后該變量才會被創(chuàng)建销睁。
- 在Python中供璧,變量就是變量,沒有類型冻记,我們所說的“類型”是變量所指的內存中對象的類型睡毒。
字符串(String)
- 單引號或者雙引號括起來的文本
- Python中的字符串有兩種索引方式,從左到右以0開始冗栗,從右到左以-1開始演顾。
- Python中的字符串供搀,不能改變
- 轉義符“\”,使用r可以讓反斜杠不發(fā)生轉義。r"this is a line with \n".
10 / 3 = 3.3333 # 除法運算
9 / 3 = 3.0 # 浮點數(shù)
10 / 3 = 3 # 底板除 即取整
7 % 3 = 2 # 底板除 即取整
容器
- Python支持一種數(shù)據(jù)結構的基本概念钠至,名為容器(container)挂脑。容器基本上就是可包含其他對象的對象窄刘。兩種主要的容器是序列(如列表和元組)和映射(如字典)耻卡。在序列中挺益,每個元素都有編號,而在映射中宪卿,每個元素都有名稱(也叫鍵)的诵。有一種既不是序列也不是映射的容器,它就是集合(set).
- 序列:序列是一種數(shù)據(jù)結構佑钾,其中的元素帶編號(編號從0開始)奢驯。列表、字符串和元組
都屬于序列次绘,其中列表是可變的(你可修改其內容)瘪阁,而元組和字符串是不可變的(一旦
創(chuàng)建,內容就是固定的)邮偎。要訪問序列的一部分管跺,可使用切片操作:提供兩個指定切片起
始和結束位置的索引。要修改列表禾进,可給其元素賦值豁跑,也可使用賦值語句給切片賦值。
List
python內置的一種數(shù)據(jù)類型泻云,是一種有序的集合艇拍。可以隨時添加刪除參數(shù)宠纯,集合保存的數(shù)據(jù)可以不為同一種類型卸夕。
特點
- 查找和插入的時間隨著元素的增加而增加;
- 占用空間小婆瓜,浪費內存很少快集。
- 列表是可以修改的,而元組不可以
日常方法
- len(list) 獲得list元素的個數(shù)
- list[index]訪問當前位置的元素
- list[-index]訪問倒數(shù)第N個位置的元素
- list.insert(1,'jack') 插入到當前位置
- list.pop() 刪除list末尾的元素
- list.append(data)追加數(shù)據(jù)
- del list[index] 刪除數(shù)據(jù)
- list.extend(list2) 附加到末尾
classmates = ['Michael', 'Bob', 'Tracy']
classmates.append(data) #追加數(shù)據(jù)到末尾
>>> x = ['aardvark', 'abalone', 'acme', 'add', 'aerate']
>>> x.sort(key=len)
>>> x
['add', 'acme', 'aerate', 'abalone', 'aardvark']
>>> x = [4, 6, 2, 1, 7, 9]
>>> x.sort(reverse=True)
>>> x
[9, 7, 6, 4, 2, 1]
Python中列表是可變的廉白,這是它區(qū)別于字符串和元組的最重要的特點个初,一句話概括即:列表可以修改,而字符串和元組不能猴蹂。
tuple
有序列表叫元組院溺,與集合不同的是,一旦初始化就不可改變磅轻。因為不可變珍逸,所以更安全
- 不能新增逐虚,不能刪除,只能查看弄息,不能替換。
- 可變 是二維數(shù)組可變
>>> t = ('a', 'b', ['A', 'B'])
>>> t[2][0] = 'X'
>>> t[2][1] = 'Y'
>>> t
('a', 'b', ['X', 'Y'])
// 將一個序列 轉換為元組
tuple([1,2,3])
條件判斷
age = 3
if age >= 18:
print('adult')
elif age >= 6:
print('teenager')
else:
print('kid')
if判斷條件簡寫 只要x是非零數(shù)值勤婚,非空字符串摹量,非空list,就判斷為true馒胆,否則為false缨称。
if x:
print('true')
input
- input()返回的數(shù)據(jù)類型為字符串,字符串不能與整數(shù)比較祝迂。
birth = input('birth: ')
birth2 = int(birth)
if birth < 2000:
print('00前')
else:
print('00后')
循環(huán)
- for循環(huán)
names = ['Michael','Bob','Tracy','Dody']
for name in names:
print(name)
- while循環(huán)
sum = 0
n = 99
while n > 0:
sum = sum + n
n = n - 1
print(sum)
- break continue 千萬記得縮進 縮進 縮進
n = 0
while n < 10:
n = n + 1
if n % 2 == 0: # 如果n是偶數(shù)睦尽,執(zhí)行continue語句
continue # continue語句會直接繼續(xù)下一輪循環(huán),后續(xù)的print()語句不會執(zhí)行
print(n)
set
set和dirt類似型雳,是一組key的集合当凡,但不存儲value,由于key不能重復纠俭,所以沒有重復的key沿量。
>>> s = set([1, 1,2,2,3冤荆, 3])
>>> s
{1, 2, 3}
# 通過add(key)方法添加元素
>>> s.add(4)
>>> s
#通過remove(key)刪除元素
>>> s.remove(4)
>>> s
dict
特點
- 查找和插入的速度極快朴则,不會隨著key的增加而變慢;
- 需要占用大量的內存钓简,內存浪費多乌妒。
注意
- 回None的時候Python的交互環(huán)境不顯示結果
- dict內部存放的順序和key放入的順序是沒有關系的。
- dict的key必須是不可變對象外邓。
- dict字典 類似于Java中的Map,鍵值對存儲
- dict是一種拿控件換時間的方法撤蚊。
>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
>>> d['Michael']
# pop(key) 刪除一個key
# 二是通過dict提供的get()方法,如果key不存在损话,可以返回None
# 注意:返回None的時候Python的交互環(huán)境不顯示結果拴魄。
>>> d.get('Michael')
95
迭代器和生成器
兩個基本方法
- iter(list) # 創(chuàng)建迭代器對象
- next(it) 輸出迭代器的下一個元素
>>>list=[1,2,3,4]
>>> it = iter(list) # 創(chuàng)建迭代器對象
>>> print (next(it)) # 輸出迭代器的下一個元素
1
>>> print (next(it))
2
>>>
邏輯運算符
- is 用于判斷兩個變量引用對象是否為同一個, == 用于判斷引用變量的值是否相等席镀。
- 注: id() 函數(shù)用于獲取對象內存地址匹中。
a = 10
b = 20
list = [1,2,3,4,5]
if(1 not in list):
print("存在")
else:
print("不存在")
if ( a is b ):
print ("變量引用對象是同一個")
else:
print ("變量引用對象不是同一個")
'''
if(a and b):
print("and a = ",a)
else:
print("and b = ",b)
if(a or b):
print("or a = ",a)
else:
print("or b = ",b)
'''