Python入門-基本語法1

< 返回索引頁html

<!-- /TOC -->windows

基本語法

從本章開始,咱們開始學習Python的基本語法。api

Hello World

在上一章,咱們python環境已經安裝完畢,也選擇好了合適本身的編輯器,如今咱們開始進入python的編程世界。數組

讓咱們來看一個python的簡單程序,HelloWorld安全

解釋器運行

打開系統終端輸入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!

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

  • 一、>>> python的交互環境的提示符
  • 二、print python 內置的打印方法,它會打印括號中的字符串。

代碼文件運行

咱們能夠把以上代碼保存成python的腳本文件,並保存爲hello.py, python的代碼文件是以py做爲擴展名的。下面咱們來執行它,在咱們的系統終端執行以下命令:

$python hello.py

代碼返回以下:

Hello world!
你好,世界!

到這,咱們知道了如何在python 解釋器和代碼文件中運行代碼。

代碼註釋

定義

咱們在編寫代碼的時候,每每須要添加一些說明以幫助咱們來理解代碼邏輯,在代碼執行的時候,這些說明不會被執行。這些說明叫作註釋。Python中的註釋,使用井號、單引號或雙引號標識,以下:

# 單行註釋

'''
我是多行註釋
我是多行註釋
'''

"""
我是多行註釋
我是多行註釋
"""

註釋經常使用場景

  • 腳本文本的開頭,說明腳本主要功能。
  • 代碼中,說明代碼功能。
  • 函數和方法名(是python中的語法結構,後邊會講到)下,做爲說明出現。

關鍵字

程序設計中,預留了一些標識符號供語言自己或系統使用,這些標識符被稱爲關鍵字。每一個關鍵字都有本身的含義,在python中可經過如下方式查看關鍵字:

>>> 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']

咱們能夠經過以下方法判斷字符串是否爲關鍵字:

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

關鍵字不可做爲變量的名稱使用。

數據類型

變量中儲存數據的類型能夠是多種多樣的,咱們把變量中存儲數據的類型叫數據類型。而python 中經常使用的數據類型,有這麼幾種:

  • 整型(int): Python3中能夠處理任意大小的整數(Python 2.x中有int和long兩種類型的整數,但這種區分對Python來講意義不大,在python中內存分配是自動的,用戶並不關心這些細節,反而給用戶無限大的使用空間更好,所以在Python 3.x中整數只有int這一種了),並且支持二進制(如0b100,換算成十進制是4)、八進制(如0o100,換算成十進制是64)、十進制(100)和十六進制(0x100,換算成十進制是256)的表示法。
  • 複數型(complex):形如3+5j,跟數學上的複數表示同樣,惟一不一樣的是虛部的i換成了j。
  • 浮點型(float):浮點數也就是小數,之因此稱爲浮點數,是由於按照科學記數法表示時,一個浮點數的小數點位置是可變的,浮點數除了數學寫法(如123.456)以外還支持科學計數法(如1.23456e2)。
  • 字符串型(str):字符串是以單引號或雙引號括起來的任意文本,好比'hello'和"hello",字符串還有原始字符串表示法、字節字符串表示法、Unicode字符串表示法,並且能夠書寫成多行的形式(用三個單引號或三個雙引號開頭,三個單引號或三個雙引號結尾)。
  • 布爾型(bool):布爾值只有True、False兩種值,要麼是True,要麼是False,在Python中,能夠直接用True、False表示布爾值(請注意大小寫),也能夠經過布爾運算計算出來(例如3 < 5會產生布爾值True,而2 == 1會產生布爾值False)。python中把None、0、'' 都視爲False。
  • 空類型: None 爲空類型。

各數據類型之間是能夠相互轉換的,可以使用Python提供的內置函數:

  • int():將一個數值或字符串轉換成整數,能夠指定進制。
  • float():將一個字符串轉換成浮點數。
  • str():將指定的對象轉換成字符串形式,能夠指定編碼。

