Python基本語法V1.5

2021-02-20 同福編程
1. 介紹
1.1 介紹

Python這種腳本語言福哥已經給大家介紹過了,現在童鞋們應該已經會安裝python的開發環境了,接下來我們需要針對python語言進行一個系統的學習。

首先學習一門程式語言最先要學習的是語言的語法,學習程式語言的語法包括常量與變量、輸入與輸出、條件語句(if)、循環語句(for,while)、交換語句(switch,case)、函數(function)、對象(class),這個和之前福哥帶著童鞋們接觸c/c++、java、php三種主流程式語言的基本語法的順序是一樣的。不過學習過c/c++、java、php語言的老鳥會有一種感覺,就是python的語法真BT啊~~

V1.5版本增加了如下內容的教程:

函數參數默認值的使用

對象類型屬性和數組類型屬性的坑

拋出異常語句的技巧

2. 基本語法

一行一個命令,不需要以「;」結尾

邏輯語句使用4個空格縮進,使用邏輯語句的時候,例如:if、for、try等等,需要將子邏輯代碼每一行都使用4個空格縮進一下

行注釋使用「#」,如果要為代碼寫注釋信息,需要使用「#」符號

塊注釋是不支持的,python並不支持其他語言都支持的「/* ... */」塊注釋語法

3. 常量與變量3.1 變量定義

python屬於弱類型的語言,所以python的變量是沒有類型的

whoAmI = "同福"howOldAmI = 35

3.2 類型轉換

雖然python是弱類型,但是字符串和數字也是要區別對待的(這一點php就做的比較徹底,各種類型的變量可以隨便混用)

strInt = "35"realInt = int(strInt)
realInt = 35strInt = str(realInt)

3.3 null

在python裡是沒有null的,取而代之是None,當函數處理異常時候一般情況下得到的都是None。判斷None需要使用is關鍵字而不是「==」運算符

4. 輸入與輸出4.1 輸入

python2輸入不能使用input()了,需要引入sys軟體包,使用sys.stdin對象

import sys
print ("你叫什麼?")yourName = sys.stdin.readline().strip()print ("你多大了?")howOldAreYou = sys.stdin.readline().strip()
print ("你是" + yourName + ",你今年" + howOldAreYou + "歲")

4.2 輸出

python輸出語句使用 print 命令

whoAmI = "同福"howOldAmI = 35 
print ("我叫" + whoAmI + ",我今年" + str(howOldAmI) + "歲")

5. 條件語句(if)

python的條件語句還是使用if,這時候就需要「縮進」了

python的else if換成了elif,這個和linux下的shell語言是一樣的

whoAmI = "同福"howOldAmI = 35if whoAmI is not None and whoAmI != "":    print whoAmIif howOldAmI is not None and howOldAmI == 35:    print howOldAmI    if howOldAmI == 12:    print "好年輕啊!"elif howOldAmI == 25:    print "好帥啊!"else:    print "你到底多大啊?"

6. 循環語句(for,while)6.1 按次循環

python的按次循環很奇怪,需要通過range實現

howOldAmI = 0for i in range(0, 35):    howOldAmI = howOldAmI + 1print howOldAmI

6.2 條件循環

python的條件循環基本和其他語言相似

howOldAmI = 0i = 0while i < 35:    howOldAmI = howOldAmI + 1    i = i + 1print howOldAmI

7. 交換語句(switch,case)

python沒有switch語法,只能使用if、elif、else實現了

8. 函數(function)

函數定義使用def關鍵字

8.1 無返回值

無返回值的函數定義

def showInfo():    print "同福"    print 35
showInfo()

8.2 有返回值

有返回值的函數定義,返回值使用return關鍵字返回出來

def getName():        return "同福"
def getAge():
return 35;
print ("我叫" + getName() + ",我今年" + str(getAge()) + "歲")

8.3 有參數

有參數的函數定義

def showInfo(name, age):    print ("我叫" + name + ",我今年" + str(age) + "歲")
showInfo("同福", 35)

8.4 有默認值參數

函數參數可以指定默認值,有默認值的參數在調用的時候可以不傳值進來

def showInfo(name, age=35):    print ("我叫" + name + ",我今年" + str(age) + "歲")
showInfo("同福")

需要注意的是,如果一個參數設置了默認值,其後面的參數也都必須設置默認值,否則會報錯

def showInfo(name, age=35, city):    print ("我叫" + name + ",我今年" + str(age) + "歲,我住在" + city)
showInfo("同福", "北京")

8.5 參數定向傳值

Python有個很NB的設計,如果函數有多個參數設置了默認值,可以通過指定設置了默認值的參數的名稱來直接對其傳值,即使它前面還有其他設置了默認值的參數

