第三章 基本数据结构

3.1 数字类型

3.1.1 整数类型
  • 整型(int):整型常量是不带小数点的数

    • 一般的整型常量是十进制的,Python还允许将整型常量表示为二进制,八进制和十六进制
      • 二进制:以"0b"或"0B"开头,后面是二进制数字(0或1)
      • 八进制:以"0o"或"0O"开头,后面是八进制数字(0~7)
      • 十六进制:以"0x"或"0X"开头,后面是十六进制数字(0~9a~fA~F)
  • 布尔型(bool):布尔型常量也称逻辑常量

    • True

    • False

3.1.2 浮点数类型
  • 浮点数类型的名称为:float

  • 浮点数的取值范围为:-10308~10308

3.1.3 复数类型
  • complex(实部,虚部)
3.1.4 小数类型
  • 创建和使用小数对象:Decimal()
  • 小数的默认全局精度为28位有效数字
3.1.5 分数类型
  • x = Fraction(a,b) # a为分子,b为分母,Python自动计算x为最简分数

  • 浮点数转分数:Fraction.from_float()

3.2 数字运算

3.2.1 算术运算符
  • + - * /
  • / 真除法:无论操作数是否为整数,计算结果都为浮点数,保留小数部分
  • // floor除法 (整除):"x//y" 计算结果位不大于x除以y结果的最大整数
  • % 取余数:x%y 计算x除以y的余数,余数符号与y一致
  • ** 指数,幂运算
  • () 可以改变优先级
3.2.2 赋值运算符
  • = 将等号右边的结果赋值给等号左边的变量

  • 等号左边,必须是变量,不能是具体的数字

3.2.3 增强赋值运算符
  • += c+=a ===> c = c + a
3.2.4 位运算
  • 按位取反"~" 操作数在二进制中,1取反为0,0取反为1,符号位也取反

  • 按位与"&" 相同位置上的两个数都是1时,与的结果为1,否则为0

  • 按位异或"^" 相同位置上的数字相同时为0,否则为1

  • 按位或"|" 相同位置上有一个数为1时结果为1,否则为0

  • 向左移位"<<" 向左移动一位等同于乘以2

  • 向右移位">>" 向右移动一位等同于除以2

3.2.5 比较运算符
  • == 判断是否相等, 相等是 True. 不相等是 False

  • != 判断是否不相等, 不相等是 True, 相等 False

  • >

  • <

  • >=

  • <=

3.2.6 逻辑运算符
  • and 逻辑与, 连接的两个条件都必须为 True,结果为 True, 一假为假如果第一个条件为 False,就不会再判断第二个条件

  • or 逻辑或, 连接的两个条件都为 False,结果为 False, 一真为真如果第一个条件为 True,第二个条件就不会再判断了

  • not 逻辑非, 取反,原来是 True,变为 False,原来是 False,变为 True

3.3 字符串类型

3.3.1 字符串常量
  • 表示方法

    • 单引号:‘a’,‘asd’,‘123’

    • 双引号:“a”,“asd”,“123”

    • 三个单引号或双引号:“”“sdfew gffd”“”,三引号字符串可以包含多行字符

    • 带前缀"r"或"R"前缀的Raw字符串:r’abc\n123’

    • 带"u"或"U"前缀的Unicode字符串,字符串默认为Unicode字符串,"u"或"U"前缀可以省略

  • 字符串都是str类型的对象,可用内置的str()函数来创建字符串对象

    x=str(123)
    
  • 常用转义字符

    • \\:反斜杠

    • \':单引号

    • \":双引号

    • \a:响铃符

    • \b:退格符

    • \f:换页符

    • \n:换行符

    • \r:回车符

    • \t:水平制表符

    • \v:垂直制表符

    • \0:Null,空字符

    • \ooo:3位八进制数表示的Unicode码对应字符

    • \xhh:2位十进制数表示Unicode码对应字符

3.3.2 字符串操作符
  • in:判断字符串包含关系

    >>> x = 'asdfghj'
    >>> 'a' in x
    True
    >>> 'c' in x
    False
    
  • 空格:以空格分隔(或没有分隔符号)的多个字符串可自动合并

    >>> '12' '34' '56'
    '123456'
    
  • 加号:将多个字符串合并

    >>> '12'+'34'+'56'
    '123456'
    
  • 星号:将字符串复制多次以构成新的字符串

    >>> '12'*3
    '121212'
    
  • 逗号:使用逗号分隔字符串时,会创建字符串组成的元组

    >>> x='abc','def'
    >>> x
    ('abc',def)
    >>> type(x)
    <class 'tuple'>
    
3.3.3 字符串的索引
  • 字符串是一个有序的集合,其中的每个字符可通过偏移量进行索引或分片。字符串中的字符按从左到右的顺序,偏移量分别为:0,1,2,3…len-1(最后一个字符的偏移量为字符串长度减一);或者为:-len…-2,-1。

  • 索引指通过偏移量来定位字符串中的单个字符。

    >>> x = 'asdfgh'
    >>> x[0]   # 索引第一个字符
    'a'
    >>> x[-1]  # 索引最后一个字符
    'h'
    >>> x[3]   #索引第四个字符
    'f'
    

