顯示具有 python教學(一) 標籤的文章。 顯示所有文章
顯示具有 python教學(一) 標籤的文章。 顯示所有文章

python 的布林資料型態

python 的布林資料型態與空值


  • python 中要表示布林資料型態,可以使用True及False來表示,在控制流程中,會使用布林值來判斷是否進入迴圈。

>>> t=True
>>> type(t)
<type 'bool'>

>>> r=False
>>> r
False


  • None表示變數是空值,其相當於Java的null。

>>> x
['name', 'phone', 'email']

>>> x=None
>>> x


python的dict資料型態

python的dict資料型態

  • 在python的List的資料型態中,每個元素以它所在的位置序號作為索引值index來進行資料存取的key值,在dict的資料型態,則是可以自定key值來做為資料的索引值。
  • dict資料型態是用左右大括號 ' { ' 、' } ' 將資料包含在其中,並用逗號 ' , ' 來作為區隔,每個key-value是以冒號 ' : ' 來進行配對,如:
>>> dic={'name':'eric','phone':'0900000000','email':'a@b.c.d'}
>>> dic
{'phone': '0900000000', 'name': 'eric', 'email': 'a@b.c.d'}


  • dict資料型態的key值一定要是字串資料,value值則可以是任何資料型態。
  • dict也可以由List的配對tuple資料轉換而來,其中tuple第一個元素會轉換為key,第二個元素會轉換成value
>>> x=[('name','eric'),('phone','0900000000'),('email','a@b.c.d')]
>>> y=dict(x)
>>> y
{'phone': '0900000000', 'name': 'eric', 'email': 'a@b.c.d'}

>>> y['phone']
'0900000000'

  • 另外也可以用zip的方式將兩個同數量不同List轉換成一個dict資料型態,如:
>>> x=['name','phone','email']
>>> y=['eric','0900000000','a@b.c.d']
>>> z=zip(x,y)
>>> z
[('name', 'eric'), ('phone', '0900000000'), ('email', 'a@b.c.d')]

>>> dict(z)
{'phone': '0900000000', 'name': 'eric', 'email': 'a@b.c.d'}

>>> z
[('name', 'eric'), ('phone', '0900000000'), ('email', 'a@b.c.d')]

>>> r=dict(z)
>>> r
{'phone': '0900000000', 'name': 'eric', 'email': 'a@b.c.d'}

  • 另外,我們也可以將dict轉換成List的資料型態。
>>> t=r.items()
>>> t
[('phone', '0900000000'), ('name', 'eric'), ('email', 'a@b.c.d')]


  • 若我們要取出dict的key或value值時,可以使用keys( )及values( )兩個方法來取出,如
>>> r
{'phone': '0900000000', 'name': 'eric', 'email': 'a@b.c.d'}

>>> r.keys()
['phone', 'name', 'email']

>>> r.values()
['0900000000', 'eric', 'a@b.c.d']

  • 若要刪除某一對key-value組合時,可以使用del指令,如:
>>> r
{'phone': '0900000000', 'name': 'eric', 'email': 'a@b.c.d'}

>>> del r['name']
>>> r
{'phone': '0900000000', 'email': 'a@b.c.d'}

>>>

python 的tuple資料型態

python 的tuple資料型態

python 的tuple資料型態與List非常類似,是用左右兩個括號 ' ( '與 ' ) '將元素包在其中,其與List最大的差別在於一但決定了元素的內容,就不可以變更,不像List一樣可以隨時修改。

>>> x=[1,2,3]
>>> y=(4,5,6)
>>> x[2]
3

>>> y[2]
6

>>> x
[1, 2, 3]

>>> x[2]=99
>>> x
[1, 2, 99]

>>> y[2]=99
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment

python 的List資料型態

python 的List資料型態

  • List資料型態可以用來表示任何python資料型態的有序集合,亦即將任何資料型態的資料串接在一起,可以是不同資料型態的組合,List中也可以包含另一個List,當要取出其中的資料時,可以用類似陣列的方式,指定要取出位置的資料或一個範圍的資料,如:
>>> lst=[1,2,'abc',3.4,5+6j]
>>> lst
[1, 2, 'abc', 3.4, (5+6j)]

>>> lst[4]
(5+6j)

>>> lst[3:]
[3.4, (5+6j)]

>>> lst[1:3]
[2, 'abc']

