zoukankan      html  css  js  c++  java
  • py2/py3区别, 列表生成式, 网络编程, socketserver, 线程, uuid模块

    一. 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:WindowsSystem32driversetchosts
                            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 time
    import threading
    
    
    def 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 uuid
    v = str(uuid.uuid4())
    print(v)
    
  • 相关阅读:
    Codeforces 834D The Bakery
    hdu 1394 Minimum Inversion Number
    Codeforces 837E Vasya's Function
    Codeforces 837D Round Subset
    Codeforces 825E Minimal Labels
    Codeforces 437D The Child and Zoo
    Codeforces 822D My pretty girl Noora
    Codeforces 799D Field expansion
    Codeforces 438D The Child and Sequence
    Codeforces Round #427 (Div. 2) Problem D Palindromic characteristics (Codeforces 835D)
  • 原文地址:https://www.cnblogs.com/NachoLau/p/9601139.html
Copyright © 2011-2022 走看看