Python進擊-基本語法結構

Python進擊-基本語法結構

來自專欄 Python的進擊

  • 基本語法
    • Hello World
      • 代碼注釋
      • 關鍵字
      • 輸入輸出
    • 基本類型
      • 數據類型
    • 變數、常量
      • 變數
      • 變數賦值
      • 變數命名
      • 變數的作用域
      • 常量
    • 字元串與編碼
      • 字元轉義
      • 字元編碼
      • 字元串操作
    • 運算符與表達式
      • 運算符
      • 表達式
  • 總結
  • 練習
  • 參考:

基本語法

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

Hello World

在上一章,我們python環境已經安裝完畢,也選擇好了合適自己的編輯器,現在我們開始進入python的編程世界。

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

解釋器運行

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

$ python3Python 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 darwinType "help", "copyright", "credits" or "license" for more information.>>> print(Hello world!)

代碼返回如下:

Hello world!

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

  • 1、>>> python的交互環境的提示符
  • 2、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中的輸入輸出是如何實現的呢?

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

輸入

先來看下,python2 中raw_input

>>> raw_input(請輸入:)>>> raw_input(請輸入:)請輸入:123123>>> raw_input(請輸入:)請輸入:abcabc

可見 raw_input 返回我們輸入的數據為一個字元串返回。

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

>>> input(請輸入:)請輸入:1+23>>>

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

輸出

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

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

語法說明:

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

基本類型

數據類型

變數中儲存數據的類型可以是多種多樣的,我們把變數中存儲數據的類型叫數據類型。而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 = Im DeanWu!

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

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

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

a = Im DeanWu!

字元編碼

在計算機基礎部分,我們知道了計算機編碼相關知識,概括如下:

  • ASCII 使用1個位元組,只支持英文;
  • GB2312 使用2個位元組,支持6700+漢字;
  • GBK GB2312的升級版,支持21000+漢字;
  • Unicode編碼,使用2、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你好>>> axe4xbdxa0xe5xa5xbd # 系統編碼為 utf-8的位元組碼,使用了3個位元組表示一個漢字;>>> ua = u你好 # unicode 編碼>>> type(ua)<type unicode>>>> print ua你好>>> uauu4f60u597d # unicode 編碼格式的你好,對應unicode代碼表中代碼>>> b = b你好 # bytes 類型的字元串>>> type(b) <type str>>>> print b你好>>> b xe4xbdxa0xe5xa5xbd # 使用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)uu4f60u597d # 對應的unicode代碼>>> uauu4f60u597d>>> ua.encode(utf-8) # encode 編碼: unicode類型(Unicode) --> str類型(UTF-8)xe4xbdxa0xe5xa5xbd # utf-8的編碼的 str位元組串>>> a.decode(gbk) # 嘗試使用 gbk 解碼,結果出現亂碼uu6d63u72b2u30bd>>> print a.decode(gbk) 浣犲ソ>>> a.decode(gbk).encode(gbk) # 使用 gbk 解碼,再編碼,成功還原xe4xbdxa0xe5xa5xbd>>> print a.decode(gbk).encode(gbk)你好>>> a.decode(gbk).encode(utf-8) # 使用不同的編碼來解碼和編碼, 也出現亂碼xe6xb5xa3xe7x8axb2xe3x82xbd>>> print a.decode(gbk).encode(utf-8)浣犲ソ

知識點:

  • 使用什麼編碼編碼,就需要使用什麼編碼解碼,否則會出現亂碼。
  • 轉為unicode類型要decode解碼。
  • 轉為str類型要encode編碼。
  • 區分Unicode類型和Unicode編碼,Unicode編碼是一套編碼集,內容豐富,編碼內容涵蓋了世界各地的語言,實現方式有UTF-8、UTF-16、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,沒有問題。來看下執行時都做了些什麼事:

  • 1、python解釋器讀取文件頭部聲明的編碼,將其作為變數解碼時使用的編碼。
  • 2、python讀取代碼,自動將非unicode編碼的變數解碼成unicode給計算機內存使用。
  • 3、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) # 顯示為位元組串bxe4xbdxa0xe5xa5xbd>>> e = Test>>> eTest>>> e.encode(utf-8) # 顯示為原字元串bTest

知識點:

  • 1、可以看到Unicode類型的字元串類型為 str,帶不帶u 是一樣的。
  • 2、unicode 字元串編碼成utf-8格式的位元組碼,前邊帶 b 說明是bytes 位元組類型。
  • 3、在Python3中,所有unicode編碼顯示均為原字元串,非 unicode 編碼的 非ASCII碼範圍的字元 顯示均為位元組串。

字元串操作

字元串中的運算符

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

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

  • "*2" 標識2次重複輸出

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

  • len 內建函數,可以獲取字元串的位元組長度

>>> a = 你好>>> a xe4xbdxa0xe5xa5xbd # 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 aTrue

格式化

有時候,我們要將多個變數組成一個我們需要的字元串來使用,這個過程叫做格式化。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 = 10width = 5area = length*widthprint(area)

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

總結

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

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

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

練習

  • 1、如何檢查一個字元串是否以某個字元串開頭或結尾?

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、華氏溫度轉攝氏溫度。

"""將華氏溫度轉換為攝氏溫度公式:F = 1.8C + 32"""?f = float(input(請輸入華氏溫度: ))c = (f - 32) / 1.8print(%.1f華氏度 = %.1f攝氏度 % (f, c))?

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

"""輸入半徑計算圓的周長和面積"""import math?radius = float(input(請輸入圓的半徑: ))perimeter = 2 * math.pi * radiusarea = math.pi * radius * radiusprint(周長: %.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)

參考:

  • github.com/jackfrued/Py
  • runoob.com/python/pytho
  • python 之路,致那些年,我們依然沒搞明白的編碼
  • 熟悉又陌生的字元編碼

推薦閱讀:

英語語法名詞性從句知識:關係代詞怎樣省略
語法知識
關於對偶句的語法規則
語文語法知識

TAG:語法 | 數學 | Python |