>>> lst[1:3]=[5,6]
>>> lst
[1, 5, 6, 3.4, (5+6j)]

  • List可以透過( + )的符號來組合兩個不同的List,如果是要加到尾端,則可以利用append或extend兩種方法來達成,但此兩個方法是不一樣的,可參考下面例子,分辨它們的不同。
>>> x=[1,2,3]
>>> y=[4,5,6]
>>> z=[a,b,c]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'b' is not defined

>>> z=['a','b','c']
>>> x+y
[1, 2, 3, 4, 5, 6]
>>> x
[1, 2, 3]

>>> r=x+y
>>> r
[1, 2, 3, 4, 5, 6]

>>> x.append(y)
>>> x
[1, 2, 3, 'abc', [4, 5, 6]]

>>> x.extend(y)
>>> x
[1, 2, 3, 'abc', [4, 5, 6], 4, 5, 6]


  • List的排序可以用reverse( )函數或是.sort(reverse=True)來達成

>>> x
[0, 1, 2, 3, 4, 5]

>>> x.sort(reverse=True)
>>> x
[5, 4, 3, 2, 1, 0]
>>> x
[5, 4, 3, 2, 1, 0]
>>> x.reverse()
>>> x
[0, 1, 2, 3, 4, 5]

  • List Comprehension 表列解析,我們可以利用for 迴圈來逹成。
l=[x**2 for x in range(10)]
>>> l
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

python 字串的Unicode編碼

python 字串的Unicode編碼

Unicode(中文:萬國碼、國際碼、統一碼、單一碼)是電腦科學領域裡的一項業界標準。它對世界上大部分的文字系統進行了整理、編碼,使得電腦可以用更為簡單的方式來呈現和處理文字。

在python 2.7版中,預設的字串格式為ASCII編碼,如果要以unicode的編碼格式來儲存字串,必須在字串的最前面加上 'u' 的前置字元,如:
>>> z='Hello, Eric'

>>> r=u'Hello, Eric'
>>> r
u'Hello, Eric'

>>> z
'Hello, Eric'

>>> chin=u'這是一個中文字串'
>>> chin
u'\u9019\u662f\u4e00\u500b\u4e2d\u6587\u5b57\u4e32'

>>> achin='這是一個中文字串'
>>> achin
'\xb3o\xacO\xa4@\xad\xd3\xa4\xa4\xa4\xe5\xa6r\xa6\xea'

>>> print chin
這是一個中文字串

>>> print achin
這是一個中文字串

>>> a=u'\u0040'
>>> print a
@

python 字串資料型態

