Python學習-基礎篇(一)

前言

閒來無事,開啓Python學習之旅!我分爲以下幾部分進行學習:
開發工具、基本語法、流程控制、序列的應用(列表、元組、字典、集合、字符串)、字符串及正則表達式、函數、面向對象程序設計、模塊、異常處理及程序調試、文件及目錄操作、操作數據庫、腳本學習、GUI界面編程、網絡爬蟲、Web框架。
本篇包含:開發工具、基本語法、流程控制

一、Python開發工具

1、自帶的IDLE
2、常用的第三方開發工具:PyCharm、Visual Studio 2017、Eclipse+PyDev
3、開源的Python包管理器:Anaconda、Miniconda
自帶IDLE的常用快捷鍵:
在這裏插入圖片描述

二、Python基本語法

1、語法特點

1.註釋
(1)單行註釋

# 註釋內容

(2)多行註釋

'''
註釋形式1
註釋內容
......
'''
"""
註釋形式2
註釋內容
......
"""

(3)中文編碼聲明註釋

# _*_ coding:編碼 _*_
#coding=編碼

編碼:utf-8gbk
2.代碼縮進
一個縮進量:一個Tab或4個空格
推薦採用空格。
注:同一個級別的代碼塊的縮進量必須相同。如果不採用合理的代碼縮進,將拋出SyntaxError異常。
3.編碼規範
採用PEP 8編碼規範

每個import語句只導入一個模塊,儘量避免一次導入多個模塊。
不要在行尾添加分號;,也不要用分號將兩條命令放在同一行。
建議每行不超過80個字符。(可以用()換行連接)
使用必要的空行可以增加代碼的可讀性。(函數和類的定義空2行,方法的定義空1行)
運算符兩側、函數參數之間、逗號,兩側建議使用空格進行分割。
避免在循環中使用+和+=運算符累加字符串。
適當使用異常處理結構提高程序容錯性。

命名規範

模塊名儘量短小,並且使用全部小寫字母,可以使用_分隔多個字母。
包名儘量短小,並且使用全部小寫字母。
類名採用單詞首字母大寫形式(即Pascal風格)。
模塊內部的類由_+Pascal風格的類名組成。
函數、類的屬性和方法名全部採用小寫字母,多個字母間用_分隔。
常量命名時採用全部大寫字母,可以使用_
使用_開頭的模塊變量或函數是受保護的。
使用__開頭的實例變量或方法是類私有的。

2、保留字與標識符

1.保留字
Python 3.6版有33個保留字(關鍵字),Python 3.7版本中正式引入兩個新的關鍵字async與await,共35個關鍵字。保留字是區分字母大小寫的。

import keyword
print(keyword.kwlist)
--- Python 3.6 Console Output ---
['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']

--- Python 3.7 Console Output --- 
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 
'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']

2.標識符
_標識符 保護變量
__標識符 類的私有成員
__標識符__ 專用標識(如:__init__()構造函數)

3、變量

不需要提前聲明,直接賦值使用即可
type()可以查看變量類型
id()可以獲取變量的內存地址

>>> name = "qwzf"
>>> print(name)
qwzf
>>> age = 20
>>> print(age)
20
>>> type(name)
<class 'str'>
>>> type(age)
<class 'int'>

多個變量指向同一個值時,在內存中就只存在一個值。

>>> num = count = 1024
>>> print(num)
1024
>>> print(count)
1024
>>> id(num)
2179811900336
>>> id(count)
2179811900336
>>> 

變量命名規則:

必須是一個有效的標識符
選擇有意義的單詞
不能使用Python中的保留字
慎用小寫字母l和大寫字母O

4、基本數據類型

基本數據類型有:數字類型、字符串類型、布爾類型
1.數字類型
數字類型:整數、浮點數、複數
浮點數計算時,可能會出現小數位數不確定的情況。要用到函數round()進行小數位數保留。

>>> 0.1+0.2
0.30000000000000004
>>> round(0.1+0.2,1)
0.3
>>> 

2.字符串類型
使用單引號和雙引號,內容必須寫在一行上;使用三引號,內容可以分多行寫。

text1 = '學習Pyhon'    #使用單引號
text2 = "學習編程"     #使用雙引號
text3 = '''繼續學習中,
請勿打擾'''            #使用三引號

字符串類型,有時會用到轉義字符\
3.布爾類型
假值:
(1)False或None
(2)0、0.0、虛數0
(3)空序列(空字符串、空元組、空列表、空字典)
(4)對象的__bool__方法返回False或者__len__方法返回0
真值:
除上述返回假值的情況外,都是返回真值
4.數據類型轉換
int()強制轉換成整型
float()強制轉換成浮點型
str()強制轉換成字符串型
hex()強制將整數轉換爲16進制字符串
oct()強制將整數轉換爲8進制字符串

>>> num = 100.25
>>> num1 = str(num)
>>> print(num1)
100.25
>>> type(num1)
<class 'str'>
>>> num2 = int(num)
>>> print(num2)
100

5、運算符