另外2個字符轉化內置函數:

  • chr():將整數轉換成該ASCII編碼對應的字符串(一個字符,如 chr(65) 返回爲字符串 'A' )。
  • ord():將字符串轉換成對應的ASCII編碼。

變量、常量

變量

變量(英語:Variable,scalar),是內存中實際存在的數據或存儲器中存儲數據的一塊內存空間地址,變量的值能夠被讀取和修改。

Python 中的變量是內存中保存數據的地址的一個別稱。變量是沒有類型的,變量對應的值對象是有類型的。變量的類型是跟着值對象走的。嚴格來講,類型是屬於對象的,而不是變量, 變量和對象是分離的,對象是內存中儲存數據的實體,變量則是指向對象的內存地址。

變量賦值

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

>>> a = 123
>>> b = '123'
>>> c = True
>>> print(type(a),type(b),type(c))
(<type 'int'>, <type 'str'>, <type 'bool'>)
>>> d, e = 1,2

知識點:

  • 咱們可使用內置函數 type 來查看變量的數據類型。
  • 可同時給多個變量賦值

變量命名

變量的命令是一個重要的規則,好的命名能夠增長代碼的可讀性,提升代碼的可維護性。python中變量的命名有以下要求:

  • 只能使用數據、字母和下劃線,且只能以字母或下劃線開頭。
  • 大小寫敏感,即區分大小寫。a和A 是2個變量名。
  • 不能使用關鍵字及系統預留字重複。

說明:

  • 系統預留字,及系統的函數及模塊的名字。

除了以上這些硬性規定外,變量命名仍是比較寬鬆的。爲了更好的處理命名問題,python 社區指定了一個開發規範 PEP8。其中除了命名規範外,還描述了其餘一些語法的最佳實踐。它可做爲咱們往後編寫代碼及項目開發的規範使用,對咱們提升代碼的質量有很大的好處。

變量的做用域

做用域,顧名思義,能夠理解爲在必定範圍內起做用。映射到咱們的編碼中時,即是在必定的代碼範圍內有效。在編碼時,代碼分各類邏輯塊的,相似咱們文章的段落,能夠更好的理解閱讀分類。那麼在這些限定的範圍內,變量的有效性是有影響的。根據有效範圍做用域分爲全局變量(Local)局部變量(Global)全局變量 是在整個程序系統或文件全局中有效的變量。局部變量表示在一個代碼邏輯塊中有效的變量。全局和局部變量是相對的,如咱們能夠叫一個相對於文件來講的全局變量,可是在多個文件或者文件包中便成了局部變量。除了全局和局部變量,Python中還有如下做用域:

  • E (Enclosing) 閉包函數外的函數中
  • B (Built-in) 內建做用域

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

常量

變量中存儲的數值是能夠變更的,那麼有沒有不變的呢?答案是有的,如數學計算使用的PI。咱們常常把代碼中,存儲不變數據的變量稱之爲常量。可見,常量是一種特殊的變量。

字符串與編碼

上節咱們談到變量有許多的數據類型,其中字符串類型比較複雜,這裏單獨講解下。

字符轉義

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

a = 'I'm DeanWu!'

咱們在執行以上語句的時候會報錯:

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

這是由於字符串中間的單引號把字符串給截斷了,當python解釋器執行到該單引號後,後邊的語法便報錯了。如何解決?這便須要進行轉義,所謂轉義,即是讓python解釋器解釋執行的時候,被轉義的字符不在表示原先的意思,而變爲不解釋執行的字符串。Python中使用 \ 進行轉義。上邊的語法能夠寫成這樣:

a = 'I\'m DeanWu!'

字符編碼

在計算機基礎部分,咱們知道了計算機編碼相關知識,歸納以下:

  • ASCII 使用1個字節,只支持英文;
  • GB2312 使用2個字節,支持6700+漢字;
  • GBK GB2312的升級版,支持21000+漢字;
  • Unicode編碼,使用二、3或4個字節表示字符;
  • UTF 編碼爲Unicode編碼的一種可變長實現;
  • 計算機內存中使用Unicode編碼處理,存儲和傳輸則使用UTF編碼。

