国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Python入門-基本語法1

ingood / 2111人閱讀

摘要:根據(jù)有效范圍作用域分為全局變量和局部變量。類型以開頭標(biāo)識類型以開頭標(biāo)識類型以進(jìn)制的字節(jié)碼表示,實(shí)際上是一個字節(jié)串,回應(yīng)了它的另一個名字。

< 返回索引頁

基本語法

Hello World

代碼注釋

關(guān)鍵字

數(shù)據(jù)類型

變量、常量

變量

變量賦值

變量命名

變量的作用域

常量

字符串與編碼

字符轉(zhuǎn)義

字符編碼

字符串操作

運(yùn)算符與表達(dá)式

運(yùn)算符

表達(dá)式

輸入輸出

總結(jié)

練習(xí)

參考:

基本語法

從本章開始,我們開始學(xué)習(xí)Python的基本語法。

Hello World

在上一章,我們python環(huán)境已經(jīng)安裝完畢,也選擇好了合適自己的編輯器,現(xiàn)在我們開始進(jìn)入python的編程世界。

讓我們來看一個python的簡單程序,HelloWorld

解釋器運(yùn)行

打開系統(tǒng)終端輸入python,啟動python解釋器,錄入如下代碼,回車觀察返回值。

$ python3
Python 3.6.5 (default, Mar 30 2018, 06:42:10)
[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.39.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> print("Hello world!")

代碼返回如下:

Hello world!

下面我們來解釋下這段代碼:

1、>>> python的交互環(huán)境的提示符

2、print python 內(nèi)置的打印方法,它會打印括號中的字符串。

代碼文件運(yùn)行

我們可以把以上代碼保存成python的腳本文件,并保存為hello.py, python的代碼文件是以py作為擴(kuò)展名的。下面我們來執(zhí)行它,在我們的系統(tǒng)終端執(zhí)行如下命令:

$python hello.py

代碼返回如下:

Hello world!
你好,世界!

到這,我們知道了如何在python 解釋器和代碼文件中運(yùn)行代碼。

代碼注釋

定義

我們在編寫代碼的時候,往往需要添加一些說明以幫助我們來理解代碼邏輯,在代碼執(zhí)行的時候,這些說明不會被執(zhí)行。這些說明叫做注釋。Python中的注釋,使用井號、單引號或雙引號標(biāo)識,如下:

# 單行注釋

"""
我是多行注釋
我是多行注釋
"""

"""
我是多行注釋
我是多行注釋
"""

注釋常用場景

腳本文本的開頭,說明腳本主要功能。

代碼中,說明代碼功能。

函數(shù)和方法名(是python中的語法結(jié)構(gòu),后邊會講到)下,作為說明出現(xiàn)。

關(guān)鍵字

程序設(shè)計中,預(yù)留了一些標(biāo)識符號供語言本身或系統(tǒng)使用,這些標(biāo)識符被稱為關(guān)鍵字。每個關(guān)鍵字都有自己的含義,在python中可通過以下方式查看關(guān)鍵字:

>>> import keyword
>>> keyword.kwlist
["and", "as", "assert", "break", "class", "continue", "def", "del", "elif", "else", "except", "exec", "finally", "for", "from", "global", "if", "import", "in", "is", "lambda", "not", "or", "pass", "print", "raise", "return", "try", "while", "with", "yield"]

我們可以通過如下方法判斷字符串是否為關(guān)鍵字:

>>> keyword.iskeyword("and")
True
>>> keyword.iskeyword("have")
False

關(guān)鍵字不可作為變量的名稱使用。

數(shù)據(jù)類型

變量中儲存數(shù)據(jù)的類型可以是多種多樣的,我們把變量中存儲數(shù)據(jù)的類型叫數(shù)據(jù)類型。而python 中常用的數(shù)據(jù)類型,有這么幾種:

整型(int): Python3中可以處理任意大小的整數(shù)(Python 2.x中有int和long兩種類型的整數(shù),但這種區(qū)分對Python來說意義不大,在python中內(nèi)存分配是自動的,用戶并不關(guān)心這些細(xì)節(jié),反而給用戶無限大的使用空間更好,因此在Python 3.x中整數(shù)只有int這一種了),而且支持二進(jìn)制(如0b100,換算成十進(jìn)制是4)、八進(jìn)制(如0o100,換算成十進(jìn)制是64)、十進(jìn)制(100)和十六進(jìn)制(0x100,換算成十進(jìn)制是256)的表示法。

復(fù)數(shù)型(complex):形如3+5j,跟數(shù)學(xué)上的復(fù)數(shù)表示一樣,唯一不同的是虛部的i換成了j。

浮點(diǎn)型(float):浮點(diǎn)數(shù)也就是小數(shù),之所以稱為浮點(diǎn)數(shù),是因?yàn)榘凑湛茖W(xué)記數(shù)法表示時,一個浮點(diǎn)數(shù)的小數(shù)點(diǎn)位置是可變的,浮點(diǎn)數(shù)除了數(shù)學(xué)寫法(如123.456)之外還支持科學(xué)計數(shù)法(如1.23456e2)。

