zoukankan      html  css  js  c++  java
  • 【Finish】Python Day 6

    1、homework

    '''
    输出商品列表,用户输入序号,显示用户选中的商品
        商品 li = ['手机','电脑','鼠标垫','游艇']
    要求:
        1、li: 页面显示 序号+商品名称,如:
            1 手机
            2 电脑
            ……
        2、用户输入选择的商品序号,然后打印商品名称
        3、如果用户输入的商品序号有误,则提示输入有误,并重新输入
        4、用户输入Q或者q,退出程序
    '''
    while 1:
        li = ['手机','电脑','鼠标垫','游艇']
        for i in li:
            print('{}		{}'.format(li.index(i)+1,i))
        num_of_choice = input('please input your choice id:')
    
        if num_of_choice.isdigit():
            num_of_choice = int(num_of_choice)
            if num_of_choice>0 and num_of_choice <= len(li):
                print('your choice is '+li[num_of_choice-1])
            else:print('please input correct digit')
        elif num_of_choice.lower() == 'q':
            break
        else:
            print('please input the digit')
    

    2、小知识点总结回顾

    pytho2和pytho3区别

    # python2
    # print 'abc' # print不用加括号,但是也可以加括号
    # range() xrange() # xrange是生成器,可以转换成range
    # raw_input() # 输入
    
    # python3
    # print('abc') # print必须加括号
    # range() # 无xrange
    # input() # 输入
    
    # = :赋值运算,让2者指向同一个内存地址
    # == :比较值
    # is : 比较内存地址
    # id(内容) :测出内存地址
    
    # 数字,字符串
    # 小数据池,为了节省空间,在一定范围内(-5 -- 256),i1和i2 指向的内存是一致的
            # i1 = 300
            # i2 = 300
    # 字符串:1、不能有特殊字符 比如¥等 指向不同的内存地址
    #         i1 = 'alex$'
    #         i2 = 'alex$'
    #         2、i1和i2 都是 'abc'*20,i1和i2指向的内存是相同的 i1和i2 都是 'abc'*21 ,i1和i2指向的内存是不同的
    # 只有字符和数字有小数据池的概念
    
    Python2和Python3 编码
    # Python2 和 Python3 编码
    Ascii
        只有英文
        1个英文 占 8位(1个字节)
    Unicode
        开始16位,后来32位
        英文和中文都是32位(4个字节)
    utf-8
        英文:8位(1个字节)
        中文:24位(3个字节)
    GBK系列
        英文:8位(1个字节)
        中文:16位(2个字节)
    1、各个编码之间的二进制,是不能互相识别的,会出现乱码
    2、文件的储存、传输 不能是Unicode,(只能是utf-8,utf-16,gbk,gb2312,ascii等)
    

    python3 编码

        str在内存中是用Unicode编码
        bytes类型:utf-8 或者 gb2312 编码
        如果str需要存储和传输,需要将str转换成bytes
    
        对于英文
            str :表现形式:s = 'alex'
                  编码方式:01 Unicode
            bytes:表现形式:s = b'alex'
                   编码方式:01,utf-8,gb2312……
        对于中文
            str :表现形式:s = '中国'
                  编码方式:01 Unicode
            bytes:表现形式:s = b'xe91e91e01e21e31e32'
                   编码方式:01,utf-8
    
    s1 = 'alex'
    # encode:如何将 str->bytes
    s11 = s1.encode('utf-8') #b'alex'
    s11 = s1.encode('gbk') # b'alex'
    
    s2 = '中国'
    # encode:如何将 str->bytes
    s11 = s2.encode('utf-8') # b'xe4xb8xadxe5x9bxbd'
    s11 = s2.encode('gbk') # b'xd6xd0xb9xfa'
    

      

  • 相关阅读:
    Day 38
    Day 37
    Day 36
    Day 35
    Day 34
    Day 33
    Day 32
    Day 31
    Day 30
    华为CE6180高级ACL配置
  • 原文地址:https://www.cnblogs.com/wonderful0714/p/9332543.html
Copyright © 2011-2022 走看看