Python試水

1、Hello,Python!

試水 test.pyhtml

print "你好,Python!" #python 2.x
python ("你好,Python!") #python 3.x

很不幸,第一個test.py就遇到了字符錯誤!node

nodedeMacBook-Pro:pytest node$ python ./test.py
File "./test.py", line 1
SyntaxError: Non-ASCII character '\xef' in file ./test.py on line 1, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

解決方案:在之後的每個須要顯示漢字的python文件中, 能夠採用以下方法在 #!/usr/bin/python的下一行加上一句話來定義編碼格式,以utf-8編碼爲例。python

#!/usr/bin/python
#coding:utf-8 1️⃣| #-*-coding:utf-8 -*- 2️⃣| #vim: set fileencoding:utf-8 3️⃣
print "你好,Python!"

***特別注意:定義編碼格式的這一行代碼必須放在第一行或者第二行, 通常若是第一行是提示python位置的代碼, 那麼定義編碼格式的這一行就必須放在第二行,不然依然會提示錯誤。
轉自:https://www.cnblogs.com/Karry...vim

2、基礎語法

行和縮進

js代碼塊通常使用{}包裹,Python則是使用縮進,可是全部代碼塊語句必須包含相同的縮進空白數量數組

多行語句

# 使用斜槓( \)將一行的語句分爲多行顯示
total = item_one + \
        item_two + \
        item_three
# 語句中包含 [], {} 或 () 括號就不須要使用多行鏈接符
days = ['Monday', 'Tuesday', 'Wednesday',
        'Thursday', 'Friday']

引號

Python 可使用引號( ' )、雙引號( " )、三引號( ''' 或 """ ) 來表示字符串,其中三引號能夠由多行組成,編寫多行文本的快捷語法,經常使用於文檔字符串(相似js的模板字符串"``"),在文件的特定地點,被當作註釋。數據結構

word = 'word'
sentence = "這是一個句子。"
paragraph = """這是一個段落。
包含了多個語句"""

註釋

python中單行註釋採用 # 開頭。多行註釋使用三個單引號(''')或三個雙引號(""")。app

同一行顯示多條語句

Python能夠在同一行中使用多條語句,語句之間使用分號(;)分割函數

import sys; x = 'runoob'; sys.stdout.write(x + '\n')

輸出

print 默認輸出是換行的,若是要實現不換行須要在變量末尾加上逗號 ,測試

#!/usr/bin/python
# -*- coding: UTF-8 -*-

x="a"
y="b"
# 換行輸出
print x
print y

print '---------'
# 不換行輸出
print x,
print y,

# 不換行輸出
print x,y

結果編碼

a
b
---------
a b a b

多個語句構成代碼組

縮進相同的一組語句構成一個代碼塊,咱們稱之代碼組。

import 與 from...import

相似 js 的import

# python
import sys #導入 sys 模塊
from sys import argv,path  #導入 sys 模塊的 argv,path 成員
from sys import #導入 sys 模塊的全部成員

# js
import sys from sys
import sys as _sys from sys
import { argv,path } from sys

3、變量類型

變量聲明和賦值

Python 中的變量賦值不須要類型聲明,可是必須先賦值
每一個變量在內存中建立,都包括變量的標識,名稱和數據這些信息。
每一個變量在使用前都必須賦值,變量賦值之後該變量纔會被建立。
等號(=)用來給變量賦值。
等號(=)運算符左邊是一個變量名,等號(=)運算符右邊是存儲在變量中的值。

counter = 100 # 賦值整型變量
miles = 1000.0 # 浮點型
name = "John" # 字符串

多個變量賦值

# Python容許你同時爲多個變量賦值
a = b = c = 1
# 也能夠爲多個對象指定多個變量
a, b, c = 1, 2, "john"

標準數據類型

