python程式設計加油 python如何學習(二)

2021-10-12 11:49:13 字數 3564 閱讀 9665

最近開始整理python的資料,博主建立了乙個qq群,希望給大家提供乙個交流的同平台 78486745 。

一、程式設計開發規範

作為一門開發語言,python自然也有自己的程式設計規範,以下是特有且必須遵循的規範:

**開頭

python中**必須頂格編寫,除非被作為語句巢狀在條件判斷或條件迴圈中。

**層級

**與**之間的邏輯層級關係(涉及邏輯判斷、包含關係等情況)通過空格來界定,第一層頂格編寫,第二層(被包含或者邏輯判斷後的執行動作)開頭預留4個空格(如果不考慮跨平台可以使用tab)

對齊方式

同乙個層級的**必須嚴格對齊,如第一層都是頂格,第二層都是4個空格開頭,第三層則是8個空格,以此類推。

注釋單行注釋用#開頭,單獨一行作為注釋或者在**後面通過#跟上注釋均可,多行注釋在首尾處用成對的三引號引用即可,可以是成對的三個單引號或者三個雙引號。

**塊if邏輯判斷和for迴圈條件後面均以冒號結尾,然後通過4個空格開始下一層級的實際執行動作語句編寫。這部分在冒號後面接上的語句稱為**塊。

程式命名

編寫的python程式必須以.py結尾。

專案規範

啟動乙個專案開發時先在開發工具中建立project,然後根據需要建立目錄,最後在目錄下建立當前活動的py程式。

二、變數

python中的變數也用於儲存臨時值以便後續靈活呼叫,在定義時只能使用字母、數字、下劃線的任意組合,且不能以數字開頭,不能以python內建的關鍵字來命名變數(如and,import,global,finally等,有待後續學習加深印象)。對變數進行字串型別的賦值時,字串需要用成對的引號引起來,可以是單引號、雙引號或者三引號。

建議通過以下兩種形式來定義較為複雜的變數,便於閱讀:

駝峰體下劃線

三、字元編碼

字元編碼經歷了ascii碼->unicode->utf-8的演變過程,python 2.x預設使用ascii編碼,而3.x預設使用utf-8編碼。由於字元編碼事關重大,一言不合就會導致亂碼,因此強烈建議統一使用萬用的utf-8編碼。怎麼使用呢?

程式開頭明確顯式定義

#!/usr/bin/env python

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

windows下程式設計可忽略第一行,但為了保留移植性建議始終宣告變數。

在程式直譯器中選擇utf-8字元編碼

以上兩個條件缺一不可,雖然python 3.x版本預設使用utf-8編碼,但還是建議在程式中宣告編碼格式。

以上是結果,下面談談為什麼強烈建議使用urf-8編碼,以及為什麼utf-8編碼就可以通吃。

最早就只有包括所有字母的大小寫、數字、必要的特殊符號等合計才127個字元被編碼到計算機裡,這個編碼就是ascii編碼。由於需要進行編碼的字元才有127個,因此用7個二進位制位就足以搞定了,但8個二進位制位才能構成乙個完整的位元組,因此索性用8個二進位制位來進行編碼,剩餘的一位只好浪費掉。所以ascci碼只占用乙個字元。

隨著計算機技術的推廣和普及,其他不以英語為官方語言的國家也開始使用計算機了。那麼現在問題來了,乙個位元組的8個bit位只能表示非常有限的字元(設計時只包括所有字母的大小寫、數字、必要的特殊符號,其中整數還不能超過255),既有的ascii編碼表裡沒有包含其他國家的語言字元,但顯然也沒法強迫全球都使用英語,於是各個國家開始進行本土化改良,設計能滿足自己國家需要的編碼,如國內的gb2312。這裡的改良涉及兩個要點,一是原有的乙個位元組的編碼空間要擴充為兩個位元組甚至更多,二是新的編碼還不能與既有的ascii編碼衝突,否則老美要跟你捉急了!你可以想象,中國搞定了一套,日本也搞定了一套,接著是南韓、越南等巴拉巴拉,大家都有自己的編碼標準,各自為政,遇到多語言混合使用的場景這編碼表還不炸開鍋,連同計算機一起傻掉!這時unicode應運而生。unicode把所有語言都統一到一套編碼裡,用兩個甚至更多的位元組來進行編碼(通常用兩個位元組,搞不定時再喊人加砝碼呀),這樣就不會再有亂碼問題了。

