1. 程式人生 > >Python基礎(上)

Python基礎(上)

else 一個 之一 可擴展 轉換 企業架構 引號 web應用開發 django

前言

正式開始Python之旅,主要學習內容專註在爬蟲人工智能領域,如Web開發之類將跳過不研究。

Python的意思是蟒蛇,源於作者Guido van Rossum(龜叔)喜歡的一部電視劇。所以現在開始暫時忘掉.NET忘掉C#,using幹什麽用的?不知道....

我只記得、我要玩蛇!!!

技術分享圖片

Python基礎概述

1.優點

簡單:Python是一種代表簡單主意的語言。Python這種偽代碼本質是它最大的優點之一,它使你能夠專註於解決問題而不是搞明白語言本身。

易學:Python極易上手,它有著極其簡單的語法,Python采用強制縮進的方式使得代碼具有極佳的可讀性。

免費、開源:Python是FLOS(自由/開放源碼軟件)之一。可以自由地發布這個軟件的拷貝、閱讀它的源碼、並改動它和閉源。

高層語言:無需關心內存方面的管理之類的底層細節。

跨平臺(可移植性):Python已經被移植在多個平臺,在任何平臺都可以在不修改源碼的情況下運行Python程序。

解釋性:Python程序不需要編譯成二進制碼,可以直接源代碼運行程序,在計算機內部,Python解釋器把源代碼轉換成字節碼的中間形式,再把它翻譯成計算機使用的機器語言運行。

面向對象:Python既支持面向過程編程也支持面向對象編程,相比其它語言如Java和C#相比,它以一種非常強大又簡單的方式實現面向對象編程。

可擴展性:如果需要關鍵代碼運行得更快或希望某些算法不公開,可以把這一部分使用C或C++編寫,然後在Python程序中使用它們。

豐富的庫:Python標準庫很龐大。

2.缺點

運行速度:如果對運行速度有要求的話,用C++改寫關鍵部分。

中文資源匱乏:入門資料多,高級內容還得看英文版。

架構選擇太多:沒有像C#這樣的官方.NET企業架構,

3.應用場景

Web應用開發:一些Web框架,如Django,TurboGears,web2py,Zope等,可以讓程序員輕松地開發和管理復雜Web程序。

操作系統管理、服務器運維和自動化腳本:在很多操作系統裏,Python是標準的系統組件。大多數Linux發行版和MacOS都集成了Python,可以在終端直接運行Python。Python能夠訪問Windows的COM服務及其它Windows API。使用IroPython,Python程序可以直接調用.Net Frameword。

科學計算:NumPySciPyMatplotlibPandas等,可以讓Python程序員編寫科學計算程序。

桌面軟件:PyQt,PySide,wxPython,PyGTK可以使用Python快速開發桌面應用程序。

服務器軟件:Python對於各種網絡協議的支持非常完美,因此常被用於編寫服務器軟件、網絡爬蟲、第三方庫Twisted支持異步網絡編程和多數標準的網絡協議,並且提供了多種工具,被廣泛用於編寫高性能的服務器軟件。

遊戲:很多遊戲使用C++編寫圖形顯示等高性能模塊,使用Python編寫遊戲的邏輯、服務器。

註釋

1.單行註釋

#開頭、#右邊的所有內容當作說明而非真正要執行的內容。

1 #我是單號註釋
2 print(‘Hello Jonins‘)

2.多行註釋

