Python語法基礎

python屬於解釋型語言。根據python的書寫順序來介紹,python作爲一個腳本語言可以直接通過支持python環境的terminal通過命令進入python編譯環境,也可以通過編寫後綴爲.py的py執行文件(後綴並非一定,也可沒有後綴)實現編譯運行。

python基礎語法分如下幾個部分介紹:python文件結構,python註釋,python關鍵字,python變量等。

python文件結構

和一般的語言類似,python文件也被區分成幾個較爲明顯的部分,每個部分都負責自己需要做的工作,從而達到完美編譯運行python文件的目的。簡單區分可以將python分爲如下三個部分:

  • Executable Python Scripts 和 magic comment

可執行的腳本(Executable Python Scripts),主要是使用在類BSD的Unix系統中,爲了讓python腳本可以直接運行而非通過python命令制定文件運行(如同shell腳本一樣直接運行),需要添加一行聲明註釋,並將py文件添加可執行權限(x),即可直接運行該py文件,其聲明如下(該行存在的話一般位於py首行):

#!/usr/bin/env python

魔法註釋(magic comment),主要是用於對python文件的源碼進行編譯的編碼設置,默認採用的ASCII編碼,若需要聲明成utf-8或其他類型編碼則需要添加此註釋。基本格式如下:

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

該行在如上對py的聲明不存在時放在首行,否則一般放在第二行.一般完整的寫法如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
  • 導入模塊

對於py來說,我們需要使用系統或者三方的某些功能的話,就需要讓其功能模塊和該py文件建立聯繫或者說是一個簡易的依賴引用的關係。和其他語言類型,python可以使用import關鍵字引入需要使用的模塊,同時可以通過”,”將多個模塊同時導入。除此之外,python還可以通過from關鍵字導入模塊的部分數據(變量,方法等).

需要注意的是使用import導入的部分需要通過導入的模塊名應用獲取數據,而通過from導入的數據可以直接如同在模塊內部使用一樣直接調用,如下示例:

#import導入格式
import sys #導入單個模塊
import sys,math,cmath #導入多個模塊

#from導入格式
import sys import * #導入所有的數據
import sys import path #導入sys中的變量path



#import 導入的使用
import math

if __name__ =="":
    number=45.67
    print "number去除小數:",math.floor(number)



#from 導入使用
from math import floor

if __name__ =="":
    number=45.67
    print "number去除小數:",floor(number)

如上,“#”爲python 中註釋開始符號,稍後會詳細介紹.使用from導入模塊時需要特別注意避免重複的問題。

  • 代碼部分

代碼部分放在如上兩個部分的底部,python代碼的格式是高度的敏感代碼的格式的,通過空格來對代碼的層次進行劃分,通過代碼的縮排來區分代碼塊。一般的對於執行一個py文件,代碼通過順序執行代碼,一般的我們可以通過判斷python的自有變量“name”來判斷該py當前的運行環境是屬於主程序運行還是輸入導入的模塊(主程序運行的話該變量值爲固定”main“,若是導入的模塊的話,其值爲該模塊的名字),如:

#!/usr/bin/env python
# -*-encoding:utf-8 -*-
import sys

def main():
    pass


if __name__ == '__main__':
  main() #通過這裏控制模塊的測試代碼.

Python註釋和標準輸入輸出

python中的註釋通過”#”實現,python中以“#”號開頭的右邊的所有的內容都會被忽略,於代碼的運行不產生任何影響。如下:

name="hfcai"  #用戶名

python中的標準輸入輸出有多種方式,python的輸出可以分爲三種種方式:一個是標準化的通過print打印輸出,也可以是一個表達式返回輸入,或者通過文本寫入的方式輸入.

比較簡單的是表達式返回輸出和print語句(也可以理解爲方法)打印輸入。但有所不同的是,表達式返回輸入一般存在於python執行環境,而print打印輸出輸入標準的輸出接口返回,比較明顯的是,表達式類型的輸出只有我們通過控制檯進入python環境纔會輸出,而單獨運行python文件並不會產生輸出內容.如下:

#表達式輸出
hfcai@ubuntu:~/Desktop$ python
Python 2.7.6 (default, Oct 26 2016, 20:30:19)
[GCC 4.8.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> "test"
'test'
>>>



#print輸出

#!/usr/bin/env python
# -*- encoding:utf-8 -*-

print "test"

#執行
hfcai@ubuntu:~/Desktop$python test.py
test

python 的輸入方式有很多中,常見的有通過系統的輸入函數提示人工輸入類似於C中的scanf函數,還有通過運行py文件附帶參數輸入,讀取文件等方式,如下介紹系統輸入函數。使用如下:

#input輸入
age=input("How old are you ?")
print "your are %s years old." % age

#結果

How old are you ?12
your are 12 years old.

How old are you ?12*2
your are 24 years old.


How old are you ?"abc"
your are abc years old.


How old are you ?abc
Traceback (most recent call last):
  File "/home/hfcai/Projects/PythonProjects/pythonNotes/exercises/basics/basics_struct.md.py", line 13, in <module>
    age = input("How old are you ?")
  File "<string>", line 1, in <module>
NameError: name 'abc' is not defined

Process finished with exit code 1




#raw_input輸入
raw_str=raw_input("get raw_input:")
print raw_str

#結果
get raw_input:23+76
23+76

get raw_input:abc
abc



如上,可以看出,raw_input將輸入內容看成string,返回輸入所有內容,input將輸入內容識別爲表達式,當輸入字符串的話則需要輸入字符串的定義。

Python 變量

python中可以簡單的將基本變量類型非爲數字類型(包括int,float等)和字符串類型,python中對於變量的賦值較爲簡單,並不需要申明變量的類型,python會自動識別,變量賦值語句如下:

param=1
param1=1.9
param2="character."
  • 數字

python中支持浮點型數據,整數和浮點型數據的計算會被轉換爲浮點型

>>> print 1.2*2
2.4
  • 字符串
    python 中的字符串可以通過單引號’test’,雙引號“test”,或者三對單引號或三對雙引號跨行表示。

a='Traceback a'
b="hacker"
c='''
name:hfcai
sex:man
age:25
'''

python 關鍵字

python關鍵字可以通過導入python中的keyword模塊查看,如下:

import keyword
print 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']

列表、元組、字典

list,tupple,dict這是python中較爲常見的數據集合,每種的使用場景有差異不同

  • list(列表)

列表是一組有序項目的集合。可變的數據類型,以方括號“[]”表示的數據集合,不同成員以“,”分隔。列表中可以包含任何數據類型(包括列表等數據類型)。如下:

list = ['testa', 'bbb', 123433, 40.6]
   a = ['test', 'a', 999]

   print list
   list[3] = 3
   a.append("bb") #追加一個變量
   a.pop()     #移除地一個變量
   a.count("a") #統計變量出現的次數
   list.extend(a) #追加列表
   print list[2:3]  # 分片操作
   index=list.index(a) #檢索位置
   a.insert(2,12) #向‘2’位置添加一個參數12
   print list + a
   print list * 2

  • tupple(元組)

元組是由一組有序不可變集合。以“()”表示的數據集合,其餘特性基本與列表一致。

#tupple
tuple = ('tupple top',123,23.45,'tupple end')
t2 = (123.4,45,'tt',109)
print tuple
print t2
print  tuple[:4]

#tuple[3]=3  //該操作無效,元組不允許修改更新
print tuple * 2
print tuple+t2
  • dict(字典)

Dictionary無序(類似與Java中的map,通過key-value方式存儲),格式通過{key:value,….}賦值。和json數據格式很相像.

#dictionary
dict = {'key1':'value1','key2':23,2:"gg"}

print dict
#print dict[0] //這種操作是不合法的
print dict[2]
print dict.keys()
print dict.values()
dict2=dict.copy()
print dict2

編碼風格

每個語言都有自己的編碼風格,爲了方便理解,爲了統一格式,python的編碼風格,官網給了一個標準的編碼風格指南PEP 8,如下文python文檔中給出的一些指導性的建議:

  • 使用4空格(space)縮進,不使用製表符(Tab鍵)

  • 儘量保證每行的字符數目不超過79個,有助於閱讀

  • 使用空行分離各個部分代碼塊(類和函數等)

  • 註釋儘量單獨一行

  • 添加文檔描述,文檔註解

  • 運算符和符號左右用空格分離

  • 保持名和函數的命名一致:通常是使用駝峯命名法命名類,使用下劃線小寫字母命名函數和方法。始終使用self作爲方法的第一個參數的名稱

Enjoytoday

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章