字符串型(str):字符串是以單引號或雙引號括起來的任意文本,比如"hello"和"hello",字符串還有原始字符串表示法、字節(jié)字符串表示法、Unicode字符串表示法,而且可以書寫成多行的形式(用三個單引號或三個雙引號開頭,三個單引號或三個雙引號結(jié)尾)。

布爾型(bool):布爾值只有True、False兩種值,要么是True,要么是False,在Python中,可以直接用True、False表示布爾值(請注意大小寫),也可以通過布爾運(yùn)算計算出來(例如3 < 5會產(chǎn)生布爾值True,而2 == 1會產(chǎn)生布爾值False)。python中把None、0、"" 都視為False。

空類型: None 為空類型。

各數(shù)據(jù)類型之間是可以相互轉(zhuǎn)換的,可使用Python提供的內(nèi)置函數(shù):

int():將一個數(shù)值或字符串轉(zhuǎn)換成整數(shù),可以指定進(jìn)制。

float():將一個字符串轉(zhuǎn)換成浮點(diǎn)數(shù)。

str():將指定的對象轉(zhuǎn)換成字符串形式,可以指定編碼。

另外2個字符轉(zhuǎn)化內(nèi)置函數(shù):

chr():將整數(shù)轉(zhuǎn)換成該ASCII編碼對應(yīng)的字符串(一個字符,如 chr(65) 返回為字符串 "A" )。

ord():將字符串轉(zhuǎn)換成對應(yīng)的ASCII編碼。

變量、常量 變量

變量(英語:Variable,scalar),是內(nèi)存中實(shí)際存在的數(shù)據(jù)或存儲器中存儲數(shù)據(jù)的一塊內(nèi)存空間地址,變量的值可以被讀取和修改。

Python 中的變量是內(nèi)存中保存數(shù)據(jù)的地址的一個別稱。變量是沒有類型的,變量對應(yīng)的值對象是有類型的。變量的類型是跟著值對象走的。嚴(yán)格來說,類型是屬于對象的,而不是變量, 變量和對象是分離的,對象是內(nèi)存中儲存數(shù)據(jù)的實(shí)體,變量則是指向?qū)ο蟮膬?nèi)存地址。

變量賦值

在Python 的語法中,變量無需聲明,可直接使用,區(qū)別于其他語言,有些語言的變量需要先聲明后使用。python中,使用像上邊代碼中的等號‘=’來表示賦值,即表示將等號右邊的數(shù)據(jù)賦值給左邊的變量,變量的類型有它存儲的數(shù)值來決定。

>>> a = 123
>>> b = "123"
>>> c = True
>>> print(type(a),type(b),type(c))
(, , )
>>> d, e = 1,2

知識點(diǎn):

我們可以使用內(nèi)置函數(shù) type 來查看變量的數(shù)據(jù)類型。

可同時給多個變量賦值

變量命名

變量的命令是一個重要的規(guī)則,好的命名可以增加代碼的可讀性,提高代碼的可維護(hù)性。python中變量的命名有如下要求:

只能使用數(shù)據(jù)、字母和下劃線,且只能以字母或下劃線開頭。

大小寫敏感,即區(qū)分大小寫。a和A 是2個變量名。

不能使用關(guān)鍵字及系統(tǒng)預(yù)留字重復(fù)。

說明:

系統(tǒng)預(yù)留字,及系統(tǒng)的函數(shù)及模塊的名字。

除了以上這些硬性規(guī)定外,變量命名還是比較寬松的。為了更好的處理命名問題,python 社區(qū)指定了一個開發(fā)規(guī)范 PEP8。其中除了命名規(guī)范外,還描述了其他一些語法的最佳實(shí)踐。它可作為我們?nèi)蘸缶帉懘a及項(xiàng)目開發(fā)的規(guī)范使用,對我們提高代碼的質(zhì)量有很大的好處。

變量的作用域

