Python3的基礎語法(四)

来源:http://www.cnblogs.com/jiyimeng/archive/2017/11/08/python11084.html
-Advertisement-
Play Games

1,編碼 預設情況下,Python 3 源碼文件以 UTF-8 編碼,所有字元串都是 unicode 字元串。 當然你也可以為源碼文件指定不同的編碼: 2,標識符 第一個字元必須是字母表中字母或下劃線'_'。 標識符的其他的部分有字母、數字和下劃線組成。 標識符對大小寫敏感。 不能用保留字 標識符定 ...


1,編碼

預設情況下,Python 3 源碼文件以 UTF-8 編碼,所有字元串都是 unicode 字元串。 當然你也可以為源碼文件指定不同的編碼:

1 # -*- coding: cp-1252 -*-

2,標識符

  • 第一個字元必須是字母表中字母或下劃線'_'。
  • 標識符的其他的部分有字母、數字和下劃線組成。
  • 標識符對大小寫敏感。
  • 不能用保留字
  • 標識符定義應該有實際意義

在Python 3中,非-ASCII 標識符也是允許的了

3,保留字

保留字即關鍵字,我們不能把它們用作任何標識符名稱。Python 的標準庫提供了一個 keyword 模塊,可以輸出當前版本的所有關鍵字:

1 >>> import keyword
2 >>> keyword.kwlist
3 ['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']

4,註釋