Python2.x有五個標準的數據類型,Python3.x新增一個數據類型:

  • Numbers(數字)數字數據類型用於存儲數值。Python支持四種不一樣的數字類型:int(有符號整型)、long(長整型[也能夠表明八進制和十六進制],long 類型只存在於 Python2.X 版本中,在 2.2 之後的版本中,int 類型數據溢出後會自動轉爲long類型。在 Python3.X 版本中 long 類型被移除,使用 int 替代)、float(浮點型)、complex(複數)

    • 建立Number對象var1 = 1;var2 = 10
    • 經過使用del語句刪除單個或多個對象的引用del var; del var_a, var_b
    • 數值的除法包含兩個運算符:/ 返回一個浮點數,// 返回一個整數 10 // 3結果爲 3
    • 在混合計算時,Python會把整型轉換成爲浮點數 18 / 6 +2結果爲 5.0
  • String(字符串),字符串或串(String)是由數字、字母、下劃線組成的一串字符

    從字符串中獲取一段子字符串的話,可使用 [頭下標:尾下標] 來截取相應的字符串,其中下標是從 0 開始算起,能夠是正數或負數,下標能夠爲空表示取到頭或尾。

    str = 'Hello World!'   
     print str           # 輸出完整字符串
     print str[0]        # 輸出字符串中的第一個字符
     print str[2:5]      # 輸出字符串中第三個至第六個之間的字符串
     print str[2:]       # 輸出從第三個字符開始的字符串
     print str * 2       # 輸出字符串兩次
     print str + "TEST"  # 輸出鏈接的字符串

    result:

    Hello World!
     H
     llo
     llo World!
     Hello World!Hello World!
     Hello World!TEST

    Python 列表截取能夠接收第三個參數,參數做用是截取的步長

    >>> str = "abcdefg"
       >>> str[1:4:2]
       'bd'
       >>> str[1:4:3]
       'b'
       >>> str[1:4:1]
       'bcd'
       >>> str[1:6:2]
       'bdf'
       >>> str[1:6:1]
       'bcdef'

    綜上述實驗,我認爲這樣理解比較合適,第二參數默認爲字符串的長度-1,做用爲規定字符串截取的截止位置;第三個參數默認爲1,做用爲跳過n-1個字符,n-1爲0即參數爲1時步長爲0

  • List(列表) ,列表用 [ ] 標識,是 python 最通用的複合數據類型(其實就相似於其餘語言的數組)

    列表中值的切割也能夠用到變量 [頭下標:尾下標] ,就能夠截取相應的列表,從左到右索引默認 0 開始,從右到左索引默認 -1 開始,下標能夠爲空表示取到頭或尾。

    list = [ 'runoob', 786 , 2.23, 'john', 70.2 ]
     tinylist = [123, 'john']    
     print list               # 輸出完整列表
     print list[0]            # 輸出列表的第一個元素
     print list[1:3]          # 輸出第二個至第三個元素 
     print list[2:]           # 輸出從第三個開始至列表末尾的全部元素
     print tinylist * 2       # 輸出列表兩次
     print list + tinylist    # 打印組合的列表

    result:

    ['runoob', 786, 2.23, 'john', 70.2]
     runoob
     [786, 2.23]
     [2.23, 'john', 70.2]
     [123, 'john', 123, 'john']
     ['runoob', 786, 2.23, 'john', 70.2, 123, 'john']
  • Tuple(元組),元組是另外一個數據類型,相似於 List(列表)。元組用 () 標識。內部元素用逗號隔開。可是元組不能二次賦值,至關於只讀列表。

    tuple = ( 'runoob', 786 , 2.23, 'john', 70.2 )
     tinytuple = (123, 'john')
     print tuple               # 輸出完整元組
     print tuple[0]            # 輸出元組的第一個元素
     print tuple[1:3]          # 輸出第二個至第四個(不包含)的元素 
     print tuple[2:]           # 輸出從第三個開始至列表末尾的全部元素
     print tinytuple * 2       # 輸出元組兩次
     print tuple + tinytuple   # 打印組合的元組

    result:

    ('runoob', 786, 2.23, 'john', 70.2)
     runoob
     (786, 2.23)
     (2.23, 'john', 70.2)
     (123, 'john', 123, 'john')
     ('runoob', 786, 2.23, 'john', 70.2, 123, 'john')    
     
    # 注意元祖不能夠修改
     tuple = ( 'runoob', 786 , 2.23, 'john', 70.2 )
     list = [ 'runoob', 786 , 2.23, 'john', 70.2 ]
     tuple[2] = 1000    # 元組中是非法應用
     list[2] = 1000     # 列表中是合法應用
  • Dictionary(字典),字典(dictionary)是除列表之外python之中最靈活的內置數據結構類型。列表是有序的對象集合,字典是無序的對象集合。二者之間的區別在於:字典當中的元素是經過鍵來存取的,而不是經過偏移存取。字典用"{ }"標識。字典由索引(key)和它對應的值value組成。(說白了列表是數組,字典是對象)

    dict = {}
     dict['one'] = "This is one"
     dict[2] = "This is two"
    
     tinydict = {'name': 'john','code':6734, 'dept': 'sales'}
      
    
     print dict['one']          # 輸出鍵爲'one' 的值
     print dict[2]              # 輸出鍵爲 2 的值
     print tinydict             # 輸出完整的字典
     print tinydict.keys()      # 輸出全部鍵
     print tinydict.values()    # 輸出全部值

    result:

    This is one
     This is two
     {'dept': 'sales', 'code': 6734, 'name': 'john'}
     ['dept', 'code', 'name']
     ['sales', 6734, 'john']
  • Set(集合,Python3.x新增)集合(set)是由一個或數個形態萬千的大小總體組成的,構成集合的事物或對象稱做元素或是成員。基本功能是進行成員關係測試和刪除重複元素。可使用大括號 { } 或者 set() 函數建立集合,注意:建立一個空集合必須用 set() 而不是 { },由於 { } 是用來建立一個空字典。

    建立格式

    # 第一種方式
     parame = {value01,value02,...}
     parame = {} # 這種方式建立一個空字典而不是空集合
     # 第二種方式
     parame = set(value)
     parame = set() # 使用這種方式建立一個空集合

    實例

    >>basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
    >> print(basket)                      # 這裏演示的是去重功能
     {'orange', 'banana', 'pear', 'apple'}
    >> 'orange' in basket                 # 快速判斷元素是否在集合內
     True
    >> 'crabgrass' in basket
     False
    >> # 下面展現集合的基本操做
      ···
    >> student = {'Jackey', 'Rose', 'Jerrey', 'Hans', 'Tom'}
    >> student.add('Jack')                # 添加(單個)元素,add
    >> student
     {'Jackey', 'Rose', 'Jerrey', 'Hans', 'Jack', 'Tom'}
    >> student.update({'Lily',"Jams"})    # 添加(多個)元素,update
    >> student
     {'Jams', 'Jackey', 'Rose', 'Jerrey', 'Hans', 'Lily', 'Jack', 'Tom'}
    >> student.remove("Lily")             # 移除(單個)元素,若是元素不存在,則會發生錯誤
     {'Jams', 'Jackey', 'Rose', 'Jerrey', 'Hans', 'Jack', 'Tom'}
    >> student.discard("Tiffny")          # 移除(單個)元素,若是元素不存在,不會發生錯誤
    >> student
     {'Jams', 'Jackey', 'Rose', 'Jerrey', 'Hans', 'Jack', 'Tom'}
     
    >> # 計算集合的個數
    >> len(student)
     7
     
    >> # 判斷元素是否在集合中存在
    >> "Jackey" in student
     True
    >> "Nancy" in student
     False
     
    >> # 下面展現兩個集合間的運算.
     ...
    >> a = set('abracadabra')
    >> b = set('alacazam')
    >> a                                  
     {'a', 'r', 'b', 'c', 'd'}
    >> a - b                              # 集合a中包含而集合b中不包含的元素
     {'r', 'd', 'b'}
    >> a | b                              # 集合a或b中包含的全部元素
     {'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'}
    >> a & b                              # 集合a和b中都包含了的元素
     {'a', 'c'}
    >> a ^ b                              # 不一樣時包含於a和b的元素
     {'r', 'd', 'b', 'm', 'z', 'l'}