作用域,顧名思義,可以理解為在一定范圍內(nèi)起作用。映射到我們的編碼中時,便是在一定的代碼范圍內(nèi)有效。在編碼時,代碼分各種邏輯塊的,類似我們文章的段落,可以更好的理解閱讀分類。那么在這些限定的范圍內(nèi),變量的有效性是有影響的。根據(jù)有效范圍作用域分為全局變量(Local)局部變量(Global)全局變量 是在整個程序系統(tǒng)或文件全局中有效的變量。局部變量表示在一個代碼邏輯塊中有效的變量。全局和局部變量是相對的,如我們可以叫一個相對于文件來說的全局變量,但是在多個文件或者文件包中便成了局部變量。除了全局和局部變量,Python中還有以下作用域:

E (Enclosing) 閉包函數(shù)外的函數(shù)中

B (Built-in) 內(nèi)建作用域

作用域以 L –> E –> G –>B 的規(guī)則查找,即:在局部找不到,便會去局部外的局部找(例如閉包,稍后會講),再找不到就會去全局找,再者去內(nèi)建中找。

常量

變量中存儲的數(shù)值是可以變動的,那么有沒有不變的呢?答案是有的,如數(shù)學(xué)計算使用的PI。我們經(jīng)常把代碼中,存儲不變數(shù)據(jù)的變量稱之為常量。可見,常量是一種特殊的變量。

字符串與編碼

上節(jié)我們談到變量有許多的數(shù)據(jù)類型,其中字符串類型比較復(fù)雜,這里多帶帶講解下。

字符轉(zhuǎn)義

字符串,故名思意,是零個或多個字符組成的有限序列,以單引號或雙引號包裹。既然是以字符組成,那么便包括單引號或雙引號自身,如下:

a = "I"m DeanWu!"

我們在執(zhí)行以上語句的時候會報錯:

>>> a = "I"m DeanWu!"
  File "", line 1
    a = "I"m DeanWu!"
           ^
SyntaxError: invalid syntax

這是因?yàn)樽址虚g的單引號把字符串給截斷了,當(dāng)python解釋器執(zhí)行到該單引號后,后邊的語法便報錯了。如何解決?這便需要進(jìn)行轉(zhuǎn)義,所謂轉(zhuǎn)義,便是讓python解釋器解釋執(zhí)行的時候,被轉(zhuǎn)義的字符不在表示原先的意思,而變?yōu)椴唤忉寛?zhí)行的字符串。Python中使用 進(jìn)行轉(zhuǎn)義。上邊的語法可以寫成這樣:

a = "I"m DeanWu!"
字符編碼

在計算機(jī)基礎(chǔ)部分,我們知道了計算機(jī)編碼相關(guān)知識,概括如下:

ASCII 使用1個字節(jié),只支持英文;

GB2312 使用2個字節(jié),支持6700+漢字;

GBK GB2312的升級版,支持21000+漢字;

Unicode編碼,使用2、3或4個字節(jié)表示字符;

UTF 編碼為Unicode編碼的一種可變長實(shí)現(xiàn);

計算機(jī)內(nèi)存中使用Unicode編碼處理,存儲和傳輸則使用UTF編碼。

接下來,我們看下Python中的編碼。Python2中的默認(rèn)編碼為ASCII編碼,Python3中使用的則是UTF-8編碼。可使用如下命令查看:

import sys 
sys.getdefaultencoding()

在Python 編程中,編碼問題往往是新手的一個困擾,我們來深入展開說下這個問題。Python2和Python3的默認(rèn)編碼是不一樣的,它們處理編碼方式也是不一樣。

Python2中的編碼

在 Python2中字符串類型有4種:strunicodebasestringbytes

basestring 是一個基類(稍后會講到此概念,可暫時理解為父親或基礎(chǔ)即可),strunicode類型在此基礎(chǔ)上構(gòu)建。

str 是Python設(shè)計之初的字符串類型,默認(rèn)使用系統(tǒng)編碼。

unicode 是了使Python支持Unicode編碼,在2.0版本之后添加的一種字符串類型。

bytes 是字節(jié)串,str本身便是一個字節(jié)串,那可認(rèn)為bytesstr的一個別稱,使用和str完全一致。

看一實(shí)例:

>>> a = "你好"  # 使用系統(tǒng)編碼的str 類型
>>> type(a)

>>> print a
你好
>>> a
"xe4xbdxa0xe5xa5xbd"  # 系統(tǒng)編碼為 utf-8的字節(jié)碼,使用了3個字節(jié)表示一個漢字;
>>> ua = u"你好"   # unicode 編碼
>>> type(ua)

