1. 程式人生 > >Python基礎學習筆記(一)

Python基礎學習筆記(一)

安裝python可以去官網下載安裝包,各個系統安裝步驟可以自行搜尋。

記錄python中常用語法:

一、

print:

字串用'' 或者""

print('hello')
print("hello")

連線字串用+

二、運算

直接在運行臺上用 加減乘除+-*/

int() 和 float();當int()一個浮點型數時,int會保留整數部分,比如 int(1.9),會輸出1,而不是四捨五入。

次方**

3**2  #3的2次方,等於9

取餘數%

8%3  #8除以3等於2餘2,結果是2

定義變數,直接賦值,不用申明型別,可以一次性定義多個變數

apple=1
a,b,c,d=1,2,3,4

三、

while迴圈

while condition:
    expressions

例:打印出0-9的所有資料

condition = 0
while condition < 10:
    print(condition)
    condition = condition + 1

四、

for迴圈

for item in sequence:
    expressions

例:內容依次為 example_list 中的每一個元素 注意 Python 是使用縮排表示程式的結構

example_list = [1,2,3,4,5,6,7,12,543,876,12,3,2,5]
for i in example_list:
    print(i)

五、

range使用

在 Python 內建了工廠函式,range

 函式將會返回一個序列,總共有三種使用方法

1 range(start, stop)

其中 start 將會是序列的起始值,stop為結束值,但是不包括該值,類似 數學中的表達 [start, stop),左邊為閉區間,右邊為開區間。

for i in range(1, 10):
    print(i)

上述表達將會返回 1-9 所有整數,但不包含 10

2 range(stop)

如果省略了 start 那麼將從 0 開始,相當於 range(0, stop)

3 range(start, stop, step)

step 代表的為步長,即相隔的兩個值得差值。從 start 開始,依次增加 step 的值,直至等於或者大於

 stop

for i in range(0,10, 5):
    print(i)

將會輸出 0, 5

六、

在 Python 中集合型別有 list、 tuple 、dict 和 set 等

list是用中括號來命名的:

a_list = [12, 3, 67, 7, 82]

功能:

#append()新增
a = [1,2,3,4,1,1,-1]
a.append(0)  # 在a的最後面追加一個0
print(a)
# [1, 2, 3, 4, 1, 1, -1, 0]


#insert()指定位置新增
a = [1,2,3,4,1,1,-1]
a.insert(1,0) # 在位置1處新增0
print(a)
# [1, 0, 2, 3, 4, 1, 1, -1]


#remove移除
a = [1,2,3,4,1,1,-1]
a.remove(2) # 刪除列表中第一個出現的值為2的項
print(a)
# [1, 3, 4, 1, 1, -1]


#索引
#顯示特定位:
a = [1,2,3,4,1,1,-1]
print(a[0])  # 顯示列表a的第0位的值
# 1

print(a[-1]) # 顯示列表a的最末位的值
# -1

print(a[0:3]) # 顯示列表a的從第0位 到 第2位(第3位之前) 的所有項的值
# [1, 2, 3]

print(a[5:])  # 顯示列表a的第5位及以後的所有項的值
# [1, -1]

print(a[-3:]) # 顯示列表a的倒數第3位及以後的所有項的值
# [1, 1, -1]


#列印列表中的某個值的索引(index):
a = [1,2,3,4,1,1,-1]
print(a.index(2)) # 顯示列表a中第一次出現的值為2的項的索引
# 1

#統計列表中某值出現的次數:
a = [4,1,2,3,4,1,1,-1]
print(a.count(-1))
# 1



#對列表的項排序:
a = [4,1,2,3,4,1,1,-1]
a.sort() # 預設從小到大排序
print(a)
# [-1, 1, 1, 1, 2, 3, 4, 4]

a.sort(reverse=True) # 從大到小排序
print(a)
# [4, 4, 3, 2, 1, 1, 1, -1]

tuple 型別:可以用小括號、或者無括號來表述
tup = ('python', 2.7, 64)
for i in tup:
    print(i)

程式將以此按行輸出 ‘python’, 2.7 和 64。

dictionary 型別(相當於c++/java裡面的map)

數字和字串都可以當做key或者value, 在同一個字典中, 並不需要所有的keyvalue有相同的形式。

dic = {}
dic['lan'] = 'python'
dic['version'] = 2.7
dic['platform'] = 64
for key in dic:
    print(key, dic[key])

輸出的結果為:platform 64,lan python, version 2.7, 字典在迭代的過程 中將 key 作為可迭代的物件返回。注意字典中 key 是亂序的,也就是說和插入 的順序是不一致的。如果想要使用順序一致的字典,請使用 collections 模組 中的 OrderedDict 物件。

