• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • python教程_小白入門13

    標簽: python基礎教程學習手記  python

    python教程_小白入門13/2020/08/20

    學習目標
    00

    P88 列表推導式的使用

    # 列表推導式作用是使用簡單的語法創建一個列表
    # nums = [i for i in range(10)]
    # print(nums)                 # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    
    # nums = []
    # for i in range(10):
    #     nums.append(i)
    # print(nums)                 # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    
    # 打印9以內所有的偶數
    # x = [i for i in range(10) if i % 2 == 0]
    # print(x)                # [0, 2, 4, 6, 8]
    
    # 打印9以內的所有奇數--因為i%2是偶數的時候是0,其他的情況都是1,i在10以內,并且i不能魔于2的情況就是奇數
    # x = [i for i in range(10) if i % 2]
    # print(x)                # [1, 3, 5, 7, 9]
    
    # 其實就相當于直角坐標系里的坐標,橫坐標有一個范圍,縱坐標有一個范圍,在坐標系里是一個矩形
    # point是一個列表,這個列表里的元素都是元組
    points = [(x, y) for x in range(5, 9) for y in range(10, 20)]
    print(points)
    #  [(5, 10), (5, 11), (5, 12), (5, 13), (5, 14), (5, 15), (5, 16), (5, 17), (5, 18), (5, 19), (6, 10), (6, 11), (6, 12), (6, 13), (6, 14), (6, 15), 。。。。。。。。。。
    
    

    P89 列表推導式的練習

    # 請寫出一段python代碼實現分組一個list里邊的元素,比如[1,2,3,4,5,6,.....100]變成[1,2,3][4,5,6][7,8,9]....
    m = [i for i in range(1, 101)]
    print(m)
    # 實際上相當于一個切片的操作
    # m[0,3]   j     0
    # m[3,6]   j     3
    # m[6,9]   j     6
    n = [m[j:j + 3] for j in range(0, 100 ,3)]
    print(n)        #[[1, 2, 3], [2, 3, 4], [3, 4, 5], [4, 5, 6], [5, 6, 7], [6, 7, 8], [7, 8, 9], [8, 9, 10], [9, 10, 11], [10, 11, 12],
    

    P90 深拷貝和淺拷貝介紹

    # 淺復制
    import copy
    
    # nums = [1, 2, 3, 4, 5, 6]
    # nums1 = nums  # 深復制,淺復制都不是,這只是個賦值 賦值是指向
    #
    # nums2 = nums.copy()  # 淺拷貝,兩個內容一摸一樣,但不是同一個對象,指向的不是同一個位置
    #
    # nums3 = copy.coppy(nums)  # 和nums.copy()功能一致,都是淺拷貝
    
    # 深拷貝,只能使用copy模塊實現
    words = ['hello', 'good', [1, 6, 7], 'ok']
    words1 = words.copy()       # 淺拷貝
    words2 = copy.deepcopy(words)   # 深拷貝
    # 淺拷貝可以只認為拷貝了一層,當層次又深了之后,淺層次的是直接復制,深層次的是深拷貝
    # 深拷貝是 全部拷貝過來,不管你有多少層,深拷貝的內容一點不受影響
    words[0] = '你好'
    print(words)        # ['你好', 'good', [1, 6, 7], 'ok']
    print(words1)       # ['hello', 'good', [1, 6, 7], 'ok']
    print(words2)       # ['hello', 'good', [1, 6, 7], 'ok']
    
    
    words[2][0] = 99
    print(words)        # ['你好', 'good', [99, 6, 7], 'ok']
    print(words1)       # ['hello', 'good', [99, 6, 7], 'ok']
    print(words2)       # ['hello', 'good', [1, 6, 7], 'ok']
    
    

    拷貝的流程
    在這里插入圖片描述

    P91 元組的使用

    # 元組和列表很像,都是用來保存多個數據
    # 使用一對小括號,()來表示一個元組
    # 元組和列表的區別就在于,列表是可變的,而元組是不可變的
    words = ['hello', 'yes', 'good', 'hi']
    nums = (9, 5, 6, 4, 7, 8, 5)
    
    # 和列表一樣,元組也是一個有序的存儲數據的容器
    # 可以通過下邊來獲取元素
    print(nums[4])  # 7
    # 但是不能 對元組進行修改,一修改就會報錯,不能改
    print(nums.index(5))  # 1    有兩個相同元素打印前邊一個元素的位置下標
    print(nums.index(8))  # 5
    print(nums.count(5))  # 2     5元素出現的次數
    
    # 特殊情況,如何表示只有一個元素的元組呢?如果元組里只有一個元素,要再后邊加,
    # ages = (18)
    # print(type(ages))       # <class 'int'>
    ages = (18,)
    print(type(ages))  # <class 'tuple'>
    
    # tuple內置類
    print(tuple('hello'))  # ('h', 'e', 'l', 'l', 'o')
    
    # 怎樣把列表轉換為元組?元組轉換為列表?
    # tuple list set 都是這樣使用的
    print(tuple(words))  # ('hello', 'yes', 'good', 'hi')
    print(list(nums))  # [9, 5, 6, 4, 7, 8, 5]
    
    height = ('190', '156', '177', '181')
    print("*".join(height))  # 190*156*177*181
    
    # 元組也可以遍歷
    for i in nums:
        print(i, end='-')
    # 9-5-6-4-7-8-5-
    print()
    
    
    j = 0
    while j < len(nums):
        print(nums[j], end='#')
        j += 1
    # 9#5#6#4#7#8#5#
    

    P92 字典的基本使用

    # 列表可以存儲任意數據類型,但是一般情況下,我們都存儲單一數據類型
    name = ['zhangsan', 'lisi', 'wangwu']
    scores = [100, 98, 99, 97]
    
    # 這個列表里的每一個勻速到底代表的是什么?
    # 列表只能存儲值,但是無法對值進行描述
    
    person = ['zhangsan', 18, 56, 44, 55, 77]
    
    # 字典不僅可以保存值,而且還能對值進行描述
    # 使用大括號來表示一個字典,不僅有值value,還有值的描述key
    # key和value之間使用冒號來連接,多個鍵值對之間使用逗號來連接
    person = {'name': 'zhangsan',
              'age': 18,
              'math': 98,
              'English': 95,
              'height': 180,
              'weight': 150
              }
    
    

    P93 字典使用注意事項

    person = {'name': 'zhangsan',
              'age': 18,
              'math': 98,
              'English': 95,
              'height': 180,
              'height': 1000,
              'isPass': True,  # 值可以是布爾值
              'hobbies': ['唱', '跳', "rap", '籃球'],  # 也可以是列表
              4: 'good'  # key只能是不可變數據類型
    
              }
    # 1.字典里的key不允許重復,如果key重復了,后一個key對應的值會覆蓋前一個的值
    print(person)  # {'name': 'zhangsan', 'age': 18, 'math': 98, 'English': 95, 'height': 1000}
    # 2.字典里的value可以實任意數據類型,但是key只能使用不可變數據類型,一般使用字符串
    
    

    P94 從字典里獲取數據

    # 字典的增刪改查
    person = {'name': 'zhangsan',
              'age': 18,
              'math': 98,
              'English': 95,
              'height': 180,
              'isPass': True,  # 值可以是布爾值
              'x': 'y',
              }
    # 1. 查找數據(數據在保存的時候是無序的,無法通過下標來獲取數據)
    print(person['name'])  # zhangsan  使用key獲取到對應的value,注意引號不能省略
    
    x = 'age'
    print(person[x])        # 18
    # 通過value來查找key是不行的,因為value可以重復,而key不會重復
    
    # print(person['score']) # 如果要查找的key不存在,會報錯
    
    # 需求:獲取一個不存在的key時,不報錯,如果這個key不存在,就使用默認值
    # print(person.get('score'))      # None  使用字典的get方法,如果key不存在,會默認返回None,而不會報錯
    # 如果獲取不到value,使用給定的默認值
    print(person.get('gender','female'))        # female
    print(person.get('name', 'lisi'))       # zhangsan,如果能找到,就不適用默認值
    
    print(person)   # {'name': 'zhangsan', 'age': 18, 'math': 98, 'English': 95, 'height': 180, 'isPass': True, 'x': 'y'}
    # get方法只是獲取字典里邊的東西,獲取不到就返回默認值,不會對原字典產生任何影響,不會增加減少
    
    
    
    
    
    版權聲明:本文為zjl_xiaoliu原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/zjl_xiaoliu/article/details/108116730

    智能推薦

    電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!

    Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...

    requests實現全自動PPT模板

    http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...

    Linux C系統編程-線程互斥鎖(四)

    互斥鎖 互斥鎖也是屬于線程之間處理同步互斥方式,有上鎖/解鎖兩種狀態。 互斥鎖函數接口 1)初始化互斥鎖 pthread_mutex_init() man 3 pthread_mutex_init (找不到的情況下首先 sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev) 動態初始化 int pthread_...

    統計學習方法 - 樸素貝葉斯

    引入問題:一機器在良好狀態生產合格產品幾率是 90%,在故障狀態生產合格產品幾率是 30%,機器良好的概率是 75%。若一日第一件產品是合格品,那么此日機器良好的概率是多少。 貝葉斯模型 生成模型與判別模型 判別模型,即要判斷這個東西到底是哪一類,也就是要求y,那就用給定的x去預測。 生成模型,是要生成一個模型,那就是誰根據什么生成了模型,誰就是類別y,根據的內容就是x 以上述例子,判斷一個生產出...

    猜你喜歡

    styled-components —— React 中的 CSS 最佳實踐

    https://zhuanlan.zhihu.com/p/29344146 Styled-components 是目前 React 樣式方案中最受關注的一種,它既具備了 css-in-js 的模塊化與參數化優點,又完全使用CSS的書寫習慣,不會引起額外的學習成本。本文是 styled-components 作者之一 Max Stoiber 所寫,首先總結了前端組件化樣式中的最佳實踐原則,然后在此基...

    基于TCP/IP的網絡聊天室用Java來實現

    基于TCP/IP的網絡聊天室實現 開發工具:eclipse 開發環境:jdk1.8 發送端 接收端 工具類 運行截圖...

    19.vue中封裝echarts組件

    19.vue中封裝echarts組件 1.效果圖 2.echarts組件 3.使用組件 按照組件格式整理好數據格式 傳入組件 home.vue 4.接口返回數據格式...

    劍指Offer39-調整數組順序使奇數位于偶數前面

    一開始想著用冒泡排序的方法來做,但是bug還是很多,后來看了評論區答案,發現直接空間換時間是最簡單的,而且和快排的寫法是類似的。...

    【一只蒟蒻的刷題歷程】【藍橋杯】歷屆試題 九宮重排 (八數碼問題:BFS+集合set)

    資源限制 時間限制:1.0s 內存限制:256.0MB 問題描述 如下面第一個圖的九宮格中,放著 1~8 的數字卡片,還有一個格子空著。與空格子相鄰的格子中的卡片可以移動到空格中。經過若干次移動,可以形成第二個圖所示的局面。 我們把第一個圖的局面記為:12345678. 把第二個圖的局面記為:123.46758 顯然是按從上到下,從左到右的順序記錄數字,空格記為句點。 本題目的任務是已知九宮的初態...

    精品国产乱码久久久久久蜜桃不卡