def showInfo(name, age=35, city="未知"):    print ("我叫" + name + ",我今年" + str(age) + "歲,我住在" + city)
showInfo("同福", city="北京")

9. 對象(class)

python的對象定義語法逆天了簡直

9.1 基本語法

咱們看一個例子先

class fuge:    name = "同福"    age = 35
def setName(self, name): self.name = name def setAge(self, age): self.age = age def showInfo(self, num): print ("[" + str(num) + "] 我叫" + self.name + ",我今年" + str(self.age) + "歲") def callShowInfo(self): self.showInfo(6)

myFuge = fuge()myFuge2 = fuge();myFuge.showInfo(1)myFuge2.setName("福哥")myFuge2.setAge(36)myFuge.showInfo(2)myFuge2.showInfo(3)myFuge.callShowInfo()

大家可以和福哥一塊兒看看python的對象編程有多麼另類

對象聲明使用class(這還是比較正規的)

屬性聲明沒有修飾符(這也還能接受)

方法聲明使用def(把它想成function就好)

每個方法必須有參數,且第一個參數為指向對象自身的指針(我去這是什麼鬼!?)

方法內調用屬性使用對象指針(這個...好吧,真能糊弄啊~)

方法內調用其他方法使用對象指針,且不能傳遞對象指針參數(福哥已經無語了!!)

9.2 對象屬性和數組屬性的坑

python的對象屬性真的是坑你沒商量,請看下面的例子和輸出結果

class webDev:    languages={}
def add(self, language): self.languages[language] = language
def dump(self, num): print ("[" + str(num) + "]") for d in self.languages: print ("[" + d +"] " + self.languages[d])
web1 = webDev()web1.add("PHP")
web2 = webDev()web2.add("Java")
web1.dump(1)web2.dump(2)

我勒個去,兩個對象實例的languages屬性串了,這是什麼鬼啊???

如果對象屬性是對象類型或者數組類型,那麼這個屬性相對於每一個實例都是共享的

這實在是太變態了,希望官方把它當作bug處理一下吧~~

下面福哥給出一個變通的辦法,可以避免這種bug的出現。

如果我們要使用對象類型的屬性或者數組類型的屬性,可以在構造器裡面進行初始化

class webDev:    languages={}        def __init__(self):        self.languages={}
def add(self, language): self.languages[language] = language
def dump(self, num): print ("[" + str(num) + "]") for d in self.languages: print ("[" + d +"] " + self.languages[d])
web1 = webDev()web1.add("PHP")
web2 = webDev()web2.add("Java")
web1.dump(1)web2.dump(2)

10. 捕獲異常語句(try)

很多時候我們所期望的情況和實際的情況是有差距的,這個時候會出現意想不到的情況,這種情況我們稱之為異常情況(exception),一般情況下,遇到這種情況程序會終止執行,這不是我們所希望的

為了解決這個問題,我們可以使用try語句去嘗試執行我們的程序代碼,如果出現了異常我們可以主動設計程序的處理方案,避免程序終止執行

try:    print (fuge + ",是你嗎?")except Exception as e:    print efinally:    print "哦,我知道了"

解釋一下

try:這部分代碼是主邏輯,python會嘗試運行這段代碼

except:如果主邏輯執行出現異常情況會將異常信息捕獲起來放入變量e,並執行用戶的處理方案

finally(可選):無論主邏輯執行是否出現異常情況,這段代碼都會被執行,這段是可選的

11. 拋出異常語句(raise)

一些情況下,我們的程序無法繼續處理,這時候就需要告知上一層的程序代碼程序運行遇到了問題。這種情況下,我們可以使用raise語句主動拋出一個異常狀態出來,交給上一層的程序代碼去處理

上一層程序代碼也就是調用當前函數的程序代碼,它接收到我們拋出來的異常可以通過try進行捕獲,也可以不管這個異常,那麼python解析器就會把這個異常顯示給執行腳本的人看了

def showInfo(name, age):    if age == 0:
raise Exception("沒有人的歲數是 0 歲好嗎?") print ("我叫" + name + ",我今年" + str(age) + "歲")
showInfo("同福", 0)

12. 引用自定義包

我們編程python程序時候,在將公共處理封裝到函數裡面或者對象裡面,這樣業務邏輯代碼會看起來非常清爽。如果一些函數或者對象是屬於公共的,多處都需要使用這些函數或者對象,那麼應該怎麼辦呢?

我們可以將一些函數或者對象放到一個py文件裡,在需要調用這些函數或者對象的py文件裡面引用它們

12.1 同級目錄

如果引入的自定義(package)的py文件和調用(main)的py文件在同一級目錄下,可以直接引入這個自定義(package)的py文件

12.1.1 結構