set 型別
s = set(['python', 'python2', 'python3','python'])
for item in s:
    print(item)

將會輸出 python, python3, python2 set 集合將會去除重複項,注意輸出的 結果也不是按照輸入的順序。

新增某個元素用add

清除元素用remove或者discard,清除全部用clear

char_list = ['a', 'b', 'c', 'c', 'd', 'd', 'd']

unique_char = set(char_list)   # {'b', 'd', 'a', 'c'}
unique_char.add('x')
# unique_char.add(['y', 'z']) this is wrong
print(unique_char)  # {'x', 'b', 'd', 'c', 'a'}

unique_char.remove('x')
print(unique_char)  # {'b', 'd', 'c', 'a'}

unique_char.discard('d')
print(unique_char)  # {'b', 'c', 'a'}

unique_char.clear()
print(unique_char)   # set()

set的篩選操作

我們還能進行一些篩選操作, 比如對比另一個東西, 看看原來的 set 裡有沒有和他不同的 (difference). 或者對比另一個東西, 看看 set 裡有沒有相同的 (intersection).

char_list = ['a', 'b', 'c', 'c', 'd', 'd', 'd']
unique_char = set(char_list)  
 # {'b', 'd', 'a', 'c'}
print(unique_char.difference({'a', 'e', 'i'}))# {'b', 'd', 'c'}print(unique_char.intersection({'a', 'e', 'i'}))# {'a'}

七、

迭代器

Python 中的 for 句法實際上實現了設計模式中的迭代器模式 ,所以我們自己也可以按照迭代器的要求自己生成迭代器物件,以便在 for 語句中使用。 只要類中實現了 __iter__和 next 函式,那麼物件就可以在 for 語句中使用。 現在建立 Fibonacci 迭代器物件,

# define a Fib class
class Fib(object):
    def __init__(self, max):
        self.max = max
        self.n, self.a, self.b = 0, 0, 1

    def __iter__(self):
        return self

    def __next__(self):
        if self.n < self.max:
            r = self.b
            self.a, self.b = self.b, self.a + self.b
            self.n = self.n + 1
            return r
        raise StopIteration()

# using Fib object
for i in Fib(5):
    print(i)

將會輸出前 5 個 Fibonacci 資料 1,1, 2, 3, 5

八、

生成器

除了使用迭代器以外,Python 使用 yield 關鍵字也能實現類似迭代的效果,yield 語句每次 執行時,立即返回結果給上層呼叫者,而當前的狀態仍然保留,以便迭代器下一次迴圈呼叫。這樣做的 好處是在於節約硬體資源,在需要的時候才會執行,並且每次只執行一次。

def fib(max):
    a, b = 0, 1
    while max:
        r = b
        a, b = b, a+b
        max -= 1
        yield r

# using generator
for i in fib(5):
    print(i)

將會輸出前 5 個 Fibonacci 資料 1,1, 2, 3, 5

(有個缺點是當呼叫fib(0)的時候,yield是沒有資料的,所以fib(0)沒有返回值)

九、

1.  if判斷

if condition:
    expressions

例:

x = 1
y = 2
z = 3
if x < y:
    print('x is less than y')

2. if else 判斷

基本使用 
if condition:
    true_expressions
else:
    false_expressions

例:

x = 1
y = 2
z = 3
if x > y:
    print('x is greater than y')
else:
    print('x is less or equal to y')

python 中並沒有類似 condition ? value1 : value2 三目操作符。但python 可以通過 if-else 的行內表示式完成類似的功能。

var = var1 if condition else var2

可以這麼理解上面這段語句,如果 condition 的值為 True, 那麼將 var1 的值賦給 var;如果為 False 則將 var2 的值賦給 var

worked = True
result = 'done' if worked else 'not yet'
print(result)

首先判斷如果 work 為 True,那麼將 done 字串賦給 result,否則將 not yet 賦給 result。 結果將輸出 done

3.   if elif else 判斷

基本使用 ¶
if condition1:
    true1_expressions
elif condition2:
    true2_expressions
elif condtion3:
    true3_expressions
elif ...
    ...
else:
    else_expressions

十、def 函式

基本使用 
def function_name(parameters):
    expressions

Python 使用 def 開始函式定義,緊接著是函式名,括號內部為函式的引數,內部為函式的 具體功能實現程式碼,如果想要函式有返回值, 在 expressions 中的邏輯程式碼中用 return 返回。

parameters的位置就是函式的引數(也可以沒有引數),在呼叫的時候傳入即可。

例:

def function():
    print('This is a function')
    a = 1+2
    print(a)