‘‘‘(3個單引號)開始以‘‘‘(3個單引號)結尾,中間的內容被當作說明。(也可以用3個雙引號""")

1 ‘‘‘
2 我是多行註釋
3 ‘‘‘
4 """
5 我是多行註釋
6 """
7 print(Hello Jonins)

中文支持

Python3支持中文,但在Python2中,程序只要包含中文,python2的解釋器不能識別所以會報錯,所以需要在程序的最開頭輸入如下代碼:

1 #conding=utf-8

還有一種寫法,是python的語法規範中推薦使用的:

1 #-*- conding:utf-8 -*-

完整的示例如下:

技術分享圖片

變量及類型

1.變量定義

python是一門弱類型語言,意味著不用強調變量的類型,在變量的定義前面不需要加變量的類型。

1 num1 = 10#num1在變量賦值的過程中自動賦值自己的類型
2 num2 = 20
3 total = num1+num2
4 print(total)

若想查看變量的類型,可以使用type(變量名):

1 num1 = 10
2 num1 = 1
3 print(type(num1))

技術分享圖片

2.變量類型

為了更充分的利用內存空間以及更高效的管理內存,變量有不同類型的,常用的數據類型如下:

技術分享圖片

標識符和關鍵字

標識符是我們自己定義的如:變量名、函數名等。

標識符只能由數字、字母和下劃線組成,並且數字不能在開頭

關鍵詞是python已經使用了的,具有特殊功能的標識符。python不允許開發者自己定義和關鍵詞相同名字的標識符。可以通過代碼查看python具有哪些關鍵詞:

import keyword
keys = keyword.kwlist;
print(keys)

大致有如下這些:

[False, None, True, and, as, assert, break, class, continue, def, del, elif, else, except, finally, for,
from, global, if, import, in, is, lambda, nonlocal, not, or, pass, raise, return, try, while, with, yield]

輸入(input)

1.Python2中輸入

python2中,獲取鍵盤輸入的數據的方式采用raw-input()函數,示例如下:

name=raw_input("請輸入姓名:")
print(name)

說明:

raw-input()的小括號中放入的是,提示信息,用來在獲取數據之前給用戶一個提示。

raw-input()在從鍵盤獲取到數據以後,會將數據存放到等號右邊的變量中。

raw-input()會把用戶輸入的任何值都作為字符串來存儲。

python2中的input()函數於raw_input()類似,但其接受的輸入必須是表達式(切換python2的交互窗口進行驗證)如下所示:

 1 >>> num=input()
 2 123#輸入123自動識別為int
 3 
 4 >>> num
 5 123
 6 >>> type(num)
 7 <type int>
 8 >>> str=input()
 9 jonins#輸入"或‘自動識別為string
10 
11 >>> str
12 jonins
13 >>> type(str)
14 <type str>
15 >>> num=input()
16 1+2+3#同類型可以相加
17 
18 >>> num
19 6
20 >>> str=input()
21 1010+jonsin#string同類型則會拼接
22 
23 >>> str
24 1010jonsin
25 >>>

2.Python3中輸入

python3中沒有raw_input()函數,只有input()並且python3中的input()功能與python2中的raw_inpu()功能一樣。

輸出(print)

1.普通輸出

1 print(hello jonins)
2 age=18
3 print(age)

2.格式化輸出

在程序中若想在輸出中給變量占位需要使用%號格式化輸出,如下所示

1 age=18
2 print(年齡是:%d已成年!%age)
3 name=jonins
4 print(姓名%s,年齡%d歲.%(name,age))

技術分享圖片

在程序,看到%這樣的操作符,就是python的格式化輸出

3.常用的格式符號

下面是完整的,可以與%符號配合使用的列表:

格式符號 轉換
%c 字符
%s 通過str()字符串轉換來的格式化
%i 有符號十進制整數
%d 有符號十進制整數
%u 無符號十進制整數
%o 八進制整數
%x 十六進制整數(小寫字母)
%X 十六進制整數(大寫字母)
%e 索引符號(小寫e)
%E 索引符號(大寫E)
%f 浮點實數
%g %f和%e的簡寫
%G %f和%E的簡寫

4.換行輸出

在輸出的時候,如果有\n那麽,此時\n後的內容會在另外一行顯示

1 print(姓名jonins\n年齡18歲)

技術分享圖片

運算符

1.算術運算符

技術分享圖片

註意:當算術的運算兩個對象不是同類型,也是可以計算的,結果會跟隨類型較大的對象。如:9/3.0 =3.0

2.賦值運算符

運算符=,為賦值運算符,作用是把等號右邊的結果給左邊的變量,示例如下:

1 a,b=1,3
2 print(a+b)
3 c,d=2.0,jonins
4 print(c)
5 print(d)

技術分享圖片

3.復合賦值運算符

運算符 描述 示例
+= 加法賦值 a+=b等效於a=a+b
-= 減法賦值 a-=b等效於a=a-b
*= 乘法賦值 a*=b等效於a=a*b
/= 除法賦值 a/=b等效於a=a/b
//= 取整除賦值 a//=b等效於a=a//b
%= 取余賦值 a%=b等效於a=a%b
**= 冪計算賦值 a**=b等效於a=a**b

數據類型轉換

技術分享圖片

示例

1 str=3
2 num=float(str)
3 print(num)

技術分享圖片

判斷語句(if&elif)

1.if-else語句

if-else的使用格式:

 1 if 條件:
 2     滿足條件時要做的事情1
 3     滿足條件時要做的事情2
 4     滿足條件時要做的事情3
 5     滿足條件時要做的事情4
 6     ...(省略)...
 7 else:
 8     不滿足條件時要做的事情1
 9     不滿足條件時要做的事情2
10     不滿足條件時要做的事情3
11     不滿足條件時要做的事情4
12     ...(省略)...

示例如下:

1 age=18
2 print(--------if判斷開始----------)
3 if age>=18:
4     print(已成年)
5     print(年齡是%i%age)
6 else:
7     print(未成年)
8     print(年齡是%i%age)
9 print(--------if判斷結束----------)

技術分享圖片

註意:代碼的縮進為一個tab鍵,或者4個空格。解釋器會將縮進的語句判定為滿足條件時執行的代碼。對應的C#代碼如下所示:

技術分享圖片
 1             int age = 18;
 2             Console.WriteLine("--------if判斷開始----------");
 3             if (age >= 18)
 4             {
 5                 Console.WriteLine("已成年");
 6                 Console.WriteLine($"年齡是{age}");
 7             }
 8             else
 9             {
10                 Console.WriteLine("未成年");
11                 Console.WriteLine($"年齡是{age}");
12             }
13             Console.WriteLine("--------if判斷結束----------");
14             Console.ReadKey();
C# Code

2.elif語句

elif的使用格式如下:

 1 if 條件1:
 2     滿足條件1時要做的事情1
 3     滿足條件1時要做的事情2
 4     滿足條件1時要做的事情3
 5     滿足條件1時要做的事情4
 6     ...(省略)...
 7 elif 條件2:
 8     滿足條件2時要做的事情1
 9     滿足條件2時要做的事情2
10     滿足條件2時要做的事情3
11     滿足條件2時要做的事情4
12     ...(省略)...
13 else:
14     不滿足上述所有條件時要做的事情1
15     不滿足上述所有條件時要做的事情2
16     不滿足上述所有條件時要做的事情3
17     不滿足上述所有條件時要做的事情4
18     ...(省略)...

示例如下:

 1 age=18
 2 print(--------if判斷開始----------)
 3 if age==16:
 4     print(已年滿16歲)
 5 elif age==18:
 6     print(已成年)
 7     print(年齡是%i%age)
 8 else:
 9     print(未成年)
10     print(年齡是%i%age)
11 print(--------if判斷結束----------)

技術分享圖片

elif語句一定要配合if使用,可以有else也可以沒有,elif的條件不限制,對應的C#代碼如下所示:

技術分享圖片
 1             int age = 18;
 2             Console.WriteLine("--------if判斷開始----------");
 3 
 4             if (age == 16)
 5                 Console.WriteLine("已年滿16歲");
 6             else if (age == 18)
 7             {
 8                 Console.WriteLine("已成年");
 9                 Console.WriteLine($"年齡是{age}");
10             }
11             else
12             {
13                 Console.WriteLine("未成年");
14                 Console.WriteLine($"年齡是{age}");
15             }
16             Console.WriteLine("--------if判斷結束----------");
17             Console.ReadKey();
C# Code

3.if嵌套

if嵌套的格式大致如下:

 1 if 條件1:
 2     滿足條件1時要做的事情1
 3     滿足條件1時要做的事情2
 4     ...(省略)...
 5     if 條件2:
 6         滿足條件2時要做的事情1
 7         滿足條件2時要做的事情2
 8         滿足條件2時要做的事情3
 9         滿足條件2時要做的事情4
10         ..(省略)...

註意:

外層的if判斷,也可以是if-else

內層的If判斷,也可以是if-else

比較&關系運算符

1.比較運算符

技術分享圖片

2.邏輯運算符

技術分享圖片

循環語句(while)

1.while語句

while循環的格式如下:

1 while 條件:
2     滿足條件時,做事情1
3     滿足條件時,做事情2
4     滿足條件時,做事情3
5     ...(省略)...

示例如下:

1 i=1
2 sum=0
3 while i<=100:
4     sum+=i
5     i+=1
6 print("1-100的累積和為:%i"%sum)

技術分享圖片

2.循環嵌套

 1 while 條件:
 2     滿足條件時,做事情1
 3     滿足條件時,做事情2
 4     滿足條件時,做事情3
 5     ...(省略)...
 6     while 條件:
 7         滿足條件時,做事情1
 8         滿足條件時,做事情2
 9         滿足條件時,做事情3
10         ...(省略)...

示例如下:

1 i=1
2 while i<=5:
3     j=1
4     while j<=i:
5         print("* ",end=" ")
6         j+=1
7     print("\n")
8     i+=1

技術分享圖片

循環語句(for)

pythonfor循環可以遍歷任何序列的項目,如一個列表或者一個字符串

1 for 臨時變量 in 列表或者字符串等:
2     滿足循環條件時執行的代碼
3 else:
4     滿足不循環條件時執行的代碼

示例如下:

1 name=jonins
2 for x in name:
3     print(x)
4 else:
5     print(遍歷完成)

技術分享圖片

break&continue

break的作用:用來結束整個循環。

continue的作用:用來結束本次循環,緊接著執行下一次的循環。

示例如下:

1 name=jonins.com
2 for x in name:
3     if(x==o):
4         continue;
5     if(x==.):
6         break;
7     print(x)

技術分享圖片

註意:

break/continue只能用在循環中,除此以外不能單獨使用。

break/continue在嵌套循環中,只對最近的一層循環起作用。

Python基礎(上)