python筆記(列表、元組、字典和流程控制)

python內置的三種常用數據結構:列表list、元組tuple、字典dict

列表和元組都可以按順序保存元素,每個元素有自己索引。都可以通過

列表跟元組相比,列表可以修改,元組不可修改。

字典以key-value形式保存數據。

列表是[],元組是()

list1 = [1,2,3,4,5]
tuple1 = (1,2,3,4,5)

通過索引訪問,正序逆序。正序第一個是0,逆序第一個是-1

print(list1[1]) 
print(list1[-1])
#輸出
2
5

子序列:可以使用索引獲取中間的一段,slice

完整語法如下:

[start:end:step]

start,end分別表示索引開始的元素和索引結束的元素,都可以使用正數和負數,負數表示從倒數開始。step表示步長。

列表和元組支持加法運算,加法的和是倆個列表或元組所包含的元素的總和。列表只能和列表加,元組只能和元組加。

列表和元組支持乘法運算,和證書執行乘法運算。就是把他們包含的元素重複N次(N爲被乘的倍數)

in運算符:判斷列表或元組中是否存在某個元素

python內置了max()獲取最大值,min()獲取最小值,len()獲取列表或元組的長度。其中,max()、min()函數要求元組、列表的元素是相同類型且可以比較大小的。

序列封包和序列解包:

序列封包:程序把多個值賦給一個變量時,python會自動將多個值封裝成元組。

序列解包:將元組或列表直接賦給多個變量時,序列的各元素將會被依次賦值給每個變量(變量數和序列的元素數相同)。。

列表:

增加append()方法,把增加的數據作爲整體元素增加到列表的最後

追加extend()方法,追加所有元素

刪除del語句

remove()

修改列表元素

list1[1] = 5

count()方法:統計某個元素在列表中出現的次數

index()方法:判斷某個元素在列表中出現的位置

pop()方法:將列表當作棧使用,實現元素出棧功能

reverse()方法:將列表中元素反向存放

sort()方法:用於列表元素排序

字典:

可以使用dict()函數或者花括號創建字典。程序對字典的操作都是基於key的。元組可以做字典的key但列表不行。

clear()清空字典k-v對,變成空字典

get()根據key獲取value

update()若字典中原本沒有對應的key-value,增加;若原本有key-value,value值被覆蓋。

items()獲取字典的所有key-value對

keys()獲取字典的所有key

valuse()獲取字典的所有value

setdefault()根據key獲取value若不存在,先爲key設置一個默認value,再返回該value;若存在就直接返回value,不更改

流程控制:

if表達式、pass語句、assert斷言、while循環、for-in循環,循環else(while可以使用,for-in可以使用)、break結束循環、continue忽略本次循環剩下語句、return結束

zip()函數可以把兩個或多個列表壓縮成一個zip對象,通過該函數可以使用一個循環遍歷兩個或多個列表

繞圈圈:

覺得挺有趣的附上代碼。

#!usr/bin/env python3.6
#encoding:utf-8

'''
author:shadow
datetime:2020/5/2
explain:
繞圈圈
例子1:
1 8 7
2 9 6
3 4 5
例子2:
01 20 19 18 17 16
02 21 32 31 30 15
03 22 33 36 29 14
04 23 34 35 28 13
05 24 25 26 27 12
06 07 08 09 10 11

'''


def draw(size):
    #生成二維數組
    array = [[0]*size]
    for i in range(size-1):
        array += [[0]*size]
    #方向0向下1向右2向上3向左
    orient = 0
    #j行索引,k列索引
    j = 0
    k = 0
    for i in range(1,size*size+1):
        array[j][k] = i
        if j+k == size -1:
            if j>k:
                orient = 1
            else:
                orient = 2
        elif (j==k)and (k>=size/2):
            orient = 3
        elif (j==k-1)and (k<=size/2):
            orient = 0
        if orient ==0:
            j+=1
        elif orient == 1:
            k+=1
        elif orient == 2:
            k-=1
        elif orient == 3:
            j-=1
    for i in range(size):
        for j in range(size):
            print("%02d"%array[i][j],end=" ")
        print("",end="\n")

if __name__ == '__main__':
    size = int(input("請輸入size的大小:"))
    draw(size)

 

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