>>> print ua
你好
>>> ua
u"u4f60u597d"  # unicode 編碼格式的你好,對應(yīng)unicode代碼表中代碼
>>> b = b"你好"  # bytes 類型的字符串
>>> type(b)  

>>> print b
你好
>>> b  
"xe4xbdxa0xe5xa5xbd"  # 使用3個字節(jié)表示1個漢字,且字節(jié)碼和str類型一樣;

知識點(diǎn):

Python 解釋器默認(rèn)使用系統(tǒng)的編碼方式聲明變量。

unicode類型以u開頭標(biāo)識

bytes 類型以 b 開頭標(biāo)識

str類型以16進(jìn)制的ASCII字節(jié)碼表示,實(shí)際上是一個字節(jié)串,回應(yīng)了它的另一個名字bytes。

unicode類型以unicode字符碼表示,是真正的字符串。

strunicode 類型之間是可以相互轉(zhuǎn)化的,通過 encodedecode 來實(shí)現(xiàn)。來看實(shí)例:

>>> a = "你好"
>>> a.decode("utf-8")  # decode 解碼: str類型(UTF-8) --> unicode類型(Unicode)
u"u4f60u597d"  # 對應(yīng)的unicode代碼
>>> ua
u"u4f60u597d"
>>> ua.encode("utf-8")  # encode 編碼: unicode類型(Unicode) --> str類型(UTF-8)
"xe4xbdxa0xe5xa5xbd"  # utf-8的編碼的 str字節(jié)串
>>> a.decode("gbk")  # 嘗試使用 gbk 解碼,結(jié)果出現(xiàn)亂碼
u"u6d63u72b2u30bd"
>>> print a.decode("gbk")  
浣犲ソ
>>> a.decode("gbk").encode("gbk")  # 使用 gbk 解碼,再編碼,成功還原
"xe4xbdxa0xe5xa5xbd"
>>> print a.decode("gbk").encode("gbk")
你好
>>> a.decode("gbk").encode("utf-8")  # 使用不同的編碼來解碼和編碼, 也出現(xiàn)亂碼
"xe6xb5xa3xe7x8axb2xe3x82xbd"
>>> print a.decode("gbk").encode("utf-8")
浣犲ソ

知識點(diǎn):

使用什么編碼編碼,就需要使用什么編碼解碼,否則會出現(xiàn)亂碼。

轉(zhuǎn)為unicode類型要decode解碼。

轉(zhuǎn)為str類型要encode編碼。

區(qū)分Unicode類型和Unicode編碼,Unicode編碼是一套編碼集,內(nèi)容豐富,編碼內(nèi)容涵蓋了世界各地的語言,實(shí)現(xiàn)方式有UTF-8、UTF-16、UTF-32;Unicode類型只是python字符串的一種類型,使用Unicode編碼作為其編碼格式,可經(jīng)過各種編碼方式(UTF、GBK、ASCII)編碼成str類型字符或者叫bytes(字節(jié)序列)類型供計算機(jī)使用。

Unicode 編碼的兼容性,可作為其他編碼格式的轉(zhuǎn)碼的中間站。

上邊這些例子是直接在python解釋器中跑的代碼,而python代碼文件在執(zhí)行時,有所不同,會受到文件編碼的影響。

文件的存儲是以二進(jìn)制流的方式保存在硬盤上。當(dāng)Python文件被執(zhí)行時,這些文件會以二進(jìn)制流的方式加載到內(nèi)存中,然后按照Python的默認(rèn)編碼方式解碼成相應(yīng)的python代碼對應(yīng)的unicode編碼的字節(jié)碼來解釋執(zhí)行。在python2中,默認(rèn)編碼為ASCII碼,那么當(dāng)文件中有非ASCII碼時,這個解碼過程便會出錯。Python 為了解決這個問題,在Python 文件頭部增加了文件的編碼聲明,PEP236就是為這個問題而創(chuàng)建的改進(jìn)意見。

Python 文件格式聲明如下:

# coding:utf-8 

# -*- coding:utf-8 -*- 

來看實(shí)例 coding_utf.py

# -*- coding:utf-8 -*- 

a = "你好"
print(a)
print(type(a))

ua = u"你好"
print(ua)
print(type(ua))

在命令行執(zhí)行python coding_utf.py, 返回如下:

你好

你好

ok,沒有問題。來看下執(zhí)行時都做了些什么事:

1、python解釋器讀取文件頭部聲明的編碼,將其作為變量解碼時使用的編碼。

2、python讀取代碼,自動將非unicode編碼的變量解碼成unicode給計算機(jī)內(nèi)存使用。

