Python程式設計入門——基礎語法詳解(經典)
今天小編給大家帶來Python程式設計入門——基礎語法詳解。溫馨提示: 亮點在最後!
在這裡還是要推薦下我自己建的Python開發學習群:301056051,群裡都是學Python開發的,如果你正在學習Python ,小編歡迎你加入,大家都是軟體開發黨,不定期分享乾貨(只有Python軟體開發相關的),包括我自己整理的一份最新的Python進階資料和高階開發教程,歡迎進階中和進想深入Python的小夥伴
一、基本概念
1.內建的變數型別:
Python是有變數型別的,而且會強制檢查變數型別。內建的變數型別有如下幾種:
#浮點
float_number = 2.3
#複數
complex_number = 1 + 5j
#整型
integer_number = 1
#list 序列
sample_list = [2,52,36,'abc']
#巢狀
sample_nest = [(2,4,6),{5:7,9:11,'key':[2,5]},6]
#dictionary 字典
sample_dic = {"key":value, 5:10}
#tuple 只讀的序列
sample_tuple = (3,9,"ab")
從上面的示例可以看出,python的變數無需宣告,可直接給變數賦值。
2.字串
python中宣告一個字串通常有三種方法,''、" "和''' ''',這三種方法在宣告普通字串時的效果是完全一樣的,區別在於字串本身中存在引號的情況,舉例如下:
word = 'good'
sentence = "hello world"
paragraph = '''good noon:"nice to meet you."'''
python中單行註釋採用#開頭。
#!/usr/bin/python
# First comment
print "Hello, world!"; # second comment
上述內容輸出:hello,Python!。註釋可以在語句或表示式行末。
多行註釋可採用三引號,比如:
'''This is a comment.
This is a comment, too.
This is a comment, too.
I said that already.'''
轉義符 '';
自然字串, 透過在字串前加r或R。 如 r"this is a line with " 則 會顯示,並不是換行。
python允許處理unicode字串,加字首u或U, 如 u"this is an unicode string"。
3.Python識別符號
在python裡,識別符號有字母、數字、下劃線組成。
在python中,所有識別符號可以包括英文、數字以及下劃線(_),但不能以數字開頭。
python中的識別符號是區分大小寫的。
以下劃線開頭的識別符號是有特殊意義的。以單下劃線開頭(_foo)的代表不能直接訪問的類屬性,需透過類提供的介面進行訪問,不能用"from xxx import *"而匯入;
以雙下劃線開頭的(__foo)代表類的私有成員;以雙下劃線開頭和結尾的(__foo__)代表python裡特殊方法專用的標識,如__init__()代表類的建構函式。
4.Python保留字元
下面的列表顯示了在Python中的保留字。這些保留字不能用作常數或變數,或任何其他識別符號名稱。
所有Python的關鍵字只包含小寫字母。
5.行和縮排
學習Python與其他語言最大的區別就是,Python的程式碼塊不使用大括號({})來控制類,函式以及其他邏輯判斷。python最具特色的就是用縮排來寫模組。
縮排的空白數量是可變的,但是所有程式碼塊語句必須包含相同的縮排空白數量,這個必須嚴格執行。如下所示:
if True:
print "True"
else :
print "False"
上述,if與else的縮排空白數量相同。以下程式碼將會報錯:
if True:
print "Answer"
print "True"
else :
print "Answer"
print "False"
python中分號;標識一個邏輯行的結束,但是實際中一般每個物理行只寫一個邏輯行,可以避免使用分號。這樣書寫便於閱讀。注意:不要混合使用空格和製表符來縮排,因為在跨越不同的平臺時無法正常工作。
多個物理行中可以寫一個邏輯行,使用行連線符,如下:
s = "peter is
writing this article"
二、運算子與表示式
1. 運算子與其用法
2. 運算子優先順序(從低到高)
三.控制流
1. 條件語句
1.1 if語句
例子, 執行if語句內的程式
a = input("a:")
b = input("b:")
if (a > b):
print a, " > ", b
if else語句:
a = input("a:")
b = input("b:")
if (a > b):
print a, " > ", b
else :
print a, " < ", b
1.2 if…elif…else語句
例子:根據輸入的分數,輸出分數等級:
score = raw_input("score:")
score = int(score)
if (score > = 90) and (score < = 100):
print "A"
elif (score > = 80) and (score < 90):
print "B"
elif (score > = 60) and (score < 80):
print "C"
else :
print "D"
raw_input() 讀取輸入值。
1.3 if語句的巢狀
編寫條件語句時,應該儘量避免使用巢狀語句。巢狀語句不便於閱讀,而且可能會忽略一些可能性。
x = - 1
y = 99
if (x > = 0):
if (x > 0): #巢狀的if語句
y = 1
else :
y = 0
else :
y = - 1
print "y =", y
1.4 實現switch語句的功能
python中沒有switch特殊字,Python可以透過字典實現switch語句的功能。
實現方法分兩步。首先,定義一個字典。字典是由鍵值對組成的集合。其次,呼叫字典的get()獲取相應的表示式。
from __future__ import division
x = 1
y = 2
operator = "/"
result = {
"+" : x + y,
"-" : x - y,
"*" : x * y,
"/" : x / y
}
print result.get(operator)
輸出為0.5;
另一種使用switch分支語句的方案是建立一個switch類,處理程式的流程。
a) 建立一個switch類,該類繼承自Python的祖先類object。呼叫建構函式init( )初始化需要匹配的字串,並需要定義兩個成員變數value和fall。Value用於存放需要匹配的字串,fall用於記錄是否匹配成功,初始值為false,標識匹配不成功。如果匹配成功,程式往後執行。
b) 定義一個match( )方法,該方法用於用於匹配case子句。這裡需要考慮三種情況:首先是匹配成功的情況,其次是匹配失敗的預設case子句,最後是case子句中沒有使用break中斷的情況。
c) 重寫__iter__( )方法,定義該方法後才能使switch類用於迴圈語句中。__iter__( )呼叫match( )方法進行匹配。透過yield保留字,使函式可以在迴圈中迭代。此外,呼叫StopIteration異常中斷迴圈。
d) 編寫呼叫程式碼,在for…in…迴圈中使用switch類。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
class switch(object):
def __init__(self, value): # 初始化需要匹配的值value
self.value = value
self.fall = False # 如果匹配到的case語句中沒有break,則fall為true。
def __iter__(self):
yield self.match # 呼叫match方法 返回一個生成器
raise StopIteration # StopIteration 異常來判斷for迴圈是否結束
def match(self, * args): # 模擬case子句的方法
if self.fall or not args: # 如果fall為true,則繼續執行下面的case子句
# 或case子句沒有匹配項,則流轉到預設分支。
return True
elif self.value in args: # 匹配成功
self.fall = True
return True
else : # 匹配失敗
return False
operator = "+"
x = 1
y = 2
for case in switch(operator): # switch只能用於for in迴圈中
if case('+'):
print x + y
break
if case('-'):
print x - y
break
if case('*'):
print x * y
break
if case('/'):
print x / y
break
if case(): # 預設分支
print ""
2.while...語句
只要在一個條件為真的情況下,while語句允許你重複執行一塊語句。while語句是所謂 迴圈 語句的一個例子。while語句有一個可選的else從句。
while True:
pass
else :
pass
#else語句可選,當while為False時,else語句被執行。 pass是空語句。
3.for 迴圈
for i in range(0, 5):
print i
else :
pass
# 列印0到4
注:當for迴圈結束後執行else語句;range(a, b)返回一個序列,從a開始到b為止,但不包括b,range預設步長為1,可以指定步長,range(0,10,2);
四、函式
函式透過def定義。def關鍵字後跟函式的識別符號名稱,然後跟一對圓括號,括號之內可以包含一些變數名,該行以冒號結尾;接下來是一塊語句,即函式體。
def sumOf(a, b):
return a + b
4.1 區域性變數
在函式內定義的變數與函式外具有相同名稱的其他變數沒有任何關係,即變數名稱對於函式來說是區域性的。這稱為變數的作用域。global語句, 為定義在函式外的變數賦值時使用global語句。
def func():
global x
print "x is ", x
x = 1
x = 3
func()
print x
以上程式碼,輸出的結果為:
3
1
4.2 預設引數
透過使用預設引數可以使函式的一些引數是‘可選的’。
def say(msg, times = 1):
print msg * times
say("peter")
say("peter", 3)
注意: 只有在形參表末尾的那些引數可以有預設引數值,即不能在宣告函式形參的時候,先宣告有預設值的形參而後宣告沒有預設值的形參,只是因為賦給形參的值是根據位置而賦值的。
4.3 關鍵引數
如果某個函式有很多引數,而現在只想指定其中的部分,那麼可以透過命名為這些引數賦值(稱為‘關鍵引數’)。
優點:不必擔心引數的順序,使函式變的更加簡單;假設其他引數都有預設值,可以只給我們想要的那些引數賦值。
def func(a, b = 2, c = 3):
print "a is %s, b is %s, c is %s" % (a, b, c)
func(1) #輸出a is 1, b is 2, c is 3
func(1, 5) #輸出a is 1, b is 5, c is 3
func(1, c = 10) #輸出a is 1, b is 2, c is 10
func(c = 20, a = 30) #輸出a is 30, b is 2, c is 20
4.3 return語句
return語句用來從一個函式返回,即跳出函式。可從函式返回一個值。
沒有返回值的return語句等價於return None。None表示沒有任何東西的特殊型別。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31561003/viewspace-2284220/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python程式設計入門基礎語法詳解Python程式設計
- Python網路程式設計(基礎總結入門經典)Python程式設計
- JavaScript函數語言程式設計入門經典JavaScript函數程式設計
- C語言程式設計入門經典18個小程式C語言程式設計
- 程式語言入門經典案例【Python版】Python
- 【Python入門基礎】網路程式設計Python程式設計
- windows網路程式設計經典入門 (轉)Windows程式設計
- PL/SQL基礎語法入門SQL
- Python基礎入門_2基礎語法和變數型別Python變數型別
- 零基礎入門Python教程4節與基礎語法Python
- 【經典案例】Python詳解設計模式:策略模式Python設計模式
- Python基礎入門(6)- 物件導向程式設計Python物件程式設計
- Java入門之基礎程式設計Java程式設計
- 五道Python基礎語法面試題!Python入門Python面試題
- 經典書籍_java學習基礎程式設計篇Java程式設計
- [JAVAFX基礎]掃雷經典入門低配版Java
- C#基礎程式設計——簡介及基礎語法C#程式設計
- Bash程式設計基礎之語法和工具程式設計
- 好程式設計師Python培訓分享基礎入門Django程式設計師PythonDjango
- 【轉載】零基礎小白如何入門 Python 程式設計Python程式設計
- [轉載] 零基礎小白如何入門 Python 程式設計Python程式設計
- Python入門經典案例一Python
- C#程式設計基礎入門教程pdfC#程式設計
- Linux-shell程式設計入門基礎Linux程式設計
- 好程式設計師Python培訓分享Python入門基礎知識程式設計師Python
- Java-基礎語法19:網路程式設計Java程式設計
- Python程式設計入門:接地氣的決策樹演算法基礎講解Python程式設計演算法
- Gradle入門系列(一)——groovy基礎語法Gradle
- javascript快速入門7--ECMAScript語法基礎JavaScript
- Python基礎:語法基礎(3)Python
- Python 基礎語法Python
- Python基礎語法Python
- 詳細講解DirectDraw程式設計基礎(轉)程式設計
- python函數語言程式設計詳解Python函數程式設計
- Python函數語言程式設計入門教程Python函數程式設計
- 分享9條經典的程式設計語錄程式設計
- Python程式設計入門Python程式設計
- Java程式設計複習提綱(上:入門語法)Java程式設計