python 字串資料型態

  • python中字串資料可以用半型的單引號 ( ' )或雙引號( " )來將字串內容包覆在其中,如果在其中有必要顯示單引號或雙引號時,可以用( \ )跳脫字元來將這兩個符號顯示出來。

>>> x='Hello Eric'
>>> print x
Hello Eric

>>> x='Hello, I\'m Eric'
>>> print x
Hello, I'm Eric


  • 在執行環境中,無法利用Enter來直接換行,若要進行換行,可以用( \n )的字元來達成。
>>> x='Hello, \n I\'m Eric'
>>> print x
Hello,
 I'm Eric


  • 若在程式碼中一次要輸入多行時,可使用( \ )符號來達成。
>>> x='Hello, \
... I\'m Eric'
>>> print x
Hello, I'm Eric

  • 另外也可以使用三個單引號( ''' )或雙引號( """ )來完整保留字串資料的原始格式。
>>> x='''Hello,
... I\'m Eric'''

>>> x
"Hello,\nI'm Eric"

>>> print x
Hello,
I'm Eric


  • 字串可以用( + )號或空白來達到字串的連結作用,另外可以用乘號( * )來達到倍數的作用
>>> x='Hello, '
>>> y='Eric'
>>> print x+y
Hello, Eric

>>> z='Hello, ' 'Eric'
>>> z
'Hello, Eric'

>>> print x*5+y*5
Hello, Hello, Hello, Hello, Hello, EricEricEricEricEric


  • 但兩個字串變數則不行用空白來做組合運算,必須用( + )的符號來組合在一起,另外字串若要與其它非字串型態的變數相加,必須要先將非字串的變數利用str( )函數轉換為字串再進行運算。

>>> z=x y
  File "<stdin>", line 1
    z=x y
        ^
SyntaxError: invalid syntax

>>> z=x+y
>>> z
'Hello, Eric'

>>> i=9
>>> print i+x
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'str'

>>> print str(i)+x
9Hello,



  • 若要取出字串中某些字元,可以將此字串的每一個字元當成陣列中的元素,起始的位置為0。

>>> z='Hello, Eric'

>>> z[3]
'l'

>>> z[0:4]
'Hell'

>>> z[:4]
'Hell'

>>> z[4:]
'o, Eric'

>>> z[-3]
'r'

>>> z[0:3]+z[5:]
'Hel, Eric'



  • 要計算字串的長度,可用len( )函數來計算。

>>> z
'Hello, Eric'

>>> len(z)
11


  • 字串的延伸切片運算,可以透過第三個限制值來取出相隔等距的字串字元。

>>> s='abcdefghijklmno'
>>> s[1:10:2]
'bdfhj'


python 數值資料型態

python 數值資料型態

  • python 的數值資料型態有三種:整數(integer)、浮點數(float)及複數(complex number)。
  • 整數及浮點數可以直接進行四則運算、餘數運算及指數運算,系統會自動轉換為範圍大的型態。
>>> 10+2
12

>>> 4.5+6
10.5

>>> 2**3
8

>>> 2^5
7

>>> 2.5/5
0.5

>>> 16**0.25
2.0

  • 除法運算則依照您所要的結果來區分為整數除法與浮點數除法。
  • 若除數與被除數皆為整數時,所得到的結果只有商的整數部份。
  • 若除數或被除數其中一個為浮點數時,所得到的結果就會是帶有小數完整的商。

>>> 3/2
1

>>> 3.0/2
1.5

>>> 3/2.0
1.5

>>> 10.0/3
3.3333333333333335


  • 對於浮點數而言,因數值呈現位數有限,表示法會將部份位數捨去,造成顯示上會有誤差,愈大量運算誤差會愈大,但對於實際結果顯示上可以利用轉換為整數int()或取浮點數有效位數round()來解決這個問題,如:
>>> x=0.1
>>> print x
0.1

>>> x**10
1.0000000000000006e-10

>>> x**50
1.0000000000000027e-50


  •  整數與浮點數的轉換可以利用int( )與float( )兩個函數來完成。
>>> x=4.9
>>> int(x)
4

>>> y=5
>>> float(y)
5.0

>>> z=float(y)/x
>>> z
1.0204081632653061

>>> round(z,5)
1.02041

  • 對於複數的資料型態,可以使用 x+yj 或 x+yJ 兩種(j或J)來表示,其中x表示實部,y表示虛部。

>>> x=1+4j
>>> print x
(1+4j)

>>> y=2+3j
>>> y
(2+3j)

>>> x+y
(3+7j)

>>> x*y
(-10+11j)

>>> x+6
(7+4j)

>>> x**2
(-15+8j)

>>> y**2
(-5+12j)

  • 若要單獨取出複數的實部或虛部,可以使用real及imag兩個屬性。
>>> x.real
1.0

>>> x.imag
4.0



python 變數

python 變數

  • python 中可以直接利用符號來儲存數值,字串或資料結構,也就是我們所謂的變數,當變數存放資料後,就可以直接拿來運算或作其它處理,不必進行宣告。

>>> x=6
>>> print x
6

>>> print x+2
8

>>> y='abc'
>>> print y+'def'
abcdef

>>> y=y+'def'
>>> print y
abcdef

>>> z=2.3
>>> print z+x
8.3
>>>



python 基本語法

python 執行方式 

對於python直言,它是直譯式的語言,本身也是一個直譯器,所以可以直接在執行介面上輸入指令,馬上系統會呈現執行結果到螢幕上,如此程式設計師可以很快速的得知結果,非常有助於即時開發測試使用.

當你在命令視窗中輸入python後,即可立即進入交談式的介面,然後直接輸入你所要執行的指令, 如:

Microsoft Windows [版本 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Users\Administrator>python
Python 2.7.6 (default, Nov 10 2013, 19:24:18) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> print 'hello,world'
hello,world
>>> 3+23
26
>>>

除此之外,你也可以將要執行的內容存在一個.py的檔內,然後直接執行python XXX.py的指令,系統會顯示你要呈現的結果,如將內容存在hello.py檔中,
#hello.py 
print 'hello, world'
print 3+23


以上為hello.py檔內容,執行內容如 下:
C:\>python hello.py
hello, world
26


在python中「#」的符號代表在此字元後的所有同一列文字被視為註解。