接下來,咱們看下Python中的編碼。Python2中的默認編碼爲ASCII編碼,Python3中使用的則是UTF-8編碼。可以使用以下命令查看:

import sys 
sys.getdefaultencoding()

在Python 編程中,編碼問題每每是新手的一個困擾,咱們來深刻展開說下這個問題。Python2和Python3的默認編碼是不同的,它們處理編碼方式也是不同。

Python2中的編碼

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

  • basestring 是一個基類(稍後會講到此概念,可暫時理解爲父親或基礎便可),strunicode類型在此基礎上構建。
  • str 是Python設計之初的字符串類型,默認使用系統編碼。
  • unicode 是了使Python支持Unicode編碼,在2.0版本以後添加的一種字符串類型。
  • bytes 是字節串,str自己即是一個字節串,那可認爲bytesstr的一個別稱,使用和str徹底一致。

看一實例:

>>> a = '你好'  # 使用系統編碼的str 類型
>>> type(a)
<type 'str'>
>>> print a
你好
>>> a
'\xe4\xbd\xa0\xe5\xa5\xbd'  # 系統編碼爲 utf-8的字節碼,使用了3個字節表示一個漢字;
>>> ua = u'你好'   # unicode 編碼
>>> type(ua)
<type 'unicode'>
>>> print ua
你好
>>> ua
u'\u4f60\u597d'  # unicode 編碼格式的你好,對應unicode代碼表中代碼
>>> b = b'你好'  # bytes 類型的字符串
>>> type(b)  
<type 'str'>
>>> print b
你好
>>> b  
'\xe4\xbd\xa0\xe5\xa5\xbd'  # 使用3個字節表示1個漢字,且字節碼和str類型同樣;

知識點:

  • Python 解釋器默認使用系統的編碼方式聲明變量。
  • unicode類型以u開頭標識
  • bytes 類型以 b 開頭標識
  • str類型以16進制的ASCII字節碼錶示,其實是一個字節串,迴應了它的另外一個名字bytes。
  • unicode類型以unicode字符碼錶示,是真正的字符串。

strunicode 類型之間是能夠相互轉化的,經過 encodedecode 來實現。來看實例:

>>> a = '你好'
>>> a.decode('utf-8')  # decode 解碼: str類型(UTF-8) --> unicode類型(Unicode)
u'\u4f60\u597d'  # 對應的unicode代碼
>>> ua
u'\u4f60\u597d'
>>> ua.encode('utf-8')  # encode 編碼: unicode類型(Unicode) --> str類型(UTF-8)
'\xe4\xbd\xa0\xe5\xa5\xbd'  # utf-8的編碼的 str字節串
>>> a.decode('gbk')  # 嘗試使用 gbk 解碼,結果出現亂碼
u'\u6d63\u72b2\u30bd'
>>> print a.decode('gbk')  
浣犲ソ
>>> a.decode('gbk').encode('gbk')  # 使用 gbk 解碼,再編碼,成功還原
'\xe4\xbd\xa0\xe5\xa5\xbd'
>>> print a.decode('gbk').encode('gbk')
你好
>>> a.decode('gbk').encode('utf-8')  # 使用不一樣的編碼來解碼和編碼, 也出現亂碼
'\xe6\xb5\xa3\xe7\x8a\xb2\xe3\x82\xbd'
>>> print a.decode('gbk').encode('utf-8')
浣犲ソ

知識點:

  • 使用什麼編碼編碼,就須要使用什麼編碼解碼,不然會出現亂碼。
  • 轉爲unicode類型要decode解碼。
  • 轉爲str類型要encode編碼。
  • 區分Unicode類型和Unicode編碼,Unicode編碼是一套編碼集,內容豐富,編碼內容涵蓋了世界各地的語言,實現方式有UTF-八、UTF-1六、UTF-32;Unicode類型只是python字符串的一種類型,使用Unicode編碼做爲其編碼格式,可通過各類編碼方式(UTF、GBK、ASCII)編碼成str類型字符或者叫bytes(字節序列)類型供計算機使用。
  • Unicode 編碼的兼容性,可做爲其餘編碼格式的轉碼的中間站。

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