package.py
main.py

12.1.2 main.py12.2 不同級目錄

如果引入的自定義(package)的py文件在調用(main)的py文件不在同一級目錄下,需要在自定義(package)的py文件所在目錄建立空文件__init__.py文件

12.2.1 結構

lib/__init__.py
lib/package.py
main.py

12.2.2 main.py
from lib.package import *

13. 總結

python的語法很奇怪,與常規的程式語言的語法格式區別很大,但是就沒有學會編程的人首次接觸python的時候,他們的反饋是:感覺很容易理解。不得不說,這一點真的是始料不及的,這個python語言的語法確實值得我們這些古董級的程式設計師反思一下。

福哥嘗試著用最容易理解的方式給童鞋們講解各種程式語言的語法和開發技巧,希望童鞋們可以認真學習。如果遇到了問題,可以將真實的感受反饋給福哥,福哥會想辦法以更加好理解的方式講解給大家~~

Python函數參數默認值的使用

選擇一個開源協議來保護自己的程序代碼

免費看文章,自己學技術

每一篇文章都是福哥一個字一個字地敲出來的,都是福哥原創的。

每一篇文章都是經過了福哥的反覆驗證的,都是可以正常使用的。

相關焦點

  • Python 四大基本語法
    四大基本語法分別從變量命名規則、縮進原則、特殊關鍵字和特殊運算符四個方面,總結 Python 的基本語法。book_name self.book_store_count = book_store_count # 重寫加法操作 def __add__(self,book): return self.book_store_count + book.book_store_count# 創建兩個 Book 類的實例:python_intro_book
  • Linux下python入門之基本語法3
    前言前面兩篇文章我和大家一起學習了python入門的一些基本語法:注釋、空行、多行連字符、標識符、列印和行縮進的基本用法。今天我們再介紹幾種常用的語法:print的進階用法、等待用戶輸入、同一行顯示多條語句和多語句代碼組的用法。python使用基本語法1.print使用方法進階在前面的文章中,我們學習了print具有類似echo的功能,可以列印輸出。
  • python語法基礎
    學一門語言,基礎語法一定要紮實。很多入門的編程書籍,都會花大量的篇幅來介紹基礎語法,對於毫無編程經驗的新手而言,這樣的書籍無疑是很友好的,但是對於有編程經驗的開發者而言,很多的基礎語法是通用的, 只需花費較少的時間瀏覽下基礎語法,將精力集中在語言獨有的特徵上即可。
  • 慢步學習,備考二級python語言,程序的基本語法元素
    python程序的基本語法元素上一文簡單提及了二級python語言考試大綱及考試環境。現在開始進入考試內容的學習理解。程序的基本語法元素:程序格式框架、縮進、注釋、變量、命名、保留字、數據類型、賦值語句、引用。
  • 四、python編程基礎之循環語句:基本語法以及應用實例
    實驗目的:學習python的循環語句實驗環境:已正確安裝python3.51、循環語句的語法循環語句主要應用於多次有規律的重複操作,python中有兩種循環語句,(1)for...in循環的基本用法對一個可遍歷對象利用for循環進行遍歷輸出,其中range([strat,end,step])函數產生給定範圍的整數。
  • Python零基礎入門-03-Python基礎語法
    Python零基礎入門-03-Python基礎語法本節課的知識點:1,python系列教程的學習方法。2,熟悉Python的基礎語法內容。1,python系列課程學習方法由於python屬於腳本語言,如果單純的解釋語法沒有什麼實在的意義,所以我python系列的課程都是以視頻講解為主,至於這裡的文章,是給你複習用的。2. 基礎語法python的基礎語法都將以小例子作為驅動來講解。如果你有其他程式語言的基礎,那麼直接看文章就會很快上手。
  • Python教程基礎語法、變量基本使用和算術運算符
    元/斤· 買了 7.5 斤 蘋果· 計算付款金額```python定義蘋果價格變量price = 8.5定義購買重量>· 請重新計算購買金額```python定義蘋果價格變量price = 8.5定義購買重量weight = 7.5計算金額
  • python基礎語法(1)
    從今天起,將進行python的一個系列學習,從基本的語法學起,後期會推出一些關於web開發,網絡爬蟲以及用python的第三方庫進行數據挖掘與機器學習等高級的開發應用
  • Python語言基本語法元素之變量,變量的含義及命名規則
    筆者希望給python初學者提供幫助。上一篇文章寫了Python語言基本語法元素之格式框架:注釋、縮進、續行符這裡繼續,Python語言基本語法元素之變量。變量命名規則python採用 大寫字母、小寫字母、數字、下劃線和漢字 等字符及其組合進行命名。(Ab3_哈,是一個合法變量。但通常不建議用漢字,因為存在兼容性問題。)
  • python與c語言的語法有哪些不一樣的
    在眾多程式語言之中,想必很多人都聽說過Python和C語言,在進行編程學習之前,大家都會問:python和c語言的區別有哪些?我該如何選擇?接下來我們來看看吧。5、複雜度:在Python中,不需要聲明變量類型,而在C中,必須聲明變量類型;Python程序更易於學習、編寫和閱讀,C程序語法比Python難。目前國內高校計算機相關專業應該大部分都是以C語言作為入門語言來學習的,這套學習的路線已經維持了很多年了,當然也是有他的道理的。
  • python基礎學習教程:Python基礎語法
    在本章中我們將來學習 Python 的基礎語法,讓你快速學會 Python 編程。第一個 Python 程序交互式編程交互式編程不需要創建腳本文件,是通過 Python 解釋器的交互模式進來編寫代碼。其中三引號可以由多行組成,編寫多行文本的快捷語法,常用於文檔字符串,在文件的特定地點,被當做注釋。word = 'word'sentence = "這是一個句子。"paragraph = """這是一個段落。包含了多個語句"""Python注釋python中單行注釋採用 # 開頭。
  • Python函數的基本特徵詳解
    函數是python為了代碼最大程度的重用和最小化代碼冗餘而提供的最基本的程序結構。函數有關的內容主要分為函數的基本概念、作用域以及參數傳遞,還有一些相關的高級概念,如裝飾器。那這一節我們先學習函數的最基本用法吧首先我們先學習一下在python中如何去編寫一個函數。
  • python,語法簡單,容易上手,基本上教程看一遍就能用
    回想下matlab,他們的資料庫都是matlab自帶的,之後學習的時候coding語法也有點熟悉。那麼ai呢?他的基本不是語法上的,是mlinference的經驗,你們寫好的ide能幫助你打到自然語言編程。如果學習的時候就好好學習,以後不僅是你自己開源處理,而且很多公司都會求你分析。
  • Python語言基本語法元素之格式框架:注釋、縮進、續行符
    筆者希望自己對python編程知識的加工處理,能對讀者產生作用。這次寫些基礎概念,Python語言基本語法元素。縮進Python有一個很好的格式框架,得益於python通過縮減來劃分語句代碼塊。一次縮進可以通過4個空格或者Tab鍵來完成。在pycharm中,如果代碼需要縮進時,在你換行後就自動增加縮進了。
  • 給妹子講python-S01E17函數的基本特徵
    作者:醬油哥/ 清華程序猿       微信公眾號: python數據科學家 知乎專欄: 《給妹子講python》https://
  • Python基本語法與變量 - 米粒教育
    Python的語法和其它程式語言的語法有所不同,編寫Paython程序之前需要對語法有所了解,才能編寫規範的Python程序。本篇介紹Python標識符的同時,也討論了Python變量的聲明和賦值。通過本篇的學習,可以達成如下目標。
  • 小貼士:Markdown的基本語法
    諸位近來安好呀,爬蟲君又上線了~今天暖心的爬蟲君為大家總結了一些關於Markdown的基本語法,助各位在使用時得心應手,遊刃有餘~Markdown 是一種用來寫作的輕量級標記語言,相對於其他更為複雜的HTML標記語言來說,Markdown非常容易上手。它的語法簡單、兼容性強,還可導出多種格式,除了在編寫代碼的過程中可以使用外,還可用於日常的文檔編輯和排版。
  • Julia/Python/Matlab基本語法比較
    PythonMatlabJulia基本操作類型動態語言,在運行期間才去做數據類型檢查,因此無需指定數據類,在第一次賦值時會將數據類型記下動態語言,但可以指定類型,添加類型會顯著提高性能和系統穩定性值有類型,變量沒有類型整數使用方法:x=1
  • python自學 第二章 python語言基礎之語法特點(注釋、代碼縮進、編碼規範)
    python帶給我們的簡單、快樂!今天我們主要學習python基礎的語法特點。在python中,通常包含3種類型的注釋,分別為單行注釋、多行注釋和中文編碼聲明注釋。語法格式:2、多行注釋在python中,並沒有一個單獨的多行注釋標記,而是將包含在一對三引號(』』』...』』』)或者(」」」..」」」)之間,並且不屬於任何語句的內容都可視為注釋,這樣的代碼將被解釋器忽略。由於這樣的代碼可以分為多行編寫,所以也成為多行注釋。
  • Python基礎語法14個知識點大串講
    Python基礎語法大串講Python 是一門面向對象的程式語言,相信這篇文章對於初學者而言應該會有一個比較大的幫助,下面我們將 Python 中常用的基礎語法和函數做了一個匯總