zoukankan      html  css  js  c++  java
  • 第二章:python基础,数据类型

    """
    第二章:python基础,数据类型
    2.1 变量及身份运算补充
    2.2 二进制数
    2.3 字符编码
    每8位所占的空间位一个比特,这是计算机中最小的表示单位。
    每8个比特组成一个字符。这是计算机中最小的存储单位。
    每8个字符又组成一个字节,8bit=1bytes 缩写为1B
    GBK 和GB2312
    中文和数字的对应表,一个汉字对应两个字节
    UTF-8
    现代计算机系统通用的字符编码工作方式:
    用记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里,
    编辑完成之后,保存的时候再将Unicode 转换为UTF-8保存到文件。
    2.4 基本数据类型-数字
    布尔型(0-1)
    整型:python 中整型属于int类型,默认为十进制表示。
    浮点型(float):python 中的浮点数就是小数,这里的小数不包括无限不循环小数。
    在运算中,整数与浮点数运算的结果也是一个浮点数。
    整数与浮点数在计算机内部存贮的方式是不同的,整数运算永远是精确的,而浮点数运算则可能是有四舍五入的误差
    关于小数不精确问题:
    python默认的是17位精度,也就是小数点后16位,尽管有16位,但是这个精确度却是越往后越不准的
    复数:a+bj
    a是实部,b是虚部
    2.5基本数据类型字符串
    字符串的特性:
    补充1:字符串的单引号和双引号都不能取消特殊字符的含义,如果想让引号内所有字符
    均取消其特殊含义,在引号前面加r
    字符串的常用操作:
    1,索引(从左到右是从0开始,从右边到左边是从-1开始)
    2,查找
    s='qwertyui'
    print(s.find('c'))
    print(s.find('r'))
    -1
    3
    如果查找的字符串中有改字符,会返回这个字符所在的位置,
    如果没有该字符,就会返回-1
    3,移除空白或者移除特殊的字符
    lstrip()从左边移除
    rstrip()从右边移除
    strip()左右两边都移除
    s=' qwert '
    print(s.strip())
    print(s.lstrip())
    print(s.rstrip())
    s=' qwert '
    print(s.strip())
    print(s.lstrip())
    print(s.rstrip())
    4,长度len
    5,替换,replace()
    s='qwert'
    print(s.replace('q','Q'))
    第一个位置元素表示将要替换掉的字符,第二个位置表示用来替换的字符
    6,切片
    s='qwertyuiop'
    a=s[0:7]
    print(s)
    print(a)
    输出的结果是qwertyuiop qwertyu
    中括号内第一个数字表示开始切的起始位置,第二个位置表示终止位置,顾头不顾尾
    b=s[0:7:2]
    第三个位置的2表示间隔2个字符取,如果不填,默认没有间隔
    第一个位置的数如果不填默认从头开始,第二个位置的数不填默认取到结尾结束
    2.6 基本数据类型列表
    列表的特点和常用操作:
    特性:
    1,可存放多个值.
    2,按照从左到右的顺序定义元素,下表从0开始顺序访问,有序
    常用操作:
    1,索引(这个和字符串是一样的,从做开始是0,从右边开始是-1)
    2,切片(这个也和字符串是一样的,中括号第一个元素表示开始,第二个位置表示结束,第三个位置表示间隔)
    3,追加
    list1=[1,2,3,4,5]
    list1.append(8)
    print(list1)
    [1, 2, 3, 4, 5, 8]
    这个只从最后面开始加
    4,删除(注意列表是可变类型)
    list1=[1,2,3,4,5]
    list1.remove(1)
    print(list1)
    5,长度(len)
    6,包含(in)
    list1=[1,2,3,4]
    print(2 in list1)
    print(6 in list1)
    True
    False
    7,循环
    list1=[1,2,3,4]
    for i in list1:
    print(i)
    1
    2
    3
    4
    列表和字符串---split 和join
    #分割
    s='hello world'
    print(s.split(' '))
    ['hello', 'world']
    分割后的字符串会自动生成一个列表返回。
    s2='hello,world'
    print(s2.split(','))
    ['hello', 'world']
    #连接 join
    list1=['hi','szp','你好啊']
    print('!'.join(list1))
    hi!szp!你好啊
    结果就会生成一个字符串,这个字符串是前面的那个列表中的元素拼接组成的
    拼接的部分也就是连接的部位都要加上那个拼接的元素
    range:范围
    print(list(range(1,10)))
    print(list(range(1,10,2)))
    [1, 2, 3, 4, 5, 6, 7, 8, 9]
    [1, 3, 5, 7, 9]
    这里同样有着顾头不顾尾的原则,第一个元素表示起始的数字,第二个元素表示终止
    的数字第三个元素表示间隔
    2.7 基本数据类型--元组
    元组的定义和特征:
    定义:与列表类似,不过[ ]改成()
    特性:1可以存放多个值 2不可变 3按照从左到右的顺序定义元组,下标从0开始访问,有序
    元组的创建与常用操作:
    1,创建
    ages=(11,22,33,44,55)
    ages2=(11,22,33,44,55,66)
    print(type(ages),type(ages2))
    <class 'tuple'> <class 'tuple'>
    2,索引(这个和字符串列表的操作一样)
    3切片
    ages=(1,2,3,4,5)
    print(type(ages))
    ages2=ages[0:3]
    print(ages2)
    <class 'tuple'>
    (1, 2, 3)
    4,长度(len)
    5,包含(in)
    元组的特性详解
    元组可以存放多个值,元组中不仅可以存放数字、字符串,还可以存放更加复杂的数据类型
    元组是不可变类型,如果元组中还包含其他可变元素,这些可变元素可以改变
    2.8 可变不可变类型和hash
    当一个量的值改变而Id可以不改变,那么这个量我们称之位可变类型,就是在id不变的基础上,值可以改变
    相反,在ID不变的基础上,如果值不改变,那么就是不可变类型
    hash算法也就是将一个可以被hash的数据,转化成一个固定长度的数字
    不同的数据转换过来的数字也是绝对不相同的,除非原始数据一模一样,否则不会出现重复
    但是:可变的数据类型是不可以被hash的,如果一个值可以被hash那么说明这是一个不可变的数据类型。
    2.9 基本数据类型——字典
    字典的定义与特征:
    字典是Python语言中唯一的映射类型
    定义:{key1:value1,key2:value2,key3:value3}
    1,键与值用冒号:隔开
    2,项与项用逗号,分开
    特性:
    1,key-value结构
    2,key必须可以被hash,且必须为不可变数据类型,必须唯一
    3,可以存放任意多个值,可修改,可以不唯一
    4,无序
    字典的常见操作:
    1,键、值、键值对
    dic.keys()返回一个字典所有key的列表
    dic.values()返回一个字典所有value的列表
    dic.items()返回一个包含所有(键,值)元组的列表
    dict1={'姓名':'孙zp','年龄':'24','性别':'男'}
    print(dict1.keys())
    print(dict1.values())
    print(dict1.items())
    dict_keys(['姓名', '年龄', '性别'])
    dict_values(['孙zp', '24', '男'])
    dict_items([('姓名', '孙zp'), ('年龄', '24'), ('性别', '男')])
    2,新增
    dic['new_key']='new_value'
    dict1={'姓名':'孙zp','年龄':'24','性别':'男'}
    print(dict1)
    dict1['学校']='同济大学'
    print(dict1)
    字典里面新增不是用append 而是直接写入新的值就可以
    3,删除
    dic.pop(key[default])和get方法相似,如果字典中存在key,删除并返回key对应的value,如果key不存在
    且没有给出default的值,就会引发keyerror异常
    dict.clear()删除字典中的所有项与元素
    dict1={'姓名':'孙zp','年龄':'24','性别':'男'}
    dict1.pop('姓名')
    print(dict1)
    {'年龄': '24', '性别': '男'}
    4,修改
    dic['key']='new_value' 如果key在字典中存在,new_value就会替换原来得值
    dic.update(dic2)将字典dic2的键值对添加到dic中
    dict1={'姓名':'孙zp','年龄':'24','性别':'男'}
    dict1['姓名']='王大锤'
    print(dict1)
    dict2={'学校':'同济大学'}
    dict1.update(dict2)
    print(dict1)
    {'姓名': '王大锤', '年龄': '24', '性别': '男'}
    {'姓名': '王大锤', '年龄': '24', '性别': '男', '学校': '同济大学'}
    5,查看 dic['key']返回字典中key对应得值,若key不存在字典中,则报错 dic.get(key,default=None)返回字典中key对应得值,若key不存在字典中,则返回default的值 (default默认的值位none)dict1={'姓名':'孙zp','年龄':'24','性别':'男'}print(dict1['性别'])男6,循环 for k in dic.key() for k,v in dic.items() for k in dic7,长度(len)2.10 基本数据类型--集合认识集合:集合是一个数学概念,由一个或者多个确定的元素集合中元素有三个特征:确定性,互异性,无序性集合的关系运算& 交集|,|并集l={'张三','李四','王五'}p={'张三','王五','小强'}print(l&p)###求两个的交集print(l-p)print(p-l){'张三', '王五'}{'李四'}{'小强'}集合的常用操作:1,元素的增加add() 作用类似于列表的appendupdate() 元素的删除集合删除单个元素又两种方法:当集合中没有要删除的这个元素时set.discard(x)不会抛出异常set.remove(x)会抛出异常p={'张三','王五','小强'}p.remove('王五')print(p)p.discard('张三')print(p){'张三', '小强'}{'小强'}pop()随即弹出一个集合中的元素,如果集合是空的,会报错"""
  • 相关阅读:
    confluent-kafka python Producer Consumer实现
    kafka producer.poll producer.flush consumer.poll的区别
    kafka Java创建生产者报错:Invalid partition given with record: 1 is not in the range [0...1)
    Kafka通讯的Java实例
    虚机克隆搭建kafka服务器集群
    kafka报错解决:Broker may not be avaliable
    Kafka+Zookeeper+confluent-kafka搭建
    Kafka学习笔记
    【SpringCloud】 第十篇: 高可用的服务注册中心
    【SpringCloud】 第九篇: 服务链路追踪(Spring Cloud Sleuth)
  • 原文地址:https://www.cnblogs.com/1832921tongjieducn/p/10437639.html
Copyright © 2011-2022 走看看