py2/py3區別, 列表產生式, 網路編程, socketserver, 線程, uuid模組

來源:互聯網
上載者:User

標籤:python   3.1   byte   bytes   etc   recv   網卡   廣播風暴   jpg   

一. py2/py3區別
    - 編碼&字串
        字串:
            py2:
                unicode         v = u"root"    本質上用unicode儲存(萬國碼)
                (str/bytes)     v = "root"     本質用位元組儲存
            py3:
                str                v = "root"     本質上用unicode儲存(萬國碼)
                bytes           v = b"root"    本質上用位元組儲存
        編碼:
            py2:
                - ascii
                檔案頭可以修改:#-*- encoding:utf-8 -*-
            py3:
                - utf-8
                檔案頭可以修改:#-*- encoding:utf-8 -*-

            注意:檔案是如何儲存?
    - 繼承
        py2: 經典類/新式類
        py3: 新式類
    - 範圍
        py2:range/xrange
        py3:       range
    - 輸入
        py2: v1 = raw_input(‘請輸入使用者名稱:‘)
        py3: v2 = input(‘請輸入使用者名稱:‘)
    - 列印
        py2: print ‘xx‘
        py3: print(123)

 

二. 列表產生式
v = [lambda x: x + i for i in range(10)]
print(v)   # 10個記憶體位址組成的列表

 

三. 網路編程

    1. 我的電腦有網卡,網卡裡有mac地址

    2. 我到某個地方插上網線,路由器或交換器中的DHCP服務為我自動分配IP地址。
        IP: 192.168.13.84
             IPv4
                00000000.00000000.00000000.00000000
                0~255    0~255    0~255    0~255
             IPv6
                00000000.00000000.00000000.00000000.00000000.00000000
        子網路遮罩:255.255.255.0
            192.168.13.84
            255.255.255.0   # 也可以是255.255.254.0

            192.168.12.84
            255.255.255.0
            將擋住的IP位元作為網段。
            未擋住的部分作為可變的值。

        網關IP:192.168.13.1

        區域網路內、城域網、廣域網路:
            廣播
            單播
            廣播風暴
            arp協議


    DNS
        網路連接:
            - 網域名稱解析
                www.bitfinex.com  127.91.64.33
            - 串連
                sk = socket.socket()
                sk.connect((‘47.95.64.113‘,80))
                ...
        問題來了,網域名稱和IP的對應關係在哪裡?
            本地:
                Win本地電腦:
                    C:\Windows\System32\drivers\etc\hosts
                        11.11.11.11 bitifnex.com
                Linux/Mac電腦:
                    /etc/hosts

            DNS伺服器:全球頂級DNS伺服器13台
                www.bitfinex.com  127.91.64.33

        創業:
            a. 租一個伺服器+公網IP
            b. 租網域名稱
                網域名稱+IP解析

 

四. socketserver

    注意:如果想要提高效率可以使用多線程。

    """    pip3 install requests   # 需要安裝    """    import threading    import requests    import uuid    url_list = [        ‘https://www3.autoimg.cn/newsdfs/g28/M05/F9/98/120x90_0_autohomecar__ChsEnluQmUmARAhAAAFES6mpmTM281.jpg‘,        ‘https://www2.autoimg.cn/newsdfs/g28/M09/FC/06/120x90_0_autohomecar__ChcCR1uQlD6AT4P3AAGRMJX7834274.jpg‘,        ‘https://www2.autoimg.cn/newsdfs/g3/M00/C6/A9/120x90_0_autohomecar__ChsEkVuPsdqAQz3zAAEYvWuAspI061.jpg‘,    ]    def task(url):        """        1. DNS解析,根據網域名稱解析出IP        2. 建立socket用戶端    sk = socket.socket()        3. 向服務端發起串連請求 sk.connect()        4. 發送資料(我要圖片) sk.send(...)        5. 接收資料            sk.recv(8096)        接收到資料後寫入檔案。        """        ret = requests.get(url)        file_name = str(uuid.uuid4()) + ‘.jpg‘        with open(file_name, mode=‘wb‘) as f:            f.write(ret.content)    for url in url_list:        t = threading.Thread(target=task,args=(url,))        t.start()

 

五. 線程

import timeimport threadingdef task(n):    print(‘開始執行任務:‘,n)    time.sleep(10)    print(‘...‘)    print(‘任務%s 執行完畢:‘%n)while True:    name = input("請輸入任務:")    t = threading.Thread(target=task,args=(name,))    t.start()

 

六. uuid模組

import uuidv = str(uuid.uuid4())print(v)

 

py2/py3區別, 列表產生式, 網路編程, socketserver, 線程, uuid模組

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.