文件的存儲是以二進制流的方式保存在硬盤上。當Python文件被執行時,這些文件會以二進制流的方式加載到內存中,而後按照Python的默認編碼方式解碼成相應的python代碼對應的unicode編碼的字節碼來解釋執行。在python2中,默認編碼爲ASCII碼,那麼當文件中有非ASCII碼時,這個解碼過程便會出錯。Python 爲了解決這個問題,在Python 文件頭部增長了文件的編碼聲明,PEP236就是爲這個問題而建立的改進意見。

Python 文件格式聲明以下:

# coding:utf-8

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

來看實例 coding_utf.py

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

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

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

在命令行執行python coding_utf.py, 返回以下:

你好
<type 'str'>
你好
<type 'unicode'>

ok,沒有問題。來看下執行時都作了些什麼事:

  • 一、python解釋器讀取文件頭部聲明的編碼,將其做爲變量解碼時使用的編碼。
  • 二、python讀取代碼,自動將非unicode編碼的變量解碼成unicode給計算機內存使用。
  • 三、python解釋器執行代碼,打印utf-8編碼的a和unicode編碼的ua。

接下來,當咱們把文件編碼和開頭標識改成GBK後,再次執行:

���
<type 'str'>
你好
你好
<type 'unicode'>

你們看到第一個你好成爲亂碼,這是爲何? 根據上邊的分析,打印時,a的編碼爲gbk, ua的編碼爲unicode。而我終端的編碼爲utf-8,對gbk的不兼容,因此致使亂碼。一樣的代碼,當放到默認gbk編碼的windows終端中,則會輸出正常。

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

print(a.decode('gbk'))

到這裏,總結以上說的問題,影響Python 字符編碼的地方主要有如下幾點:

  • Python解釋器的默認編碼,python2中默認爲ASCII。
  • Python源文件文件聲明編碼及保存的編碼方式。
  • 系統終端使用的編碼,會影響python文件執行時的編碼方式。
  • 操做系統的編碼,會影響終端的編碼方式。

Python3中編碼

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

  • 使用 ASCII 做爲默認編碼方式,不能很好的支持非ASCII碼字符;
  • 將字符串分爲了strunicode兩種類型,讓你們容易混淆;

Python3 對以上問題作了很好的修正。Python3 默認編碼改成了 UTF-8,對於非ASCII碼支持更強大。其次,Python3 合併了strunicode 類型,統一爲 str 類型。使用 bytes類型來表示字節類型。這樣很好的區分了字符串和字節串,str即爲字符串,bytes 爲字節串或叫二進制字節。

看下面的例子:

>>> a = '你好'  # utf-8 編碼的str類型
>>> type(a)
<class 'str'> 
>>> print(a)
你好
>>> repr(a)
"'你好'"
>>> a  # 顯示爲原字符串
'你好'
>>> ua = u'你好'
>>> type(ua)    # unicode 編碼的 str類型
<class 'str'>
>>> print(ua)
你好
>>> repr(ua)
"'你好'"
>>> ua  # 能夠看到,字符串直接顯示並無顯示unicode編碼
'你好'
>>> a.decode('utf-8')  # unicode 字符串已不能再解碼了
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'str' object has no attribute 'decode'
>>> a.encode('utf-8')  # 顯示爲字節串
b'\xe4\xbd\xa0\xe5\xa5\xbd'
>>> e = 'Test'
>>> e
'Test'
>>> e.encode('utf-8')  # 顯示爲原字符串
b'Test'

知識點:

  • 一、能夠看到Unicode類型的字符串類型爲 str,帶不帶u 是同樣的。
  • 二、unicode 字符串編碼成utf-8格式的字節碼,前邊帶 b 說明是bytes 字節類型。
  • 三、在Python3中,全部unicode編碼顯示均爲原字符串,非 unicode 編碼的 非ASCII碼範圍的字符 顯示均爲字節串。

字符串操做

字符串中的運算符

  • Python 中字符串能夠直接使用 "+" 連接。