索引可以获得指定位置的单个字符,但不能通过索引来修改字符串

3.3.4 字符串的切片
  • 字符串的切片也称分片,它利用索引范围从字符串中获得连续的多个字符(子字符串),基本格式如下:

    x[ start : end ] 表示返回字符串x中从偏移量start开始到 偏移量end之前的子字符串其中start的默认值为0,end默认值为字符串长度

  • 通过步长参数跳过中间字符获取字符串
    x[ strat : end : step ]

    >>> x = '0123456789'
    >>> x[1:7:2]  #返回偏移量为1,3,5,的字符
    '135'
    
3.3.5 迭代字符串
  • 字符串是有序的字符集合,可用for循环迭代处理字符串

    >>> for a in 'abc'
    ...   print(a)
    ...
    a
    b
    c
    
3.3.6 字符串处理函数
  • 求字符串长度:len()
  • 非字符串数据转换为字符串:str()repr()
  • 求字符串Unicode码:ord()
  • 将Unicode码转换为字符:chr()
3.3.7 字符串处理方法

字符串是str类型的对象,Python提供了一系列方法用于处理字符串。常用的字符串处理方法如下:

  • capitalize():将字符串第一个字母大写,其余字母小写,返回新的字符串
  • count(sub[,start[,end]]):返回字符串 sub 在当前字符串的[start,end]范围内出现的次数,省略范围时会查找整个字符串
  • endswith(sub[,start[,end]]):判断当前字符串的[start,end]范围内的子字符串是否以sub字符串结尾
  • startswith(sub[,start[,end]]):判断当前字符串的[start,end]范围内的子字符串是否以sub字符串开头
  • expandtabs(tabsize=8):将字符串中的Tab字符替换为空格,默认参数为 8,即将一个Tab字符替换为8个空格
  • find(sub[,start[,end]]):在当前[start,end]范围内查找子字符串sub,返回sub第一次出现的位置,没找到时返回-1
  • index(sub[,start[,end]]):与find()方法相同,只是在未找到子字符串时产生ValueError异常
  • rfind(sub[,start[,end]]):在当前[start,end]范围内查找子字符串sub,返回sub最后一次出现的位置,没找到时返回-1
  • rindex(sub[,start[,end]]):与rfind()方法相同,只是在未找到子字符串时产生ValueError异常
  • format(args):字符串格式化,将字符串中用"{}"定义的替换域依次用参数argd中的数据替换
  • format_map(map):使用字典完成字符串格式化
  • isalnum():当字符串不为空且不包含任何非数字或字母(包括各国文字)的字符时返回 True,否则返回False
  • isalpha():当字符串不为空且其中的字符全部是字母(包括各国文字)时返回 True,否则返回False
  • isdecimal():当字符串不为空且其中的字符全部是数字时返回 True,否则返回False
  • islower():字符串中的字母全部是小写字母时返回True,否则返回False
  • isupper():字符串中的字母全部是大写字母时返回True,否则返回False
  • isspace():字符串中的字符全部是空格时返回True,否则返回False
  • ljust(width[, fillchar]):返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。
  • rjust(width[, fillchar): 返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串
  • lower(): 转换字符串中所有大写字符为小写
  • upper(): 转换字符串中的小写字母为大写
  • lstrip([chars]): 截掉字符串左边的空格或指定字符
  • rstrip([chars]): 删除字符串字符串末尾的空格
  • strip([chars]): 在字符串上执行 lstrip()rstrip()
  • swapcase():将字符串中大写转换为小写,小写转换为大写
  • zfill (width):返回长度为 width 的字符串,原字符串右对齐,前面填充0
3.3.8 字符串的格式化

除了可以用format()方法进行字符串格式化外,还可以使用格式化表达式来处理字符串。基本格式如下:

格式字符串 % (参数1,参数2......)

  • Python格式化控制符

    符 号描述
    %c格式化字符及其ASCII码
    %s格式化字符串
    %d格式化整数
    %u格式化无符号整型
    %o格式化无符号八进制数
    %x格式化无符号十六进制数
    %X格式化无符号十六进制数(大写)
    %f格式化浮点数字,可指定小数点后的精度
    %e用科学计数法格式化浮点数
    %E作用同%e,用科学计数法格式化浮点数
    %g%f和%e的简写
    %G%f 和 %E 的简写
    %p用十六进制数格式化变量的地址

格式控制符的基本格式:%[name][flags][width[.precision]]格式控制符 其中:name为圆括号括起来的字典对象的键,width 指定数字的宽度,precision 指定数字的小数位数,flags为标识符。

3.4 数据类型操作

3.4.1 类型判断
  • 可以使用type()函数查看数据类型
3.4.2 类型转换
  • int()函数可以将一个字符串按指定进制转换为整数:int('整数字符串',n)
  • float()函数可以将整数和字符串转换为浮点数
  • 转换字符串
    • str()repr()
    • bin():将整数转换为二进制字符串
    • oct():将整数转换为八进制字符串
    • hex():将整数转换为十六进制字符串
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值