上面我們定義了一個名字為 function 的函式,函式沒有接收引數,所以括號內部為空,緊接著就是 函式的功能程式碼。如果執行該指令碼,發現並沒有輸出任何輸出,因為我們只定義了函式,而並沒有執行函式。 這時我們在 Python 命令提示符中輸入函式呼叫 function(), 注意這裡呼叫函式的括號不能省略。那麼 函式內部的功能程式碼將會執行,輸出結果:

This is a function
3

如果我們想要在指令碼中呼叫的指令碼,只需要在指令碼中最後新增函式呼叫語句

function()

那麼在執行指令碼的時候,將會執行函式。

加引數:

def func(a, b):
    c = a+b
    print('the c is ', c)

函式預設引數:

def function_name(para_1,...,para_n=defau_n,..., para_m=defau_m):
    expressions

例:

def sale_car(price, color='red', brand='carmy', is_second_hand=True):
    print('price', price,
          'color', color,
          'brand', brand,
          'is_second_hand', is_second_hand,)

自呼叫

如果想要在執行指令碼的時候執行一些程式碼,比如單元測試,可以在指令碼最後加上單元測試 程式碼,但是該指令碼作為一個模組對外提供功能的時候單元測試程式碼也會執行,這些往往我們不想要的,我們可以把這些程式碼放入指令碼最後:

if __name__ == '__main__':
    #code_here

如果執行該指令碼的時候,該 if 判斷語句將會是 True,那麼內部的程式碼將會執行。 如果外部呼叫該指令碼,if 判斷語句則為 False,內部程式碼將不會執行。

 可變引數

顧名思義,函式的可變引數是傳入的引數可以變化的,1個,2個到任意個。當然可以將這些 引數封裝成一個 list 或者 tuple 傳入,但不夠 pythonic。使用可變引數可以很好解決該問題,注意可變引數在函式定義不能出現在特定引數預設引數前面,因為可變引數會吞噬掉這些引數。

def report(name, *grades):
    total_grade = 0
    for grade in grades:
        total_grade += grade
    print(name, 'total grade is ', total_grade)

定義了一個函式,傳入一個引數為 name, 後面的引數 *grades 使用了 * 修飾,表明該引數是一個可變引數,這是一個可迭代的物件。該函式輸入姓名和各科的成績,輸出姓名和總共成績。所以可以這樣呼叫函式 report('Mike', 8, 9),輸出的結果為 Mike total grade is 17, 也可以這樣呼叫 report('Mike', 8, 9, 10),輸出的結果為 Mike total grade is 27

關鍵字引數

關鍵字引數可以傳入0個或者任意個含引數名的引數,這些引數名在函式定義中並沒有出現,這些引數在函式內部自動封裝成一個字典(dict).