3、python解釋器執(zhí)行代碼,打印utf-8編碼的a和unicode編碼的ua。

接下來,當(dāng)我們把文件編碼和開頭標(biāo)識改為GBK后,再次執(zhí)行:

???

你好
你好

大家看到第一個你好成為亂碼,這是為什么? 根據(jù)上邊的分析,打印時,a的編碼為gbk, ua的編碼為unicode。而我終端的編碼為utf-8,對gbk的不兼容,所以導(dǎo)致亂碼。同樣的代碼,當(dāng)放到默認(rèn)gbk編碼的windows終端中,則會輸出正常。

那么有沒有辦法讓他輸出正常呢?有的,我們只要手動顯示的把它解碼成兼容的 unicode 編碼即可。

print(a.decode("gbk"))

到這里,總結(jié)以上說的問題,影響Python 字符編碼的地方主要有以下幾點(diǎn):

Python解釋器的默認(rèn)編碼,python2中默認(rèn)為ASCII。

Python源文件文件聲明編碼及保存的編碼方式。

系統(tǒng)終端使用的編碼,會影響python文件執(zhí)行時的編碼方式。

操作系統(tǒng)的編碼,會影響終端的編碼方式。

Python3中編碼

在python2中,編碼問題有2個大的問題:

使用 ASCII 作為默認(rèn)編碼方式,不能很好的支持非ASCII碼字符;

將字符串分為了strunicode兩種類型,讓大家容易混淆;

Python3 對以上問題做了很好的修正。Python3 默認(rèn)編碼改為了 UTF-8,對于非ASCII碼支持更強(qiáng)大。其次,Python3 合并了strunicode 類型,統(tǒng)一為 str 類型。使用 bytes類型來表示字節(jié)類型。這樣很好的區(qū)分了字符串和字節(jié)串,str即為字符串,bytes 為字節(jié)串或叫二進(jìn)制字節(jié)。

看下面的例子:

>>> a = "你好"  # utf-8 編碼的str類型
>>> type(a)
 
>>> print(a)
你好
>>> repr(a)
""你好""
>>> a  # 顯示為原字符串
"你好"
>>> ua = u"你好"
>>> type(ua)    # unicode 編碼的 str類型

>>> print(ua)
你好
>>> repr(ua)
""你好""
>>> ua  # 可以看到,字符串直接顯示并沒有顯示unicode編碼
"你好"
>>> a.decode("utf-8")  # unicode 字符串已不能再解碼了
Traceback (most recent call last):
  File "", line 1, in 
AttributeError: "str" object has no attribute "decode"
>>> a.encode("utf-8")  # 顯示為字節(jié)串
b"xe4xbdxa0xe5xa5xbd"
>>> e = "Test"
>>> e
"Test"
>>> e.encode("utf-8")  # 顯示為原字符串
b"Test"

知識點(diǎn):

1、可以看到Unicode類型的字符串類型為 str,帶不帶u 是一樣的。

2、unicode 字符串編碼成utf-8格式的字節(jié)碼,前邊帶 b 說明是bytes 字節(jié)類型。

3、在Python3中,所有unicode編碼顯示均為原字符串,非 unicode 編碼的 非ASCII碼范圍的字符 顯示均為字節(jié)串。

字符串操作

字符串中的運(yùn)算符

Python 中字符串可以直接使用 "+" 鏈接。

>>> a = "你好"
>>> b = "世界"
>>> print(a+b)
你好世界

"*2" 標(biāo)識2次重復(fù)輸出

>>> print(a*2)
你好你好

len 內(nèi)建函數(shù),可以獲取字符串的字節(jié)長度

>>> a = "你好"
>>> a 
"xe4xbdxa0xe5xa5xbd"  # utf-8 編碼,3個字節(jié)代表一個漢字。
print(len(a))
>>> e = "hello"
>>> print(len(e))
5

[] 索引,可通過下標(biāo)的方式來獲取字符串的某個字節(jié),下標(biāo)是從 0 開始的,最后一個為"字符串長度-1"或"-1"。

>>> print(a)
helloworld
>>> a[2]
"l"
>>> a[0]
"h"
>>> a[9]
"d"
>>> a[-1]
"d"

[:] 切片,可使用字符串下標(biāo)來截取字符串

>>> a = "helloworld"
>>> a[0:5]
"hello"

> 說明:

下標(biāo)從零開始

開始可以省略,默認(rèn)為0

結(jié)束可以省略,默認(rèn)為-1

in 判斷某變量是否在字符串中。