數據類型轉換

int(x [,base]),將x轉換爲一個整數
long(x [,base] ),將x轉換爲一個長整數
float(x),將x轉換到一個浮點數
complex(real [,imag]),建立一個複數
str(x),將對象 x 轉換爲字符串
repr(x),將對象 x 轉換爲表達式字符串
eval(str),用來計算在字符串中的有效Python表達式,並返回一個對象
tuple(s),將序列 s 轉換爲一個元組
list(s),將序列 s 轉換爲一個列表
set(s),轉換爲可變集合
dict(d),建立一個字典。d 必須是一個序列 (key,value)元組。
frozenset(s),轉換爲不可變集合
chr(x),將一個整數轉換爲一個字符
unichr(x),將一個整數轉換爲Unicode字符
ord(x),將一個字符轉換爲它的整數值
hex(x),將一個整數轉換爲一個十六進制字符串
oct(x),將一個整數轉換爲一個八進制字符串

4、條件控制

if condition_1:
    statement_block_1
elif condition_2:
    statement_block_2
else:
    statement_block_3

5、循環語句

while 循環

可使用 else 語句,在 while … else 在條件語句爲 false 時執行 else 的語句塊

while 判斷條件:
    語句
else:
    語句
    
# 例子
count = 0
while count < 5:
   print (count, " 小於 5")
   count = count + 1
else:
   print (count, " 大於或等於 5")

for 語句

for循環能夠遍歷任何序列的項目,如一個列表或者一個字符串

for <variable> in <sequence>:
    <statements>
else:
    <statements>
    
# 例子
sites = ["Baidu", "Google","Runoob","Taobao"]
for site in sites:
    if site == "Runoob":
        print("菜鳥教程!")
        break
    print("循環數據 " + site)
else:
    print("沒有循環數據!")
print("完成循環!")

range(x,y,z)函數

若是你須要遍歷數字序列,可使用內置range()函數。它會生成數列。x爲初始值,y爲結束值(能夠不填),z爲步長(能夠不填),x,y,z都可覺得負數

>>>for i in range(5,9) :
    print(i)
 
# return    
5
6
7
8
>>>
>>>for i in range(0, 10, 3) :
    print(i)
 
    
0
3
6
9
>>>

break和continue語句及循環中的else子句

break 語句能夠跳出 for 和 while 的循環體。若是你從 for 或 while 循環中終止,任何對應的循環 else 塊將不執行;continue語句被用來告訴Python跳過當前循環塊中的剩餘語句,而後繼續進行下一輪循環;循環語句能夠有 else 子句,它在窮盡列表(以for循環)或條件變爲 false (以while循環)致使循環終止時被執行,但循環被break終止時不執行。

pass 語句

Python pass是空語句,是爲了保持程序結構的完整性。pass 不作任何事情,通常用作佔位語句,以下實例

相關文章
相關標籤/搜索