def portrait(name, **kw):
    print('name is', name
            
           

相關推薦

Python基礎學習筆記

安裝python可以去官網下載安裝包,各個系統安裝步驟可以自行搜尋。記錄python中常用語法:一、print:字串用'' 或者""print('hello') print("hello")連線字串用+二、運算直接在運行臺上用 加減乘除+-*/int() 和 float();

Python自動化學習筆記——介面測試基礎

1.1 介面基礎知識  1.1.1    Get&post請求 GET和POST請求:       GET提交的資料會放在URL之後,以?分割URL和傳輸資料,引數之間以&相連,如EditPosts.aspx?name

Spark (Python版) 零基礎學習筆記—— 快速入門

由於Scala才剛剛開始學習,還是對python更為熟悉,因此在這記錄一下自己的學習過程,主要內容來自於spark的官方幫助文件,這一節的地址為: 文章主要是翻譯了文件的內容,但也在裡邊加入了一些自己在實際操作中遇到的問題及解決的方案,和一些補充的小知識,一起學習。 環境

Python基礎---學習筆記

1、輸入輸出 >>>Name=input() >>>name 2、資料型別和變數 整數:0xff00 浮點數:1.23e9=12.3e8    0.000012=1.2e-5 字串:”I’m OK”表示I’m OK    ‘I\

Python爬蟲學習筆記——urllib庫的使用

scheme param https ade 網站 dmgr nor 分享圖片 out 前言 我買了崔慶才的《Python3網絡爬蟲開發實戰》,趁著短學期,準備系統地學習下網絡爬蟲。在學習這本書的同時,通過博客摘錄並總結知識點,同時也督促自己每日學習。本書第一章是開發環境的

MOOC-浙江大學-博弈論基礎-學習筆記

MOOC-浙江大學-博弈論基礎-學習筆記(一) 老師:蔣文華 知人者智,自知者明; 勝人者力,自勝者強; 小勝者術,大勝者德。 第一講 概論 1.何為博弈? 博-博覽全域性, 奕-對弈棋局, 謀定而動! 博弈–是指在一定的遊戲規則約束下,基於直接相互作用

node.js零基礎學習筆記

開始:一個前端小白接觸node.js,簡單的筆記,筆記的記錄邏輯或許不是太清晰,但是能看懂,或許對node.js的學習不精,也可能有錯誤理解的,第一次接觸,僅供和我一樣零基礎學習node.js的人,會繼續補充新增,謝謝大家~麼麼噠 NodeJS 一、簡介    wha

python入門學習筆記——字串+註釋

利用課外晚上時間計劃10天基本學完python的基本用法,然後再寫一些小的專案。 堅持10天每天一貼,記錄和鞭策自己的學習。 如果有興趣的朋友可以來看看,不會適合零基礎學習的,還是需要一些程式設計基礎的用來學習的。 1. 字串 1.1修

Python + OpenCV 學習筆記>>> 影象的載入與儲存

影象屬性: 通道數目 高與寬 畫素資料 影象型別 顯示一張圖片: import cv2 as cv src = cv.imread("/home/pi/Desktop/apple.jpg") cv.namedWindow("input im

Python基礎學習筆記

一、Windows平臺 1、下載Python 3.6.4 https://www.python.org/ 2、雙擊安裝即可,注意點選Add python 3.6 to path 3、win+r 輸入cmd 開啟控制檯 輸入python命令,檢視是

內建資料型別---Python基礎學習筆記

內建資料的三大主要型別: 1、數字(整數、浮點數) 2、序列(字串、列表、元組) 3、對映(字典) 按照是否可原地修改值分兩大類: 不可變物件(數字,字串,元組,不可變集合) 可變物件(列表,字典,可變集合) 一、整數(不

內建資料型別---Python基礎學習筆記

一、if-else條件語句 條件語句,條件滿足,執行一部分程式碼,不滿足,執行另一部分程式碼 四種基本格式: 1、單if …① if條件: 條件滿足時執行的程式碼…② …③ 執行順序: S1:執行① S2

面向物件---Python基礎學習筆記

一、單繼承 在程式中,繼承描述的是事物之間的所屬關係,例如貓和狗都屬於動物,程式中便可以描述為貓和狗繼承自動物。 #定義一個父類,如下: class Cat(object): def_in

JS基礎學習筆記

1、識別符號,就是指變數、函式、屬性的名字,或者函式的引數。識別符號可以是按照下列格式規則組合起來的一或多個字元: a.第一個字元必須是一個字母、下劃線(_)或一個美元符號($); b.其他字元可以是字母、下劃線、美元符號或數字。 不能把關鍵字、保留字、true、fal

Python基礎知識筆記

一. CPU、記憶體、硬碟及作業系統之間的關係 1. CPU——中央處理器,運算中心與控制中心,相當於人的大腦。 2. 記憶體——暫時儲存資料,將應用程式載入到其中,以便與CPU進行資料傳輸互動。 3. 硬碟——即所謂的磁碟(如D盤,E盤),用於長期儲存資料。    &n

Python基礎入門筆記

前言(認識Python) 既然學習 Python,那麼至少得了解下這門語言,知道 Python 程式碼執行過程吧。Python 的歷史有興趣的百度百科下就有,這個不多說了。 1、我們先來了解下什麼是解釋型語言和編譯型語言? 計算機是不能夠識別高階語言

python語言學習筆記------匯率兌換

根據輸入判斷是人民幣還是美元,進行相應的轉換計算,將匯率兌換功能封裝到函式中,使結構程式化,函式lambda def main(): """ 主函式 """ #

Python Django 學習筆記-------Django基本操作及後端get解析

1.需求 釋出會簽到系統,嘉賓(Guest)管理和釋出會(Event)管理,增加發佈會搜尋和嘉賓搜尋功能 1.1前端實現嘉賓搜尋介面(guest_manage.html): <!--嘉賓管理搜尋表單--> <!--

python基礎學習筆記裝飾器,高階函式

多程序程式設計import multiprocessing def process1(): return 1 def process2(): return 2 p1=multiprocessing.Process(target=process1) p2=m

python爬蟲學習筆記—— 爬取騰訊視訊影評

       前段時間我忽然想起來,以前本科的時候總有一些公眾號,能夠為我們提供成績查詢、課表查詢等服務。我就一直好奇它是怎麼做到的,經過一番學習,原來是運用了爬蟲的原理,自動登陸教務系統爬取的成績等內容。我覺得挺好玩的,於是自己也琢磨了一段時間,今天呢,我為大家分享一個爬蟲