python笔记 (2)

Posted on 2017-11-18 20:21  孤竹孙  阅读(145)  评论(0编辑  收藏  举报
day02-数据类型、运算符

一、单位换算
    1000 0101
    1位  1bit(比特)   1b
    1字节(bytes)B = 8b
    1B = 8b
    1024B = 1KB
    1024KB = 1MB
    1024MB = 1GB
    1024GB = 1TB

    1B 十进制的数的范围
    0000 0000  
    1111 1111  
    无符号  0-255
    有符号  -128-127

    计算机如何存储负数?
    最高位当做符号位(有符号,无符号)
    0000 0011   3
    1000 0011   -3
    原码、反码、补码,计算机存储的都是补码
    正数的原码、反码、补码都是一样的,三位一体
    对于负数:
        -3
        1000 0011    原码
        1111 1100    反码
        1111 1101    补码  再求补码就是原码
        1000 0010
        1000 0011
二、数据类型
    数字型(Number)
    布尔型(Boolean)
    空(None)
    字符串(String)
    列表(List)
    元组(Tuple)
    集合(Set)
    字典(Dictionary)

    数字型
        就是平常你存放到变量中的100,1.34等等,类似于100的类型称之为整型(int)integer,类似于1.34的类型称之为浮点型(float)
        【注】切忌在代码中判断浮点数是否相等,因为计算机存储浮点数有一个精度值,不是那么准确
    通过type函数来判断变量的类型
        print(type(a))
    布尔型
        真   True
        假   False
    空(None)
        a = None
    字符串
        在python中,字符串要使用单引号或者双引号括起来,单引号和双引号没有区别
        单引号里面不能再加单引号,但是可以加双引号
        双引号里面不能再加双引号,但是可以加单引号
        如果字符串比较长,一行显示不下,怎么写
        第一种:
        e = '今天早上,我在楼下碰见一个美女,'\
            '我给她打招呼,他不搭理我,然后我说,咱两认识呀'
        第二种:
        f = '今天早上,我在楼下碰见一个美女,\
            我给她打招呼,他不搭理我,然后我说,咱两认识呀'
        第三种:
        g = '''多行字符串'''
        h = """多行字符串"""

        字符串长度
            无论是英文还是中文,字符串长度都是有几个字就是多长,不用关心底层到底怎么存的
        提取某个字符
            从左边开始,下标从0开始
            从右边开始,下标从-1开始
            string[0]   第一个字符
            string[-1]  最后一个字符
            字符串起名字不能是  str  因为str是关键字
        转义字符
            将原来的意义给去除掉
            j = 'i love you\' baby'
            k = "我喜欢的明星叫\"做李小龙"
            单引号里面添加单引号需要使用转义字符
            双引号里面添加双引号需要使用转义字符
            系统有一些特殊意义的字符
            \n    换行符
            \t    制表符
            l = '花田里犯了错,说好,第\\n二天早上忘掉'
            通过转义字符让 \n 失去意义

            print('你好\t王宝强的媳妇\t\t\t马蓉蓉')
            print('你好啊\t王宝强的经纪人进监狱了\t宋吉吉')
            制表符的意义,如果想失去意义,加\取消原来的意义

            a = r"初心未改,虔诚不变,\n不懈攀登,谁与争锋"
            直接 \n 符就失去意义,就是一个普通字符
        字符串里面的  +  *
            c = a + ',' + b + '.html'
            【注】a和b的类型必须都是字符串
            print('' * 10)
            原来的字符串直接拼接10次
        字符串切片
            字符串截取
            a[开始下标:结束下标]
            代表的意思是从开始下标开始提取,到结束下标结束,包括开始下标,但是不包括结束下标
            a[0:3]   提取012
             a[:3]    提取012
             a[2:]    提取2到末尾
             a[2:-2]  提取2到倒数第二个,不包括倒数第二个
             a[-4:]   提取最后4个字符
             a[:]     提取所有

             a[::2]   最后一个是步进值,隔一个取一个
             a[::-1]  字符的逆序  背下来
         字符串的不可变
             字符串里面的内容不可变
             但是字符串变量可以改变
         字符串的格式化
             print('我叫%s, 我喜欢%s, 我今年%d岁了' % (name, like, age))
             %s    给字符串占位置的
             %d    给int类型占位置的
                   %10d  总共10位,前面补空格
                   %010d 总共10位,前面补零
             %f    给float类型占位置的
                   默认保留6位小数
                   %.2f  保留2位小数
                   %10.2f  保留2位小数,一共10位,前面补空格
                   %010.2f 保留2位小数,一共10位,前面补零
             %c    打印一个字符
                 ascii码   ascii表格
                 8位  0-127
                 计算机存储的都是二进制,看程序怎么读取它,如果按照十进制读取,那么就是97,如果按照字符读取,就会参考ascii表,读出来是小写字母a
                 print('%d' % 'a')  python中没有单个字符,这么写报错
                 ord   将字符转化为ascii值
                 chr   将ascii值转化为字符
                 a-z   97-122
                 A-Z   65-90
                 0-9   48-57
             %o
                 将十进制按照八进制打印
             %x
                 将十进制按照十六进制打印
         第二种格式化方式
             print('我叫{}, 我喜欢{}, 我今年{}岁了, 我的身高为{}cm'.format(name, like, age, 175.345))

             print('我叫{3}, 我喜欢{2}, 我今年{1}岁了, 我的身高为{0}cm'.format(name, like, age, 175.345))
             name替换0  like替换1  以此类推

             print('我叫{nana}, 我喜欢{like}, 我今年{lala}岁了, 我的身高为{dudu}cm'.format(lala=age, dudu=175.345, nana=name, like=like))
         print换行问题
             print('hello', end='')

     列表(list)
         通过[]来进行定义
         里面可写字符串、整型、列表等
         列表取值
             下标从0开始
             lt[0]       第一个元素
             lt[-1]      最后一个元素
             lt[-1][0]   最后一个元素列表的第一个元素
         列表元素可修改
         存在越界问题
         列表相加
             组成一个新的列表,包含两个列表所有元素
             【注】必须都是列表才可以
         *
             生成一个新的列表,列表重复n次
         列表赋值
             [a, b, c] = [100, 200, 300]
             前后列表的个数必须相等
         列表切片
             # print(lt[:3])
            # print(lt[::-1])
            # print(lt[::2])
            # print(lt[1:-2])
        lt[::] = []   清空列表
        lt[0:2] = []  删除列表前两个元素

    元组(tuple)
        定义和列表几乎上一样,就是使用()括起来即可
        【注】元组是不可变元素,但是可以修改元组中的列表中的元素
        【注】如果元组中只有一个元素,那么需要添加一个逗号,否则就不是元组了
        元组元素的访问和列表一样
        元组的切片
            和字符串、列表一样
            print(t3[-1:-2:-1])
            【注】从后面往前面切的时候,要记得将步进值设置为你想要的步进值,比如-1。默认是往后面切的
            元组切完之后还是元组
            字符串切完之后还是字符串
            列表切完之后还是列表
            元组也有  +  *
                作用和字符串、列表都一样

    集合(set)
        无序性、唯一性
        s1 = {'李白', '杜甫', '白居易', '李白', '杜甫', '白居易'}
        定义空集合
        s2 = set()
        不能使用{}  ,默认这个是空字典

        # print(s1 & s2)   交集
        # print(s1 | s2)   并集
        # print(s1 - s2)   差集  这两个差集不一样,要注意
        # print(s2 - s1)   差集

    字典(dictionary)
        说明:是由键值对构成的
        键和值中间使用冒号隔开
        各个键值对中间使用逗号隔开
        键值对必须成对出现
        键是唯一的,值是随便的

        根据键获取值,格式如下
        a = d1['name']
        print(a)
        如果键不存在,报错

        d1.get('name')
        键存在,返回值,键不存在,返回None

        添加修改值
        d1['name'] = 'maodan' 
        如果键存在,代表修改键值对,如果键不存在,代表添加键值对
        字典是可变的

        删除
        del d1['haha']   根据键删除键值对
        del d1           删除整个字典

        通过len求长度,里面有多少个键值对

 

Copyright © 2024 孤竹孙
Powered by .NET 8.0 on Kubernetes