unicode搞定了多國語言亂碼和編碼統一的問題,但你會發現如果需要處理的內容全部是英文的話,用unicode編碼比ascii編碼需要多一倍的儲存空間,在儲存和傳輸上就不太經濟划算。ok,unicode的演進改良版utf-8就是來解決這個問題的。utf-8的優勢在於它使用「可變長編碼」,在繼續沿用ascii編碼基礎上來對1個位元組不能搞定的那些語言字元進行編碼設計,這樣英文還是用1個位元組,遇到中文就用3個或者更多的位元組來處理。這樣既可以保障空間和效能的最大化,還能兼顧老美的老巢和其他非英文的編碼相容問題,一舉三得!所以你會發現ascii其實是utf-8的子集,utf-8向下相容。

四、 python直譯器

python是一門解釋性語言,自然不能缺了直譯器(類似於jvm)。官方支援cpython、jpython、ironpython和pypy等,預設使用基於c語言實現的cpython。它也是最為廣泛使用的直譯器。程式執行時會把.py檔案轉換成.pyc位元組碼檔案,然後執行在python虛擬機器上。

五、構建python的開發環境

構建好包括直譯器(虛擬機器)和開發工具ide在內的python的開發環境才便於展開程式開發之旅。

六、模組初識

python內建了很多模組,同時也可以自定義編寫一些好玩的模組,使用模組時需要通過關鍵字import匯入。匯入後python會從系統變數的路徑中從前往後一次查詢,首次成功查詢匹配後不再進行後續查詢。因此如果需要使用自定義模組,需要特別關注自定義模組的存放位置,底線是只存放在系統變數的乙個路徑下,否則可能得到意外的結果。

七、使用者輸入和格式化輸出

使用者輸入通過input來實現,示例如下:

yourname=input("please input you name here: ")

簡單的輸出通過print來實現,示例如下:

print("hi,", yourname) #呼叫輸出上面使用者輸入的變數yourname

注意:3.x版本中input預設接收使用者輸入的型別為字串,如果需要使用其他的資料型別則需要進行轉換,如 userage=int(input("please input your name:"))

print輸出中可以接上轉義符號\來實現更多的輸出顯示效果,如 \n表示換行,\t為製表符。

print的使用高階——字串的格式化輸出:

python中,對字串進行格式化輸出與c語言是相同的,即借助%來實現。%s表示與字串替換,%d表示用整數替換,%f表示用浮點數替換,如果輸出的字串中本身就需要%(比如輸出比率),則需要用連續的兩個%%來輸出%。

示例程式如下:

#!/usr/bin/env python

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

print ("your name is %s" %"bob")

print ("your age is %d" %21)

print ("your name is %s,age is %d" %("bob",21))

從以上示例程式可看出,利用print進行格式化輸出的基本格式是在需要替換輸出的位置用%s,%d等佔位符,然後在後面通過%來接上實際替換後需要輸出的內容,如果需要替換輸出的元素不止乙個,則需要在%後面通過一對圓括號把實際替換後需要輸出的內容包含進來,同時在每個元素之間用逗號隔開。

八、python的執行邏輯

python的執行工作邏輯如下:

記憶體載入**->語法分析->直譯器載入->生成位元組碼->執行位元組碼->生成機器碼->cpu執行

python是高階動態程式語言 Python語言

python是一門跨平台 開源 免費的解釋型高階動態程式語言。python支援命令式程式設計 how to do 函式式程式設計 what to do 完全支援物件導向程式設計,擁有大量擴充套件庫。膠水語言 可以把多種不同語言編寫的程式融合到一起實現無縫拼接,更好地發揮不同語言和工具的優勢,滿足不同...

Python程式設計學習第十二課之Python的注釋

當我們編寫的程式 量很大,而且內部邏輯關係非常複雜的時候,閱讀 是非常吃力的。所以我們的程式設計師寧願自己重新寫 也不願意去熟悉別人的 那麼,實際編寫 的過程之中,對 加筆記說明就顯得尤為重要了。在這裡,針對 的筆記被稱為注釋。在之前的幾節課裡面,我們已經不止一次用過注釋了,如下圖所示,以 符號開頭...

python元程式設計運用 深入淺出Python元程式設計

python 官方教程 的開頭是這樣寫的 python 是一門既容易上手又強大的程式語言。這句話本身並無大礙,但需要注意的是,正因為它既好學又好用,所以很多python程式設計師只用到了其強大功能的一小部分。只需要幾個小時,經驗豐富的程式設計師就能學會用 python 寫出實用的程式。然而隨著這最初...