運算符包含:算術運算符、賦值運算符、比較(關係)運算符、邏輯運算符、位運算符
1.算術運算符
+-*/
取整除://(向下取整)
取餘:%
冪次:**
2.賦值運算符
簡單賦值 =
加法賦值 +=
減法賦值 -=
乘法賦值 *=
除法賦值 /=
取整除賦值 //=
取餘賦值 %=
冪賦值 **=
3.比較(關係)運算符
等於 ==
不等於 !=<>(a != b 或 a <> b)
大於 >
小於 <
大於等於 >=
小於等於 <=
4.邏輯運算符
邏輯運算符返回值爲true 或 false。
布爾與 and :如果 x 爲 False,x and y 返回 False,否則它返回 y 的計算值。。
布爾或 or :如果 x 是非 0,它返回 x 的值,否則它返回 y 的計算值。
布爾非 not : 如果 x 爲 True,返回 False 。如果 x 爲 False,它返回 True。
5.位運算符
位運算過程中,把數字轉化成二進制計算,然後再轉化成數字。
按位與 & :參與運算的兩個值,如果兩個相應位都爲1,則該位的結果爲1,否則爲0。
按位或 |:參與運算的兩個值, 只要有一個位置爲1,則該位的結果爲1。
按位異或 ^ :參與運算的兩個值,如果兩個相應位數值不同,則結果爲1,若相同,則結果爲0.
按位取反 ~ :對數據的每個二進制位取反,即把1變爲0,把0變爲1 。
左移位 << :若 a << 2 將數字a對應的二進制數集體向左移動2位,後面空餘的2位補零。
(例:原a二進制:0011 1100, a << 2 ,得 1111 0000,加黑爲補零位。)
右移位 >> :若 a >> 3 將數字a對應的二進制數集體向右移動2位,前面空餘的2位補零。
(例:原a二進制:0011 1100, a >> 2 ,得 0000 1111,加黑爲補零位。)
6.成員運算符
檢測 x 是否在 y 的序列中。
in :若 x 在 y 的序列中,則返回True,否則返回False。
not in :若 x 不在 y 的序列中,則返回True,否則返回False。
7.身份運算符
用於比較兩個對象 A 和 B 的存儲單元是否一致,即判斷兩個標識符 A 和 B 是不是引用自一個對象。
isx is y, 類似 id(x) == id(y) , 如果引用的是同一個對象則返回 True,否則返回 False。 # id() 函數用於獲取對象內存地址。
is notx is not y , 類似 id(a) != id(b)。如果引用的不是同一個對象則返回結果 True,否則返回 False。 # id() 函數用於獲取對象內存地址。
8.運算符的優先級
在這裏插入圖片描述

6、基本輸入和輸出

1.input()函數輸入
input()函數返回值是字符串類型

variable = input("提示文字")

返回值類型轉換

>>> tips = input("請輸入內容:")
請輸入內容:123
>>> print(tips,type(tips))
123 <class 'str'>
>>> hints = int(input("請輸入內容:"))
請輸入內容:456
>>> print(hints,type(hints))
456 <class 'int'>

2.print()函數輸出

print(輸出內容)
a = 6
b = 111
print("數字:",666)
print("表達式:",a*b)
print("字符串:","努力吧!!")

在這裏插入圖片描述
輸出到文件

fp = open(r'D:\demo.txt','a+')
print("加油!奧利給!!",file = fp)
fp.close()

在這裏插入圖片描述
在一行輸出

for i in range(1,10):
    print(i,end=' ')

在這裏插入圖片描述

三、流程控制

1、選擇語句

1.簡單的if語句

if 表達式:
    語句塊

2.if…else語句

if 表達式:
    語句塊1
else:
    語句塊2

3.if…elif…else語句

if 表達式1:
    語句塊1
elif 表達式2:
    語句塊2
......
else:
    語句塊n

如果已經定義一個布爾變量flag,if語句應寫成以下形式:

if flag:
if not flag:
下面這種形式是不規範的:
if flag == True:(X)

4.if語句的嵌套

if 表達式1:
    if 表達式2:
        語句塊2
    else:
        語句塊3
else:
    語句塊1

2、條件表達式

好處:使代碼簡潔;可以有一個返回值

結果1 if 表達式 else 結果2

表達式爲真,返回結果1;表達式爲假,返回結果2
通常把結果賦值給一個變量

#求兩個數的最大值
a = 10
b = 20
r = a if a>b else b
print(r)
#求一個數的絕對值
x = -10
y = x if a>0 else -x

3、循環語句

1.while循環
一直重複,直到條件不滿足時,才停止

while 條件表達式:
    循環體

2.for循環
重複一定次數,通常用於迭代、枚舉或遍歷

for 迭代變量 in 對象:
    循環體

在這裏插入圖片描述
循環數值

#計算1+2+...+100的和
result = 0 #保存累加結果的變量
for i in range(101):
    result += i #實現累加
print(result)

遍歷字符串

string = '努力不一定成功'
for ch in string:
    print(ch)

在這裏插入圖片描述
range()函數:生成一系列連續的整數
range(start,end,step)
start: 計數從start開始。默認是從 0 開始。例如:range(5)等價於range(0,5)
end: 計數到end結束,但不包括 stop。例如:range(0,5)是[0, 1, 2, 3, 4]沒有5
step:步長,默認爲1。例如:range(0,5)等價於range(0,5,1)

range()函數替換Python2中的xrange()函數
3.循環嵌套

while 條件表達式1:
    while 條件表達式2:
        循環體2
    循環體1
while 條件表達式:
    for 迭代變量 in 對象:
        循環體2
    循環體1
for 迭代變量 in 對象:
    while 條件表達式:
        循環體2
    循環體1

等等

4、跳轉語句

1.break語句
完全跳出循環
2.continue語句
只跳出一次循環,然後繼續下一次循環

5、pass空語句

pass語句,表示空語句。它不做任何事情,一般起到佔位作用。
通常用於流程控制語句、函數、類中。

for i in range(1,10):
    if i%2 == 0:
        print(i,end=',') #輸出偶數
    else:
        pass #佔位,不做任何事

後記

學習完Python的開發工具、基本語法、流程控制,對Python的一些語法有了一些認識。
收穫之處:學習了流程控制中條件表達式和for循環的使用。同時注意到Python中沒有do…while循環。
繼續學習@_@

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