(1.Python中單行註釋以 # 開頭,實例如下:

1 #!/usr/bin/python3
2 
3 # 第一個註釋
4 print ("Hello, Python!") # 第二個註釋

執行以上代碼,輸出結果為:

1 Hello, Python!

(2.多行註釋,""" 被註釋內容 """ 或 ''' 被註釋的內容 ''',實例如下:

 1 print("-----------------------")
 2 name="lhm"
 3 name2=name
 4 print(name,name2)
 5 name="lbh"
 6 print(name,name2)
 7 print("-----------------------")
 8 '''
 9 print("3X4=",3*4)
10 x=4
11 y=3
12 z=x*y
13 print("X*Y=",z)
14 '''
15 print(1*2*3)
16 
17 """
18 print("你好Python,我愛北京天安門!")
19 print("多行註釋")
20 """
21 print("-----------------------")

執行以上代碼輸出結果為:

1 -----------------------
2 lhm lhm
3 lbh lhm
4 -----------------------
5 3X4= 12
6 X*Y= 12
7 6
8 -----------------------

 5,行與縮進

python最具特色的就是使用縮進來表示代碼塊,不需要使用大括弧({})。

縮進的空格數是可變的,但是同一個代碼塊的語句必須包含相同的縮進空格數(官方建議縮進4個空格鍵,但不是一個tab鍵)。實例如下:

1 if True:
2     print ("True")
3 else:
4     print ("False")

以下代碼最後一行語句縮進數的空格數不一致,會導致運行錯誤:

1 if True:
2     print ("Answer")
3     print ("True")
4 else:
5     print ("Answer")
6   print ("False")    # 縮進不一致,會導致運行錯誤

以上程式由於縮進不一致,執行後會出現類似以下錯誤:

 File "test.py", line 6
    print ("False")    # 縮進不一致,會導致運行錯誤
                                      ^
IndentationError: unindent does not match any outer indentation level

 6,多行語句

Python 通常是一行寫完一條語句,但如果語句很長,我們可以使用反斜杠(\)來實現多行語句,例如:

1 total = item_one + \
2         item_two + \
3         item_three

在 [], {}, 或 () 中的多行語句,不需要使用反斜杠(\),例如:

1 total = ['item_one', 'item_two', 'item_three',
2         'item_four', 'item_five']

7,數據類型

後面文章重點介紹,請關註

8,字元串

  • python中單引號和雙引號使用完全相同。
  • 使用三引號('''或""")可以指定一個多行字元串。
  • 轉義符 '\'
  • 自然字元串, 通過在字元串前加r或R。 如 r"this is a line with \n" 則\n會顯示,並不是換行。
  • python允許處理unicode字元串,加首碼u或U, 如 u"this is an unicode string"。
  • 字元串是不可變的。
  • 按字面意義級聯字元串,如"this " "is " "string"會被自動轉換為this is string。

      例:

1 word = '字元串'
2 sentence = "這是一個句子。"
3 paragraph = """這是一個段落,
4 可以由多行組成"""

說明:在數據類型章節中有詳細介紹

9,空行 

函數之間或類的方法之間用空行分隔,表示一段新的代碼的開始。類和函數入口之間也用一行空行分隔,以突出函數入口的開始。

空行與代碼縮進不同,空行並不是Python語法的一部分。書寫時不插入空行,Python解釋器運行也不會出錯。但是空行的作用在於分隔兩段不同功能或含義的代碼,便於日後代碼的維護或重構。

記住:空行也是程式代碼的一部分。

10,輸出

print()在括弧中加上字元串,就可以向屏幕上輸出指定的文字。比如輸出'hello, world',用代碼實現如下:

1 >>> print('hello, world')

print()函數也可以接受多個字元串,用逗號“,”隔開,就可以連成一串輸出:

1 >>> print('The quick brown fox', 'jumps over', 'the lazy dog')
2 The quick brown fox jumps over the lazy dog

print()會依次列印每個字元串,遇到逗號“,”會輸出一個空格,因此,輸出的字元串是這樣拼起來的:

print-explain

print()也可以列印整數,或者計算結果:

1 >>> print(300)
2 300
3 >>> print(100 + 200)
4 300

因此,我們可以把計算100 + 200的結果列印得更漂亮一點:

1 >>> print('100 + 200 =', 100 + 200)
2 100 + 200 = 300

註意,對於100 + 200,Python解釋器自動計算出結果300,但是,'100 + 200 ='是字元串而非數學公式,Python把它視為字元串,請自行解釋上述列印結果。

print 預設輸出是換行的,如果要實現不換行需要在變數末尾加上 end=""

 1 #!/usr/bin/python3
 2 
 3 x="a"
 4 y="b"
 5 # 換行輸出
 6 print( x )
 7 print( y )
 8 
 9 print('---------')
10 # 不換行輸出
11 print( x, end=" " )
12 print( y, end=" " )
13 print()

以上實例執行結果為:

1 a
2 b
3 ---------
4 a b

 11,輸入

現在,你已經可以用print()輸出你想要的結果了。但是,如果要讓用戶從電腦輸入一些字元怎麼辦?Python提供了一個input(),可以讓用戶輸入字元串,並存放到一個變數里。比如輸入用戶的名字:

1 >>> name = input()
2 Michael

當你輸入name = input()並按下回車後,Python互動式命令行就在等待你的輸入了。這時,你可以輸入任意字元,然後按回車後完成輸入。

輸入完成後,不會有任何提示,Python互動式命令行又回到>>>狀態了。那我們剛纔輸入的內容到哪去了?答案是存放到name變數里了。可以直接輸入name查看變數內容:

1 >>> name
2 'Michael'

12,同一行顯示多條語句

Python可以在同一行中使用多條語句,語句之間使用分號(;)分割,以下是一個簡單的實例:

#!/usr/bin/python3

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

執行以上代碼,輸入結果為:

1 runoob

13,多個語句構成代碼組

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

像if、while、def和class這樣的複合語句,首行以關鍵字開始,以冒號( : )結束,該行之後的一行或多行代碼構成代碼組。

我們將首行及後面的代碼組稱為一個子句(clause)。

如下實例:

1 if expression : 
2    suite
3 elif expression : 
4    suite 
5 else : 
6    suite

14,import 與 from...import

在 python 用 import 或者 from...import 來導入相應的模塊。

將整個模塊(somemodule)導入,格式為: import somemodule

從某個模塊中導入某個函數,格式為: from somemodule import somefunction

從某個模塊中導入多個函數,格式為: from somemodule import firstfunc, secondfunc, thirdfunc

將某個模塊中的全部函數導入,格式為: from somemodule import *

導入 sys 模塊
1 import sys
2 print('================Python import mode==========================');
3 print ('命令行參數為:')
4 for i in sys.argv:
5     print (i)
6 print ('\n python 路徑為',sys.path)

 

導入 sys 模塊的 argv,path 成員
1 from sys import argv,path  #  導入特定的成員
2  
3 print('================python from import===================================')
4 print('path:',path) # 因為已經導入path成員,所以此處引用時不需要加sys.path

 

15,命令行參數

很多程式可以執行一些操作來查看一些基本信息,Python可以使用-h參數查看各參數幫助信息:

$ python -h
usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ...
Options and arguments (and corresponding environment variables):
-c cmd : program passed in as string (terminates option list)
-d     : debug output from parser (also PYTHONDEBUG=x)
-E     : ignore environment variables (such as PYTHONPATH)
-h     : print this help message and exit

[ etc. ]

我們在使用腳本形式執行 Python 時,可以接收命令行輸入的參數,具體使用可以參照 Python 3 命令行參數


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 前言 在使用tomcat時,經常會遇到連接數、線程數之類的配置問題,要真正理解這些概念,必須先瞭解Tomcat的連接器(Connector)。 在前面的文章 詳解Tomcat配置文件server.xml 中寫到過:Connector的主要功能,是接收連接請求,創建Request和Response對象 ...
  • 轉載請註明出處:http://www.cnblogs.com/Joanna-Yan/p/7804185.html 前面講到:Java IO編程全解(五)——AIO編程 為了防止由於對一些技術概念和術語的理解或者叫法不一致而引起歧義,這裡對涉及到的專業術語或者技術用語做下聲明:如果它們與其他一些地方的 ...
  • 三大特征:封裝,繼承,多態 多態:簡單的說就是用同樣的對象引用調用同樣的方法但是做了不同的事情。 抽象:抽象是將一類對象的共同特征總結出來構造類的過程 包裝,可以講基本類型當做對象來使用,抽象只關心對象有那些屬性和行為,而不關心這些行為的細節是什麼。 Integer:當數值在 128 127之間的時 ...
  • Shiro簡介 Apache Shiro是Java的一個安全框架,官網為shiro.apache.org,主要場景為控制登陸,判斷用戶是否有訪問某個功能的許可權等等。 Shiro的核心功能(入門知識,只介紹前兩個) 認證 授權 會話管理 加密 引入jar包和配置web.xml 引入Shiro對應的ja ...
  • Triangular Pastures POJ - 1948 sum表示木條的總長。a[i]表示第i根木條長度。ans[i][j][k]表示用前i條木條,擺成兩條長度分別為j和k的邊是否可能。 那麼ans[i][j][k]=ans[i-1][j-a[i]][k] || ans[i-1][j][k-a ...
  • 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 12 using namespace std; 13 const int... ...
  • Apple Tree POJ - 2486 題目大意:一棵點帶權有根樹,根節點為1。從根節點出發,走k步,求能收集的最大權值和。 樹形dp。複雜度可能是O(玄學),不會超過$O(nk^2)$。(反正這題不卡這個,考思想)參考 ans[i][j][0]表示i點以下共走j步,不回來,可能收集到最大的權值 ...
  • winMain中的參數: hinstance - 該參數為Windows 為應用程式生成的實例句柄。實例是用來跟蹤資源的指針。 hprevinstance 前一個實例,即程式的父親的程式實例。 ipcmdline - 命令行參數。 ncmdshow 指出如何打開程式的視窗。ncmdshow的值一般會 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...