1. 程式人生 > >python3 資料型別

python3 資料型別

這裡寫圖片描述

基本資料型別

python3中 Number 只有 int 和 float(預設就是雙精度)
/ 除法 2/2 float = 1.0
// 整除 2//2 int = 1

bool 一切非0都是真
一切空值都是False
None是False

各進位制的表示與轉換

二進位制:0b10 0b11…
八進位制:0o
十六進位制:0x
任意數字轉換
二進位制 bin()
十進位制 int()
十六進位制 hex()
八進位制 oct()

python中的單引號和雙引號以及三引號

” “” ”’ ”’ “”” “””
三引號可以換行

python裡的轉義字元

特殊的字元
無法看見的字元
與語言本身語法有衝突的字元

\n 換行
\’ 單引號
\t 橫向製表符
\r 回車

原始字串

print(r’sdsdd\n’) >>> sdsdd\n
當一個字串前面加上r 那麼這個字串就是原始字串 不會轉義

字串運算

+號 連線
“hello”+”world” >>>’helloworld’
“hello”*3 >>>’hellohellohello’
“hello world”[0] >>> ‘h’ 很牛掰
“hello world”[3] >>> ‘l’ 很牛掰
“hello world”[-3] >>>’r’

>>>"hello world"[6]    //[正數]代表字串的序號 從0開始
'w'
>>>"hello world"[-5]   //[負數] 從字串的末尾往回數5'w'
>>>"hello world"[0:4]  //左包右不包
'hell'
>>> "hello world"[0:-1]  //負數代表步長 從字串的末尾往回數1'hello worl'
>>> "hello world"[0:-3]
'hello wo'
>>> "hello world"[6:11]
'world'
>>> 
"hello world"[6:] //擷取從第六個開始到末尾 'world' >>> "hello python java c# javascript ruby"[6:] 'python java c# javascript ruby' >>> "hello python java c# javascript ruby"[:-4] 'hello python java c# javascript ' >>> "hello python java c# javascript ruby"[-4:] 'ruby'

列表的定義

列表裡什麼都能放
list

>>> [1,2,3,4,5,6]
[1, 2, 3, 4, 5, 6]
>>> type([1,2,3,4,5,6])
<class 'list'>
>>> ["hello","world",1,9]
['hello', 'world', 1, 9]
>>> ["hello",1,9,True,False]
['hello', 1, 9, True, False]
>>> [[1,2],[3,4],[True,False]]
[[1, 2], [3, 4], [True, False]]      //巢狀列表
>>> type([[1,2],[3,4],[True,False]])
<class 'list'>

>>> ["心悅打擊","蒼白智跑","精練志活"][2]
'精練志活'
>>> ["心悅打擊","蒼白智跑","精練志活"][0][2]
'打'
>>> ["心悅打擊","蒼白智跑","精練志活"][0:2]
['心悅打擊', '蒼白智跑']
>>> ["心悅打擊","蒼白智跑","精練志活"][-1:]
['精練志活']

>>> ["心悅打擊","蒼白智跑","精練志活"]+['點燃','虛弱']
['心悅打擊', '蒼白智跑', '精練志活', '點燃', '虛弱']

>>> ["心悅打擊","蒼白智跑","精練志活"]*2
['心悅打擊', '蒼白智跑', '精練志活', '心悅打擊', '蒼白智跑', '精練志活']

元組
tuple

>>> (1,2,3)
(1, 2, 3)
>>> (1,'-1',True)
(1, '-1', True)
>>> (1,2,3,4)[0]
1
>>> (1,2,3,4)[0:2]
(1, 2)
>>> (1,2,3)*3
(1, 2, 3, 1, 2, 3, 1, 2, 3)
>>> type((1,2,3))
<class 'tuple'>
>>> type((1))      // ()裡只有一個元素 就當做()運算了
<class 'int'>
>>> type((1,))     
<class 'tuple'>

list str tulpe 都是序列

序列裡的每一個元素都有順序和序號
切片 [0:] [:-5] 類似這種
+ *

>>> 3 in [1,2,3,4,5]   //判斷元素是否在列表中
True
>>> 3 not in[1,2,3,4,5] //判斷元素是否不在這個列表中
False
>>> len([1,2,6,4,5,6])
6
>>> len("hellworld")
9
>>> max([1,2,3,4,5,6])
6
>>> min([1,2,3,4,5,6])
1
>>> max('hello world')
'w'

>>> ord('w')  阿斯克碼~
119

集合 set

集合是無序的,沒有下標索引
集合的特色就是 - 差集 &交集 | 並集

>>> type({1,2,3,4})
<class 'set'>

>>> {1,1,2,2,3,3,4,4}  //集合不重複
{1, 2, 3, 4}
>>> len({1,2,3})
3
>>> 1 in {1,2,3}
True
>>> 1 not in {1,2,3,4}
False
>>> {1,2,3,4,5,6}-{4,5}  //求兩個集合的差集
{1, 2, 3, 6}
>>> {1,2,3,4,5,6} & {3,4} //求兩個集合的交集
{3, 4}
>>> {1,2,3,4,5,6} | {3,4,7}  //求兩個集合的並集
{1, 2, 3, 4, 5, 6, 7}

dict字典

空的{}表示字典 不表示集合

key:必須是不可變的型別 int str
字典由很多個key value 組合而成 字典不是序列 字典也是集合

>>> {'Q':'心悅打擊','W':'蒼白質樸','E':'也只降臨','R':'月神衝刺'}['Q']
'心悅打擊'
>>> {'Q':'心悅打擊','W':'蒼白質樸','E':'也只降臨','R':'月神衝刺'}['W']
'蒼白質樸'
>>> {'Q':'心悅打擊','Q':'心悅打擊','W':'蒼白質樸','E':'也只降臨','R':'月神衝刺'} //不會重複
{'Q': '心悅打擊', 'W': '蒼白質樸', 'E': '也只降臨', 'R': '月神衝刺'}  
>>> {1: '心悅打擊','1': '心悅打擊', 'W': '蒼白質樸', 'E': '也只降臨', 'R': '月神衝刺'}
{1: '心悅打擊', '1': '心悅打擊', 'W': '蒼白質樸', 'E': '也只降臨', 'R': '月神衝刺'}