1. 程式人生 > >Python 3(2)基本語法

Python 3(2)基本語法

Python3 入門專欄

http://blog.csdn.net/column/details/19679.html

編碼基礎

原始碼編碼

預設情況下,python 3 原始碼檔案會以 UTF-8 編碼,所有的字元都是 unicode 字串,也可以在py檔案中通過以下為原始碼指定編碼(以下將編碼更改為 gbk):
# -*- coding: gbk -*-

識別符號

python 中的識別符號有以下要求:
  • 第一個字元必須是字母或者下劃線“_”;
  • 識別符號其他部分必須由字母、數字、下劃線組成;
  • 識別符號對大小寫敏感;
python 2 及以下的識別符號必須是 ASCII 字元,而 python 3 允許非 ASCII 字元作為 識別符號;

保留字

python 標準庫提供了一個 keyword 模組,可以輸出當前版本的所有關鍵字:
import keyword
print(keyword.kwlist)
輸出如下:
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or'
, 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

運算子

  • 算數運算子: +(加),-(減) ,*(乘) ,/(除),%(取模),**(冪,x**y 為 x 的 y 次方),//(除,取整數)
  • 比較運算子:==  ,!= ,> ,< ,>= ,<= 
  • 賦值運算子:=,+=,-=,*=,/=,**=,//=
  • 位運算子:&(按位與),|(按位或),^(按位異或),~(按位取反),<<(左移運算),>>(右移運算)
  • 邏輯運算子:and(布林與),or(布林或),not(布林非)
  • 成員運算子:in,not in
  • 身份運算子:is,is not(比較兩個物件的儲存單元
 == 和 is 的區別:
== :是進行運算元的比較;is :是進行運算元記憶體地址的比較,x is y 相當於 id(x) == id(y)
1 == 1 # true
a = 1; b = 1
a == b          # true
a is b          # false
id(a) == id(b)  # true

與縮排

python 不像 Java,C++ 使用分號來劃分程式碼語句,使用大括號{}來劃分程式碼塊,而是使用縮排和段落來劃分程式碼塊和程式碼語句,如下:
if True:
    print("item1")
else:
    print("item2")
python通常是一行寫完一句程式碼語句,如果程式碼過長,可以使用反斜槓 \ 來實現多行語句,如下:
greeting = "Are" + " you" + " OK?"
#等同於
greeting = "Are" + \
           " you" + \
           " OK?"
在 [] ,{},() 中的多行語句,可以不是用 \,如下:
list_sample = ["Are", "you",
               "OK", '?']
python 不提倡將多行語句寫在同一行中,如果非要這麼做,可以使用分號隔開,但是不提倡這麼做:
user = "assad"; print("Hello " + user)

註釋

單行註釋是以 # 開頭的;多行註釋以 ''' ''' 或  """ """ 包含;
# 單行注射
'''
多行註釋
多行註釋
'''
"""
多行註釋
多行註釋
"""

標準輸入輸出

標準輸出print 函式為標準流輸出函式,預設輸出是換行的,如果需要不換行的輸出,需要在 print 函式入參變數加上 end=“”:
val1 = "a"
val2 = "b"
# 換行輸出
print(val1)
print(val2)
# 不換行輸出
print(val1, end=" ")
print(val2, end=" ")
print()
以上程式碼輸出結果:aba b標準輸入input 函式為標準流輸出函式,引數為提示性的字串,返回值為使用者輸入字串,使用該語句會導致一個執行緒阻塞;
str_input = input("please input something: ")  # 獲取使用者輸入
print("you input:" + str_input)   # 列印使用者輸入
input("Enter anything to exit")

基本資料型別

不像Java , C++ 等強型別語言,python 是一種動態語言,在宣告變數或字面量時,不需要為其宣告資料型別,python 會根據賦值的字面量或物件自動轉換型別;python3 中有6個標準的資料型別:Number(數字),String(字串),List(列表),Tuple(元組),Sets(集合),Dictionary(字典);
  • String,List,Tuple 都屬於 Sequence 序列,內含的元素都是有序排列的;
  • Number,String,Tuple ,Sets 是不可更改的物件,List,Dictionary 是可變物件;
賦值操作pythom 使用 = 操作符進行賦值,同樣也支援多個變數賦值,如下:
var = "Hello"
var1 = var2 = var3 = 12
var4, var5, var6 = 10, 2.33, "Hello" 
刪除引用可以使用del 操作符來刪除對於物件的引用,如下:
var4, var5, var6 = 10, 2.33, "Hello" 
del var4
del var5, var6
檢驗物件型別可以使用type 函式獲取變數物件型別,也可以使用isinstance 函式判斷變數物件是否為某個型別;
var = 12
print(type(var))             # 輸出:<class 'int'>
print(type(var) == int)      # 輸出 True
print(isinstance(vat, int))  # 輸出 True
這兩個函式判斷型別的區別如下:
  • type():不會認為子型別是一種父型別;
  • isinstance():會認為子型別是一種父型別;

數字 Number

python3 支援的數字型別有 int(整型),float(浮點型),bool(布林),complex(複數)python3 中的整型只有 int 這一種,即長整型,沒有 python2 中的 long;
var_int, var_float, var_bool, var_complex = 20, 23.33, True, 4+3j
print(type(var_int))     # 輸出:<class 'int'>
print(type(var_float))   # 輸出:<class 'float'>
print(type(var_bool))    # 輸出:<class 'bool'>
print(type(var_complex)) # 輸出:<class 'complex'>

字串 String

python 可以使用 ' ' 或 " " 來指定一個字串,這兩種符號的含義完全相同(不像 PHP 等會有字面量引用和解析引用的區別),使用 + 作為字串連線符,字串會按字面意義級聯字串;
# 以下 4 個變數值相同
str1 = 'This is a String'
str2 = "This is a String"
str3 = "This"" is"" a"" String"
str4 = "This" + " is" + " a" + " String"
可以使用三引號 """ """ 或 ''' ''' 來指定一個跨行字串(該字串輸出時會保留跨行格式);
str3 = """This is paragraph 1
This is paragraph 2 """
如上str3 輸出時,會輸出以下:
This is paragraph 1
This is paragraph 2類似C語言,字串可以被索引和擷取;加號(+)是字串連線運算子,星號(*)是重複操作;
字串的元素不能修改;
var = "Hello World!"
print(var[0])    # 訪問var第0個字元:H
print(var[1:4])  # 訪問var第1到第3個字元:ell
print(var[:4])   # 訪問var第0到第4個字元:Hell
print(var[6:])   # 訪問var第6到最後一個字元:World!
print(var *2 )   # 重複輸出 var : Hello World!Hello World!

列表 List

列表可以完成大多數集合類的資料結構實現,列表中元素的型別可以不相同,它支援數字,字串甚至可以包含列表;
List寫在方括號 [ ] 之間,元素用逗號隔開;列表同樣可以被索引和擷取,列表被擷取後返回一個包含所需元素的新列表;加號(+)是列表連線運算子,星號(*)是重複操作;
列表中的元素不能修改;
list1 = [12, 2.33, "Hello", "World"]
list2 = ["!", 1, 2]
print(list1)       # 輸出列表:[12, 2.33, 'Hello', 'World']
print(list1[0])    # 輸出第1個元素:12
print(list1[1:3])  # 輸出第2到第3個元素:[2.33, 'Hello']
print(list1[2:])   # 輸出從第3個元素開始的所有元素:['Hello', 'World']
print(list1 * 2)   # 輸出2次列表:[12, 2.33, 'Hello', 'World', 12, 2.33, 'Hello', 'World']
print(list1 + list2)  # 連線列表:[12, 2.33, 'Hello', 'World', '!', 1, 2]

元組 Tuple

元組(tuple)與列表類似,不同之處在於元組的元素不能修改;
元組同樣可以被索引和擷取;元組寫在小括號 ( ) 裡,元素之間用逗號隔開;
tuple1 = ("abcd", 123 , 2.333, "Hello", 70.2)
tuple2 = ()     # 空元組
tuple3 = (20,) # 只包含一個元素的元組

集合 Sets

集合(set)是一個無序不重複元素的序列,主要功能是進行成員關係測試和刪除重複元素。可以使用大括號 { } 或者 set() 函式建立集合,但是建立一個空集合必須用 set();
student = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'}
sey_empty = set()
print(student)   # 輸出集合,重複的元素被自動去掉:{'Mary', 'Tom', 'Jack', 'Jim', 'Rose'}

字典 Dictionary

字典是一種對映型別,字典用"{ }"標識,它是一個無序的鍵(key) : 值(value)對集合;
鍵(key)必須使用不可變型別,在同一個字典中,鍵(key)必須是唯一的;
dict1 = {"name": "assad", "age": 20, "city": "Guangzhou"}
dict2 = {}
dict2["one"] = "are you ok"
dict2[1] = 12
print(dict1["name"])   # 輸出 dict1 中 key = "name" 的 value
print(dict2[1])        # 輸出 dict2 中 key = 2 的 value
print(dict1.keys())    # 輸出 dict1 的所有 key
print(dict1.values())  # 輸出 dict1 的所有 value

常用的型別轉換函式

int(x [,base])

將x轉換為一個整數

float(x)

將x轉換到一個浮點數

complex(real [,imag])

建立一個複數

str(x)

將物件 x 轉換為字串

repr(x)

將物件 x 轉換為表示式字串,類似 Java 的類 toString() 方法

eval(str)

計算在字串中的有效Python表示式,並返回一個物件,類似 js 的 eval() 函式 

tuple(s)

將序列 s 轉換為一個元組

list(s)

將序列 s 轉換為一個列表

set(s)

轉換為可變集合

frozenset(s)

轉換為不可變集合

dict(d)

建立一個字典。d 必須是一個序列 (key,value)元組。

流程控制

條件控制

python 條件語句的基本語法如下,同樣的,python 也支援 if 巢狀:
if condition_1:
    statement_block_1
elif condition_2:
    statement_block_2
else:
    statement_block_3
示例:
age = int(input("請輸入你的年齡:"))
print()
if age < 0:
    print("非法輸入")
elif age < 18:
    print("未成年人請自覺離開")
else:
    print("新世界大門為你開啟")

迴圈控制

python 迴圈語句支援 while 和 for 語句,同樣支援 break,continue 關鍵字;while 語法:
while condition:
     statement_block
示例:
while True:
    print "Are you Ok?"
for 語法
for <variable> in <sequence>:
    <statements>
else:
    <statements>
示例:
# 指定迴圈次數遍歷
for i in range(5):
    print i 
# 等同於
for i in range(0,5):
    print i 
for i in range(10,100):
    print i 
# 遍歷序列
students = ["Tom", "Jim", "Mary", "Tom", "Jack", "Rose"]
for e in students:
    print(e)
greeting = "Are you OK? Mi fans!"
for ch in greeting:
    if(ch == 'M'):
        print "include charatcer M !"
        break
pass 語句python中 pass是空語句,是為了保持程式結構的完整性,pass 不做任何事情,一般用做佔位語句,如下:
while True:
    pass     # 等待鍵盤中斷
# 一個最小的實現類
class MyEmptyClass:
    pass
模組python 使用用 import 或者 from...import 來匯入相應的模組,語法如下:
# 將整個模組匯入
import somemodule
#從某個模組中匯入某個函式
 from somemodule import somefunction
# 從某個模組中匯入多個函式,
from somemodule import func1, func2, func3
# 將某個模組中的全部函式匯入
from somemodule import *
模組搜尋路徑當直譯器遇到 import 語句,如果模組在當前的搜尋路徑就會被匯入,搜尋路徑是由一系列目錄名組成的,Python直譯器就依次從這些目錄中去尋找所引入的模組,搜尋路徑被儲存在標準庫 sys 模組中的 path 變數,可以通過以下程式碼獲取 sys.path:
import 
            
           

相關推薦

Python 32基本語法

Python3 入門專欄http://blog.csdn.net/column/details/19679.html編碼基礎原始碼編碼預設情況下,python 3 原始碼檔案會以 UTF-8 編碼,所有

python 基礎基本語法

特點 語法對比 從語法上分類: 1\面向物件:java(現大比較流行) c#(因為安卓市場的出現慢慢淡出) 2\面向過程:C(沒有類),(oracle)pl/sql---一直排第一位,處理大資料速度比較快免費的服務是收費的,(sqlserver)t-sql(微軟的  中小型

thymeleaf2基本語法

以下來源於網路。 標準表示式語法 它們分為四類: • 1.變量表達式 • 2.選擇或星號表示式 • 3.文字國際化表示式 • 4.URL表示式 變量表達式 變量表達式即OGNL表示式或Spring EL表示式(在Sprin

ECMAScript 學習筆記2--基本類型及語法相關

ECMAScript 學習筆記1、變量名區分大小寫; 註意代碼塊的概念。變量分為原始值和引用值:原始值存儲在棧,引用值存儲在堆(引用值一般是一個指針或對象名、函數名)。在C語言中編譯的程序占用的內存分為以下幾個部分:棧區(由系統分配/內存塊連續)、堆區(由程序員分配與釋放或系統結束後釋放/鏈表結構不連續的內存

python面向物件學習基本語法

目錄 1. dir內建函式 2. 定義簡單的類(只包含方法) 2.1 定義只包含方法的類 2.2 建立物件 2.3 編寫第一個面向物件程式 3. 方法中的self引數 3.1 案例改造 —— 給物件新增屬性 3.2 使用 self 在

Python學習2—— 運算子與基本資料型別

運算子與基本資料型別 運算子有以下五種: 算數運算: 比較運算: 邏輯運算: 賦值運算: 成員運算: 以上圖片轉載來自:http://www.cnblogs.com/wupeiqi/ 。 基本資料型別認識 數字 (in

小白學 Python 爬蟲2:前置準備基本類庫的安裝

人生苦短,我用 Python 前文傳送門: 小白學 Python 爬蟲(1):開篇 本篇內容較長,各位同學可以先收藏後再看~~ 在開始講爬蟲之前,還是先把環境搞搞好,工欲善其事必先利其器嘛~~~ 本篇文章主要介紹 Python 爬蟲所使用到的請求庫和解析庫,請求庫用來請求目標內容,解析庫用來解析請

java8之lambda表達式1-基本語法

com nal called new collect starting 代碼 face 使用 參考:http://www.cnblogs.com/andywithu/p/7344507.html lambda表達式,即帶有參數的表達式,為更清晰地理解lambda表達式,先看

C語言學習系列基本語法

xor 12px 左移 程序 str 繼續 p s type false 一、C運算符 算術運算符(語法和java類似或基本一樣略過不再描述) 關系運算符(略) 邏輯運算符(略) 位運算符 運算符描述實例 & 如果同時存在於兩個操作數中,二

第一個python程序2

小結 nts 技術 數學公式 spa 但是 漂亮 num 回車 輸入和輸出 輸出 用print加上字符串,就可以向屏幕上輸出指定的文字。比如輸出‘hello, world‘,用代碼實現如下: >>> print ‘hello, world‘ print語

java入門學習2基本數據類型

堆內存 類指針 erl 相互 lean 就是 沒有初始化 true ++ 1、變量:定義變量:【數據類型】 變量名 = 賦值(這樣定義的變量一般屬於局部變量,放置在棧內存中); 2、標識符:可以有字母(可以使任意文字),數字,下劃線,$等組成;但是不能以數字開頭,不能是保留

MySQL數據庫操作2基本操作

大於 ase 存在 delete div .... desc 搜索 查看數據庫 創建數據庫:CREATE DATABASE [IF NOT EXISTS] 庫名例子:CREATE DATABASE `mydb`;CREATE DATABASE IF NOT EXISTS `

53. Python 爬蟲2

expires www. als aid rgb user col pri request CookieRequests通過會話信息來獲取cookie信息Cookie的五要素: Name value domain path expires打印cookie

Python 學習基本認識

python語句 clas return hello 文檔字符串 else 字符串 年齡 text 基礎知識 一 Python 標識符 在 Python 裏,標識符由字母、數字、下劃線組成。 在 Python 中,所有標識符可以包括英文、數字以及下劃線(_),但不能以數字

python學習2關於字符編碼

英語 國標 學習 utf for 美國 電腦 二進制 str 關於字符編碼的學習內容筆記如下: 1、計算機只能用0和1來進行記錄和存儲。計算機是二進制。 2、ASCII(American Standard Code for Information Interchange,美

perl學習1基本語法

log 跳過 默認值 斜線 進位 字母 劃線 小寫 perl 一: 如何運行   在linux終端,直接輸入 perl filenaem.pl   Perl腳本在解釋執行時和shell腳本一樣,自頂向下,跳過sub定義部分依次執行。 二:標量 1:  標量     可以是數

Python基礎2:__doc__、文檔字符串docString、help()

png Go net dex django index csdn 自定義模塊 pan OS:Windows 10家庭中文版,Python:3.6.4 Python中的 文檔字符串(docString) 出現在 模塊、函數、類 的第一行,用於對這些程序進行說明。它在執行的

Python基礎2——運算符

系列 所有 不為 相等 int inf 技術分享 包括 表格 一、Python算術運算符 以下假設變量a為10,變量b為21: 以下實例演示了Python所有算術運算符的操作: 1 #!/usr/bin/python3 2 3 a = 21 4 b = 10

Python基礎2:列表

 list:列表,python內建的一種資料型別。是一種有序集合,可以隨時新增和刪除其中的元素。 1,列表的定義 li1=[]   #定義一個空列表 li2=[1,2,3,'hello']     #數字元素直接新增,字串元素要用括號

python學習List語法基礎與常用操作

- list 是列表,也叫陣列,用[ ]括號,並用逗號隔開,裡面可以任意型別,字串,數字,都可以。** 取值用 list[角標],開始從0開始,如:list2=[1,2,”字串”],如果取list[2],那麼就是:字串 list的增加資料的操作 1、lis