>>> a = "helloworld"
>>> "hello" in a
True

格式化

有時候,我們要將多個變量組成一個我們需要的字符串來使用,這個過程叫做格式化。Python中格式化的方式有兩種,一種使用‘%’ ,一種是使用format內(nèi)建函數(shù)。

使用 % 格式化,格式化變量,依次由左向右對應(yīng)。

>>> c = "%s,%s!"%(a,b)  
>>> print(c)
你好,世界!

使用 %來格式化時,%s中的s叫做占位符,不同的類型需要不同的占位符,如下:

占位符 類型
%d 整數(shù)
%f 浮點(diǎn)數(shù)
%s 字符串
%x 十六進(jìn)制整數(shù)

使用format 格式化,格式化變量,由左向右根據(jù)大括號的序號對應(yīng)。

>>> d = "{1},{0}".format("世界","你好")
>>> print(d)
你好,世界

常用方法

可使用內(nèi)建函數(shù)dir查看某對象的方法:

>>> dir(a)
["__add__", "__class__", "__contains__", "__delattr__", "__doc__", "__eq__", "__format__", "__ge__", "__getattribute__", "__getitem__", "__getnewargs__", "__getslice__", "__gt__", "__hash__", "__init__", "__le__", "__len__", "__lt__", "__mod__", "__mul__", "__ne__", "__new__", "__reduce__", "__reduce_ex__", "__repr__", "__rmod__", "__rmul__", "__setattr__", "__sizeof__", "__str__", "__subclasshook__", "_formatter_field_name_split", "_formatter_parser", "capitalize", "center", "count", "decode", "encode", "endswith", "expandtabs", "find", "format", "index", "isalnum", "isalpha", "isdigit", "islower", "isspace", "istitle", "isupper", "join", "ljust", "lower", "lstrip", "partition", "replace", "rfind", "rindex", "rjust", "rpartition", "rsplit", "rstrip", "split", "splitlines", "startswith", "strip", "swapcase", "title", "translate", "upper", "zfill"]
>>>

endswith(‘’) 是否以某字符串結(jié)尾,是則返回True,否則返回False

startswith("") 是否以某字符串開始,是則返回True,否則返回False

split() 分隔字符串,返回一個列表(python高級數(shù)據(jù)結(jié)構(gòu),稍后講解)。

lower() 轉(zhuǎn)為小寫。

upper() 轉(zhuǎn)為大寫。

strip("") 2側(cè)去除某字符串。

lstrip("") 左側(cè)去除某字符串。

rstrip("") 右側(cè)去除某字符串。

join() 以某字符串為連接符,合并某列表。

ljust(int) 左對齊,并使用空格填充至指定長度的新字符串

rjust(int) 右對齊,并使用空格填充至指定長度的新字符串

運(yùn)算符與表達(dá)式

在編程世界中的表達(dá)式和我們數(shù)學(xué)上的表達(dá)式有些類似,都是一種句法,此處意義更純粹,有運(yùn)算符和操作數(shù)組成。例如:2+3,其中像+類似的符號即為運(yùn)算符,可通過它對操作數(shù)做相應(yīng)操作。2和3 即為操作數(shù)。

運(yùn)算符

運(yùn)算符,顧名思義,可以通過它對一些變量做運(yùn)算處理。此處的運(yùn)算除了簡單的四則運(yùn)算,還包括比較、賦值等復(fù)雜操作。Python中運(yùn)算符主要包括以下幾種:

算數(shù)運(yùn)算符

比較運(yùn)算符

邏輯運(yùn)算符

賦值運(yùn)算符

位運(yùn)算符

成員運(yùn)算符

身份運(yùn)算符

下面我們一一來看。

算數(shù)運(yùn)算符

算數(shù)運(yùn)算符,主要對程序中的變量做四則運(yùn)算使用。主要包含如下運(yùn)算符:

比較運(yùn)算符

比較運(yùn)算符,用來比較變量是否相等,返回置為布爾類型。主要包含以下運(yùn)算符:

注意:

python2中運(yùn)行不同類型的變量作比較,比較時會自動做類型轉(zhuǎn)化,由簡單類型向復(fù)雜類型轉(zhuǎn)變。

python3只允許同類型變量比較。

邏輯運(yùn)算符

邏輯運(yùn)算符,將變量按一定邏輯組合成一個新的表達(dá)式,該表達(dá)式返回一個布爾類型的值。常常用來作為判斷條件時間,判斷組合的新表達(dá)式是否成立。邏輯運(yùn)算符主要包含以下:

賦值運(yùn)算符

