Python 入門:基本文法,python基本文法

來源:互聯網
上載者:User

Python 入門:基本文法,python基本文法

對於多數從其他程式設計語言轉入Python的來說,或多或少會有些不習慣。如果沿用其他程式設計語言的文法來寫Python代碼,那麼碰壁是不可避免的了。

本文是基於我看了兩個小時的官方文檔(Python 2.7 : https://docs.python.org/2/tutorial/index.html , 至於我學習Python2.x的原因:工作需要),

從中提取的重要的細節,以避免再次踩坑。

 

先上一個Python檔案(Foo.py):

#!python#-*- coding: utf-8 -*-'''python 的注釋:    多行注釋: 用成對的3個單引號或者3個雙引號組成 (例如當前位置)    單行注釋:使用#'''# 定義一個foo函數,用於把指定msg列印 count次"""    params:        count: int, 列印的次數        msg: string,訊息內容        useFor:多次列印時,是否採用for loop。    raise:        ValueError : 當count<0時拋出"""def foo(count=1, msg='Hello'+' '+ "Foo", useFor=1):    if count < 0 :        raise ValueError('count < 0')    if useFor : # 0,1 可以用作bool判定        print("print use for, count = " + bytes(count) +" :")        for i in range(count):    # range(N),會產生一個從0到N的list,恰好可以用作索引            print(msg+' '+bytes(i))    else:        print("print use while, count = " + bytes(count)+" :")        i = 0        while i < count:            print(msg+" "+bytes(i))            i+=1    # python中不支援 i++的寫法,支援 i+= 的寫法if __name__ == '__main__' :     print('main in Foo.py')    foo(2,useFor=1)    foo(useFor=0, count=3);    foo(-1)    

 

  • 檔案頭
    • 指定檔案解譯器
    • 指定檔案編碼
  • 注釋
  • 代碼塊,縮排
  • 基礎資料型別 (Elementary Data Type)
    • string
    • number
    • boolean
  • 控制語句
    • if, elif, else
    • loop : for, while
  • 程式入口:main 函數

 

1、檔案頭

作為一個指令碼語言,檔案頭指定一些執行環境等,是很常見的事情。在shell中就很常見的。

那麼對於Python指令碼,也有同樣的內容:

1.1 指定解譯器

指令碼語言,很常見的配置:

#!/bin/sh           shell指令碼#!/usr/bin/perl     perl指令碼#!/usr/bin/python   python指令碼#!/usr/bin/python3  python3指令碼#!/usr/bin/python2  python2指令碼而有時不太清楚指令碼解譯器的具體全路徑名;或者開發環境與運行環境的安裝路徑不同。為了保證相容性,也可以寫作:#!/usr/bin/env python3
這樣運行時會自動搜尋指令碼解譯器的絕對路徑。
1.2 指定檔案編碼

py檔案的預設編碼是ASCII,上面的指令碼中很多都是ASCII不支援的,那麼需要指定檔案編碼。格式是:

#-*- coding: encoding -*-

 

2、注釋

 python 的注釋:

    多行注釋: 用成對的3個單引號或者3個雙引號組成 (例如當前位置)    單行注釋:使用#

3、代碼塊,縮排

代碼塊:從上面的Foo.py檔案中,很容易可以看出,代碼塊是以 冒號 : 開始的。不論是function定義,if,else,還是loop(for, while)

都是用 : 作為代碼塊的開始。不是用 { } 來包括代碼塊的。

縮排:Python的程式中,不是用 { } 來包括代碼塊的,用縮排來維持代碼塊的。不是不要寫 tab,用4個空格為縮排。

 

4、基礎資料型別 (Elementary Data Type)4.1 String4.2 Number4.3 Boolean

類似於JavaScript,Python的boolean也是多變的。

以下幾種情況是false:
1.None
2.False
3.任何類型的數字0,包括0,0.0,0L,0j
4.空的序列(sequence)或者映射(mapping)類型對象
5.對於使用者自訂類型的對象,如果其類定義了__nonzero__() 或者 __len__()特殊方法並且返回False或者0

對於最後一條規則,有幾點需要說明:
1.如果類沒有定義這兩個方法中的任何一個,則這種類型的對象真值測試時總是為True
2.如果類同時定義了__nonzero__() 和 __len__(),只會參考__nonzero__()的傳回值

 

以下幾種情況是false:1.None2.False3.任何類型的數字0,包括0,0.0,0L,0j4.空的序列(sequence)或者映射(mapping)類型對象5.對於使用者自訂類型的對象,如果其類定義了__nonzero__() 或者 __len__()特殊方法並且返回False或者0
對於最後一條規則,有幾點需要說明:1.如果類沒有定義這兩個方法中的任何一個,則這種類型的對象真值測試時總是為True2.如果類同時定義了__nonzero__() 和 __len__(),只會參考__nonzero__()的傳回值

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.