追蹤者

2018年1月17日 星期三

精通Python(一)

第二章
✪ 數字、字串、變數
*Python 是 強類型(strong typing) 物件的類型無法變更,即使值是可變的
*Python 變數 :  變數只是個名稱。賦值不會將值複製,他只會指派一個"名稱"給含有該資料的物件而已。
*名稱的第一個字元不能使用數字
*除法有兩種
    -算出浮點除法 :
    >>> 9/5
    1.8
    -算出整數除法 :
 >>> 9//5
    1
*同時取得商和餘數 :  divmod
    >>> divmod(9,5)
    (1,4)
基數
1. 二進位 :
>>>0b10
2
2.八進位 :
>>>0o10
8
3.十六進位 :
>>>0x10
16
*類型轉換
>>> int(True)
1
>>> int(98.6)
98
>>> int('100')  (只包含純整數的字串)
100
>>> int('98.6')  error
>>> int('44 is good') error
*int 大小 : 32位元 可儲存 -(2^31)~2^31-1
*字串
- str() 轉換資料類型 :
>>>str(98.6)
'98.6'
- 用\轉義 :
>>> pd = 'a for apple, \nb for bird, \nc for cat.'
>>> print(pd)
a for apple,
b for bird,
c for cat.
\n 換行 \t tab
-用+結合常值字串或字串變數
>>> "hello"+"how are you"
'hellohow are you'
- 用* 複製
>>> start = 'na' * 4 + '\n'
>>> print(start)
nananana

-使用 [開始:結束:間隔] 的 slice
  • [:] 會擷取整個序列,從開始到結束
  • [start:] 會指定從 start 到結束 
  • [:end] 會指定從開始到end位移值-1
  • [start:end] 會指定從start 位移值 到 end 位移值-1
  • [start: end : step] 會擷取從start位移值到end位移值-1,跳過step元
>>> letters = 'abcdefghijklmnopqrstuvwxyz'
>>> letters[20:]
'uvwxyz'
>>> letters[12:15]
'mno'
>>> letters[-3:]
'xyz'
>>> letters[18:-3]
'stuvw'
>>> letters[::7]
'ahov'
>>> letters[4:20:3] 從位移值 4到 19 間隔3個字元
'ehknqt'
- len() 取得長度 
>>>len(letters)
26
- split()分割
>>> todos = 'hello,ready,final'
>>> todos.split(',')
['hello', 'ready', 'final']
- join 結合
>>> cp_list = ['arr','bww','ckk']
>>> cp_string = ','.join(cp_list)
>>> print(cp_string)
arr,bww,ckk
- find() 找某字在字串中第一次出現的位移植
>>> word  ='the'
>>>poem.find(word)
73
- count() 數某字出現幾次
-strip() 移除某序列 
>>> setup = 'a duck goes into a bar...'
>>> setup.strip('.')
'a duck goes into a bar'
-將所有字元改為大寫
>>> setup.upper()
'A DUCK GOES INTO A BAR...'
- replace() 替換
>>> setup.replace('duck','rabbit')
'a rabbit goes into a bar...'
# 注意 因為字串是不可變的,這些範例都不會實際改變setup字串。每個範例都只是取出setup的值,做一些事情後,再以新字串回傳結果



沒有留言:

張貼留言