賦值運(yùn)算符,即將某個值賦給默一遍量的運(yùn)算符。主要包含如下:

注意:

//=/= 在python2中都為取整除法

位運(yùn)算符

位運(yùn)算符,是針對二進(jìn)制數(shù)據(jù)的一種字節(jié)位的運(yùn)算,主要包含以下符號:

成員運(yùn)算符

成員運(yùn)算符,判斷某變量是否包含另一變量。主要包含以下符號:

身份運(yùn)算符

身份運(yùn)算符,判斷是否2個變量的值及引用的內(nèi)存地址是否一樣。

注意:

與比較運(yùn)算符== 比較,== 為值相等即可,內(nèi)存引用地址可不同;is則為值和內(nèi)存引用地址均相同。

運(yùn)算符優(yōu)先級

各運(yùn)算符按照優(yōu)先級由高到低的順序排列如下:

表達(dá)式

前邊說過,表達(dá)式是一種句法,有運(yùn)算符操作數(shù)組成。下面我們來看一個例子:

# -*- coding:utf-8 -*- 

length = 10
width = 5
area = length*width
print(area)

本例子,使用表達(dá)式計算了長方形的面積。變量length表示長方形的長,變量width 表示長方形的寬,使用算數(shù)運(yùn)算符*,利用表達(dá)式進(jìn)行了乘法計算。通過賦值運(yùn)算符=將表達(dá)式的值賦值給了變量 area。這個過程中,表達(dá)式在其中起了核心邏輯的作用。這個簡單的程序也映射了我們平時的編碼過程,表達(dá)式在其中起了至關(guān)重要的作用,我們要善加利用。

輸入輸出

計算機(jī)要處理任務(wù),則需要與人交互。那么python中的輸入輸出是如何實(shí)現(xiàn)的呢?

python2 中提供了輸入函數(shù) inputraw_input來輸入,函數(shù)print 來輸出。python3中raw_input函數(shù)去掉了,功能合并到input

輸入

先來看下,python2 中raw_input

>>> raw_input("請輸入:")
>>> raw_input("請輸入:")
請輸入:123
"123"
>>> raw_input("請輸入:")
請輸入:abc
"abc"

可見 raw_input 返回我們輸入的數(shù)據(jù)為一個字符串返回。

再來看下 input,它除了支持字符串還支持表達(dá)式,如下:

>>> input("請輸入:")
請輸入:1+2
3
>>>

可見它輸出了表達(dá)式的值,也就是說它執(zhí)行了表達(dá)式。試想,如果這里放一個破壞我們系統(tǒng)執(zhí)行的表達(dá)式,我們系統(tǒng)便會受到安全威脅。在人們衡量后,在python3中,決定去除該函數(shù),并將原來的raw_input 改名為 input

輸出

python2 中使用print語句來輸出,python3中則改為了 print函數(shù)。

>>> print("你好", end=",")
你好,>>> a = "世界"
>>> print("你好,%s"%a)
你好,世界
>>> print("你好", "世界")
你好世界

語法說明:

end=參數(shù), 傳遞給參數(shù)的字符將追加到打印字符串結(jié)尾,當(dāng)省略時默認(rèn)為回車換行。

print 函數(shù)可傳入多個字符串來打印,當(dāng)傳入多個時,會自動合并鏈接。

print 函數(shù)常被用來在調(diào)試代碼時,打印變量使用。

總結(jié)

到此,我們把Python的基本語法和數(shù)據(jù)結(jié)構(gòu)過了一遍。那我們來總結(jié)下,我們都學(xué)到了什么:

1、Python的基本語法:變量、常量、基本數(shù)據(jù)類型、字符串和編碼、運(yùn)算符與表達(dá)式;

這些只是基本語法的組成元素。在程序運(yùn)行時,可能會有多種情況,需要對這些結(jié)構(gòu)做判斷或者需要按順序讀取列表的全部元素,那么這個時候便需要邏輯處理結(jié)構(gòu)。下一章,我們來講解Python中的邏輯處理的控制流語法。

練習(xí)

1、如何檢查一個字符串是否以某個字符串開頭或結(jié)尾?

"Hello".startswith("H")
"Hello".endswith("o")

2、你想通過某種對齊方式來格式化字符串?

>>> text = "Hello World"
>>> text.ljust(20)
"Hello World         "
>>> text.rjust(20)
"         Hello World"
>>> text.center(20)
"    Hello World     "
>>>

3、華氏溫度轉(zhuǎn)攝氏溫度。

"""
將華氏溫度轉(zhuǎn)換為攝氏溫度公式:
F = 1.8C + 32
"""