>>> a = '你好'
>>> b = '世界'
>>> print(a+b)
你好世界
  • "*2" 標識2次重複輸出
>>> print(a*2)
你好你好
  • len 內建函數,能夠獲取字符串的字節長度
>>> a = '你好'
>>> a 
'\xe4\xbd\xa0\xe5\xa5\xbd'  # utf-8 編碼,3個字節表明一個漢字。
print(len(a))
>>> e = 'hello'
>>> print(len(e))
5
  • [] 索引,可經過下標的方式來獲取字符串的某個字節,下標是從 0 開始的,最後一個爲'字符串長度-1'或'-1'。
>>> print(a)
helloworld
>>> a[2]
'l'
>>> a[0]
'h'
>>> a[9]
'd'
>>> a[-1]
'd'
  • [:] 切片,可以使用字符串下標來截取字符串
>>> a = 'helloworld'
>>> a[0:5]
'hello'

> 說明:

  • 下標從零開始
  • 開始能夠省略,默認爲0
  • 結束能夠省略,默認爲-1
  • in 判斷某變量是否在字符串中。
>>> a = 'helloworld'
>>> 'hello' in a
True

格式化

有時候,咱們要將多個變量組成一個咱們須要的字符串來使用,這個過程叫作格式化。Python中格式化的方式有兩種,一種使用‘%’ ,一種是使用format內建函數。

  • 使用 % 格式化,格式化變量,依次由左向右對應。
>>> c = '%s,%s!'%(a,b)  
>>> print(c)
你好,世界!

使用 %來格式化時,%s中的s叫作佔位符,不一樣的類型須要不一樣的佔位符,以下:

佔位符 類型
%d 整數
%f 浮點數
%s 字符串
%x 十六進制整數
  • 使用format 格式化,格式化變量,由左向右根據大括號的序號對應。
>>> d = '{1},{0}'.format('世界','你好')
>>> print(d)
你好,世界

經常使用方法

可以使用內建函數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(‘’) 是否以某字符串結尾,是則返回True,不然返回False
  • startswith('') 是否以某字符串開始,是則返回True,不然返回False
  • split() 分隔字符串,返回一個列表(python高級數據結構,稍後講解)。
  • lower() 轉爲小寫。
  • upper() 轉爲大寫。
  • strip('') 2側去除某字符串。
  • lstrip('') 左側去除某字符串。
  • rstrip('') 右側去除某字符串。
  • join() 以某字符串爲鏈接符,合併某列表。
  • ljust(int) 左對齊,並使用空格填充至指定長度的新字符串
  • rjust(int) 右對齊,並使用空格填充至指定長度的新字符串

運算符與表達式

在編程世界中的表達式和咱們數學上的表達式有些相似,都是一種句法,此處意義更純粹,有運算符和操做數組成。例如:2+3,其中像+相似的符號即爲運算符,可經過它對操做數作相應操做。2和3 即爲操做數。

運算符

運算符,顧名思義,能夠經過它對一些變量作運算處理。此處的運算除了簡單的四則運算,還包括比較、賦值等複雜操做。Python中運算符主要包括如下幾種:

  • 算數運算符
  • 比較運算符
  • 邏輯運算符
  • 賦值運算符
  • 位運算符
  • 成員運算符
  • 身份運算符

下面咱們一一來看。

算數運算符

算數運算符,主要對程序中的變量作四則運算使用。主要包含以下運算符:

比較運算符

比較運算符,用來比較變量是否相等,返回置爲布爾類型。主要包含如下運算符:

注意:

  • python2中運行不一樣類型的變量做比較,比較時會自動作類型轉化,由簡單類型向複雜類型轉變。
  • python3只容許同類型變量比較。

邏輯運算符

邏輯運算符,將變量按必定邏輯組合成一個新的表達式,該表達式返回一個布爾類型的值。經常用來做爲判斷條件時間,判斷組合的新表達式是否成立。邏輯運算符主要包含如下:

賦值運算符

賦值運算符,即將某個值賦給默一遍量的運算符。主要包含以下:

注意:

  • //=/= 在python2中都爲取整除法

位運算符

位運算符,是針對二進制數據的一種字節位的運算,主要包含如下符號:

成員運算符

成員運算符,判斷某變量是否包含另外一變量。主要包含如下符號:

身份運算符

身份運算符,判斷是否2個變量的值及引用的內存地址是否同樣。

注意:

  • 與比較運算符== 比較,== 爲值相等便可,內存引用地址可不一樣;is則爲值和內存引用地址均相同。

運算符優先級

各運算符按照優先級由高到低的順序排列以下:

表達式

前邊說過,表達式是一種句法,有運算符操做數組成。下面咱們來看一個例子:

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

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

本例子,使用表達式計算了長方形的面積。變量length表示長方形的長,變量width 表示長方形的寬,使用算數運算符*,利用表達式進行了乘法計算。經過賦值運算符=將表達式的值賦值給了變量 area。這個過程當中,表達式在其中起了核心邏輯的做用。這個簡單的程序也映射了咱們平時的編碼過程,表達式在其中起了相當重要的做用,咱們要善加利用。

輸入輸出

計算機要處理任務,則須要與人交互。那麼python中的輸入輸出是如何實現的呢?

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

輸入

先來看下,python2 中raw_input

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

可見 raw_input 返回咱們輸入的數據爲一個字符串返回。

再來看下 input,它除了支持字符串還支持表達式,以下:

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

可見它輸出了表達式的值,也就是說它執行了表達式。試想,若是這裏放一個破壞咱們系統執行的表達式,咱們系統便會受到安全威脅。在人們衡量後,在python3中,決定去除該函數,並將原來的raw_input 更名爲 input

輸出

python2 中使用print語句來輸出,python3中則改成了 print函數。

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

語法說明:

  • end=參數, 傳遞給參數的字符將追加到打印字符串結尾,當省略時默認爲回車換行。
  • print 函數可傳入多個字符串來打印,當傳入多個時,會自動合併連接。
  • print 函數常被用來在調試代碼時,打印變量使用。

總結

到此,咱們把Python的基本語法和數據結構過了一遍。那咱們來總結下,咱們都學到了什麼:

  • 一、Python的基本語法:變量、常量、基本數據類型、字符串和編碼、運算符與表達式;

這些只是基本語法的組成元素。在程序運行時,可能會有多種狀況,須要對這些結構作判斷或者須要按順序讀取列表的所有元素,那麼這個時候便須要邏輯處理結構。下一章,咱們來說解Python中的邏輯處理的控制流語法。

練習

  • 一、如何檢查一個字符串是否以某個字符串開頭或結尾?
'Hello'.startswith('H')
'Hello'.endswith('o')
  • 二、你想經過某種對齊方式來格式化字符串?
>>> text = 'Hello World'
>>> text.ljust(20)
'Hello World         '
>>> text.rjust(20)
'         Hello World'
>>> text.center(20)
'    Hello World     '
>>>
  • 三、華氏溫度轉攝氏溫度。
"""
將華氏溫度轉換爲攝氏溫度公式:
F = 1.8C + 32
"""

f = float(input('請輸入華氏溫度: '))
c = (f - 32) / 1.8
print('%.1f華氏度 = %.1f攝氏度' % (f, c))
  • 四、輸入圓的半徑計算計算周長和麪積。
"""
輸入半徑計算圓的周長和麪積
"""
import math

radius = float(input('請輸入圓的半徑: '))
perimeter = 2 * math.pi * radius
area = math.pi * radius * radius
print('周長: %.2f' % perimeter)
print('面積: %.2f' % area)
  • 五、輸入年份判斷是否是閏年。
"""
輸入年份 若是是閏年輸出True 不然輸出False
"""

year = int(input('請輸入年份: '))
# 若是代碼太長寫成一行不便於閱讀 可使用\或()折行
is_leap = (year % 4 == 0 and year % 100 != 0 or
           year % 400 == 0)
print(is_leap)

參考:

相關文章
相關標籤/搜索