f = float(input("請輸入華氏溫度: "))
c = (f - 32) / 1.8
print("%.1f華氏度 = %.1f攝氏度" % (f, c))

4、輸入圓的半徑計算計算周長和面積。

"""
輸入半徑計算圓的周長和面積
"""
import math

radius = float(input("請輸入圓的半徑: "))
perimeter = 2 * math.pi * radius
area = math.pi * radius * radius
print("周長: %.2f" % perimeter)
print("面積: %.2f" % area)

5、輸入年份判斷是不是閏年。

"""
輸入年份 如果是閏年輸出True 否則輸出False
"""

year = int(input("請輸入年份: "))
# 如果代碼太長寫成一行不便于閱讀 可以使用或()折行
is_leap = (year % 4 == 0 and year % 100 != 0 or
           year % 400 == 0)
print(is_leap)
參考:

https://github.com/jackfrued/Python-100-Days/blob/master/Day01-15/Day02/%E8%AF%AD%E8%A8%80%E5%85%83%E7%B4%A0.md

http://www.runoob.com/python/python-basic-syntax.html

python 之路,致那些年,我們依然沒搞明白的編碼

熟悉又陌生的字符編碼

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/41928.html

相關(guān)文章

  • Python零基礎(chǔ)到入門Python基礎(chǔ)語法篇——基本數(shù)據(jù)類型【文末送書】

    摘要:布爾值布爾值和布爾代數(shù)的表示完全一致,一個布爾值只有兩種值的數(shù)據(jù)類型可以通過內(nèi)置的函數(shù)查詢,例如還可以用來判斷和的區(qū)別在于不會認(rèn)為子類是一種父類類型。會認(rèn)為子類是一種父類類型。基本功能是進(jìn)行成員關(guān)系測試和刪除重復(fù)元素。 ...

    Winer 評論0 收藏0
  • 史上最詳細(xì)Python學(xué)習(xí)路線-從入門到精通,只需90天

    摘要:針對的初學(xué)者,從無到有的語言如何入門,主要包括了的簡介,如何下載,如何安裝,如何使用終端,等各種開發(fā)環(huán)境進(jìn)行開發(fā),中的語法和基本知識概念和邏輯,以及繼續(xù)深入學(xué)習(xí)的方法。 ...

    gghyoo 評論0 收藏0
  • 如何成為一名優(yōu)秀的程序員

    摘要:前言羅子雄如何成為一名優(yōu)秀設(shè)計師董明偉工程師的入門和進(jìn)階董明偉基于自己實(shí)踐講的知乎為新人提供了很多實(shí)用建議,他推薦的羅子雄如何成為一名優(yōu)秀設(shè)計師的演講講的非常好,總結(jié)了設(shè)計師從入門到提高的優(yōu)秀實(shí)踐。 前言 羅子雄:如何成為一名優(yōu)秀設(shè)計師 董明偉:Python 工程師的入門和進(jìn)階 董明偉基于自己實(shí)踐講的知乎live為Python新人提供了很多實(shí)用建議,他推薦的羅子雄:如何成為一名優(yōu)秀...

    keelii 評論0 收藏0
  • python3入門與進(jìn)階(一)

    摘要:語言也被稱作為膠水語言,可以混合其他如,等來編程可以把其他語言制作的各種模塊尤其是很輕松的聯(lián)結(jié)在一起。會認(rèn)為子類是一種父類類型。 最近學(xué)習(xí)了python3的語法,整理記錄一下;語法是編程的先決條件,精通語法是編好程序的必要條件; 導(dǎo)語 給我最大的感覺是:這個語言的編寫,居然不使用 { }來控制代碼塊的區(qū)域,而是使用縮進(jìn)來分割代碼塊,所以使用python語言編寫的代碼不能壓縮混淆。能夠...

    Panda 評論0 收藏0
  • 編程書單:十本Python編程語言的入門書籍

    摘要:本文與大家分享一些編程語言的入門書籍,其中不乏經(jīng)典。全書貫穿的主體是如何思考設(shè)計開發(fā)的方法,而具體的編程語言,只是提供一個具體場景方便介紹的媒介。入門入門容易理解而且讀起來幽默風(fēng)趣,對于編程初學(xué)者和語言新手而言是理想的書籍。 本文與大家分享一些Python編程語言的入門書籍,其中不乏經(jīng)典。我在這里分享的,大部分是這些書的英文版,如果有中文版的我也加上了。有關(guān)書籍的介紹,大部分截取自是官...

    desdik 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<