一、序列类型

  序列类型是用来表示有序的元素集合

1、字符串(str)

  python中字符串通常用str表示,字符串是使用单引号,双引号,三引号包裹起来的字符的序列,用来表示文本信息。 

1.1 字符串的定义

  a = '123'
  b = "123"
  c = '''123'''
  print(type(a),type(b),type(c))

  <class 'str'> <class 'str'> <class 'str'> 
  

  使用单引号或者双引号表示字符串时没有任何区别,当要表示字符串的单引号时用双引号表示,反之亦然。 
  print('我是"双引号"')
  print("我是'单引号'")     

  单引号,双引号只能创建单行的字符串,想要创建多行数据时需要使用三引号,三引号通常用来表示多行注释等。
  定义空字符串
  a = ""  print(a)

1.2 字符串的索引

  任何序列类型中的元素都是使用索引来表示它的位置。

  字符串是字符的序列表示,单个字符在字符串中的位置也是使用索引来表示,也叫下标。

  可以通过索引来获取字符串中的单个字符,索引用整数表示,从0开始

  s = 'hellow,world!'

  print(s[1],s[3])

  输出结果:e,l

1.3字符串的切片

  获取序列中的子列叫做切片,语法如下:

  str[start:end:step]

  start表示开始索引,end表示结束索引,step代表步长,从字符串索引为start到end之间不包含end,每个step步长取一个值,当step为1时可以省略,step为负数时反向取值

  s = '12345678'

  print(s[1:5:2])

  输出:2,4 #包头不包尾,步长为2

  print(s[:5])

  输出:12345 #从头开始切不需要start

  print(s[2:])

  输出:345678 #切到末尾不需要end

  print(s[2::-2])

  输出:31 #步长为负数,反向

1.4 字符串的拼接

  python中可以通过+好拼接两个字符串

  s1 = "123"

  s2 = "456"

  print(s1+s2)  输出:123456

  字符串和整数进行乘法运算表示重复拼接这个字符串

  print(s1*2) 输出:123123

1.5 字符串常用方法

  通过内建函数dir可以查看所有Python内建函数

  print(dir(str))

  输出:['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']

  官方文档:https://docs.python.org/3/library/stdtypes.html?utm_source=testingpai.com#string-methods

1.6 字符串和数值的相互转化

  字符串和数值之间可以相互转换

  字符串转换成整数:int('1') 输出:1

  整数转换字符串:str(1) 输出:'1'

  字符串转换成浮点数:float('1.1') 输出:1.1

  浮点数转换成字符串:str(1.1) 输出:‘1.1’

1.7 转义符

  常用的转义字符:

(在行尾时) 续行符
\\ 反斜杠符号
\' 单引号
\" 双引号
\a 响铃
\n 换行
\t 横向制表符
\r 回车
\f 换页

1.8 字符串格式化

  python支持两种字符串格式化的方式:

  1、%字符串格式化

  语法规则如下:

  %[(name)][flags][width][.precision]typecode
  1. (name) 可选,用于选择指定的 key
  2. flags 可选,可供选择的值有,注意只有在和数值类型的 typecode 配合才起作用width,可选字符串输出宽度width 可选输出字符串长度
    1. +, 右对齐,正数前加正号,负数前加负号
    2. -, 左对齐,正数前无符号,负数前加负号
    3. 空格, 右对齐,正数前加空格,负数前加负号
    4. 0, 右对齐,正数前无符号,复数前加负号;用 0 填充空白处
  3. .precision 可选,小数点后保留位数,注意只有在和数值类型的 typecode 配合才起作用
  4. typecode 必选
    1. s,获取传入对象的字符串形式,并将其格式化到指定位置
    2. r,获取传入对象的 __repr__ 方法的返回值,并将其格式化到指定位置
    3. c,整数:将数字转换成其 unicode 对应的值,10 进制范围为 0 <= i <= 1114111(py27 则只支持 0-255);字符:将字符添加到指定位置
    4. o,将整数转换成 八 进制表示,并将其格式化到指定位置
    5. x,将整数转换成十六进制表示,并将其格式化到指定位置
    6. d,将整数、浮点数转换成 十 进制表示,并将其格式化到指定位置
    7. e,将整数、浮点数转换成科学计数法,并将其格式化到指定位置(小写 e)
    8. E,将整数、浮点数转换成科学计数法,并将其格式化到指定位置(大写 E)
    9. f, 将整数、浮点数转换成浮点数表示,并将其格式化到指定位置(默认保留小数点后 6 位)
    10. F,同上
    11. g,自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过 6 位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是 e;)`
    12. G,自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过 6 位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是 E;)`
    13. %,当字符串中存在格式化标志时,需要用 %% 表示一个百分号

  例子:

    res = '%s学校的升学率为%s%%'%('某某',80)

    print(res)

    某某学校的升学率为80%

 

    res = '%(school)s学校的升学率为%(percent)s%%'%('school':'某某','percent':80)

    print(res)

    某某学校的升学率为80%

    注:%后是字典时,可以通过name指定key的值

    res = '%(school)s学校的升学率为%(percent).2f%%'%('school':'某某','percent':80.888)

    print(res)

    某某学校的升学率为80.89%

    注:保留两位小数

    2、format字符串格式化

    %字符串格式化继承C语言,Python中给字符串对象提供了一个format函数来进行字符串格式化

    基本语法:<模板字符串>.format(<逗号分隔的参数>)

    在模板字符串中使用{}代替%做为槽位

    例:

    res = '{}学校的升学率为{}%'.format('某某',80)

    print(res)

    某某学校的升学率为80%

    当format中的参数使用位置参数时,{}中可以填写参数的整数索引让其一一对应

    res = '{0}学校的升学率为{1}%'.format('某某',80)

    print(res)

    某某学校的升学率为80%

    当format中的参数使用关键字参数时,{}中可以填写参数的关键字来表示

    res = '{school}学校的升学率为{percent}%.format(school='某某',percent=80)

    print(res)

    某某学校的升学率为80%

    {}除了可以写参数索引外,还可以填写控制信息来实现更多的格式化。语法如下:

    {<参数序号>:<格式控制标记>}

    其中格式控制标记格式如下

    [fill][align][sign][#][0][width][,][.precision][type]

    

fill 【可选】空白处填充的字符

  2. align 【可选】对齐方式(需配合 width 使用)

    2.1 <,内容左对齐

    2.2 >,内容右对齐(默认)

    2.3 =,内容右对齐,将符号放置在填充字符的左侧,且只对数字类型有效。 即使:符号 + 填充物 + 数字

    2.4 ^,内容居中

  3.sign 【可选】有无符号数字

    3.1 +,正号加正,负号加负;

    3.2 -,正号不变,负号加负;

    3.3 空格 ,正号空格,负号加负;

  4.#【可选】对于二进制、八进制、十六进制,如果加上#,会显示 0b/0o/0x,否则不显示

  5.‘,’ 【可选】为数字添加分隔符,如:1,000,000

  6.width 【可选】格式化位所占宽度

  7..precision 【可选】小数位保留精度

  8.type 【可选】格式化类型

    1. 传入” 字符串类型 “的参数
      1. s,格式化字符串类型数据
      2. 空白,未指定类型,则默认是 None,同 s
    2. 传入“ 整数类型 ”的参数
      1. b,将 10 进制整数自动转换成 2 进制表示然后格式化
      2. c,将 10 进制整数自动转换为其对应的 unicode 字符
      3. d,十进制整数
      4. o,将 10 进制整数自动转换成 8 进制表示然后格式化;
      5. x,将 10 进制整数自动转换成 16 进制表示然后格式化(小写 x)
      6. X,将 10 进制整数自动转换成 16 进制表示然后格式化(大写 X)
    3. 传入“ 浮点型或小数类型 ”的参数
      1. e, 转换为科学计数法(小写 e)表示,然后格式化;
      2. E, 转换为科学计数法(大写 E)表示,然后格式化;
      3. f , 转换为浮点型(默认小数点后保留 6 位)表示,然后格式化;
      4. F, 转换为浮点型(默认小数点后保留 6 位)表示,然后格式化;
      5. g, 自动在 e 和 f 中切换
      6. G, 自动在 E 和 F 中切换
      7. %,显示百分比(默认显示小数点后 6 位)
    res = '{school}学校的升学率为{percent:.2%}'.format(school='moumou',percent=0.80888)
    print(res)

    某某学校的升学率为80.89%

    注:保留两位小数

    3.格式字符串字面值

     格式字符串字面值或称为 f-string 是标注了 f或者F前缀的字符串字面值,这种字符串包含可替换的字段即以{}标注的表达式    

     基本语法是:

      literal_char{expression[:format_spec]}

    • literal_char 普通字符
    • expression 表达式,变量或函数。。
    • format_spec 格式字符串,规则同上面的 format 字符串

     直接在f字符串的{}内写上变量名,系统会自动将变量的值以字符串的形式替换

      school ="某某"
      percent = 80
      res = f'{school}学校的升学率为{percent}'
      print(res)
      某某学校的升学率为80

    带格式的f字符串
    输出两位数月份:
    month = 8
    res = f'{month:>02}'
    print(res)
    08

2、列表
  
python中列表用于表示任意元素的序列,列表中可以是任意的数据类型,列表中的元素可以增删改。

2.1 列表的定义
 
 列表由一对中括号进行定义,元素与元素之间用逗号隔开。

2.2 列表的拼接
 
 列表可以使用加法运算进行拼接,也可乘整数进行列表的重复
  a = [1,2,3]
  b = [4,5,6]
  print(a+b)
  [1,2,3,4,5,6]

  a = [1,2]
  print(a*2)
  [1,2,1,2]

2.3 列表的索引和切片
 
 与序列切片操作一致
2.4 列表的常用操作        
  2.4.1 修改元素
        
  列表中修改元素,只需要给索引赋值即可  
  a = [1,2,3]
  a[2] = 4
  print(a)
  [1,2,4]

  2.4.2 增加元素
  
增加元素需要使用列表的方法
  .append(el) 在列表的末尾加一个元素
  a=[1,2,3]
  a.append(4)
  print(a)
  [1,2,3,4]

  .insert(index,el)在列表指定的索引处添加元素
  a.insert(1,2)
  print(a)
  [1,2,2,3]

  .extend(iterable)扩展列表,传入的对象为可迭代对象中的元素
  a.extend([1,2,3])
  print(a)
  [1,2,3,1,2,3]
  
  2.4.3 删除元素  
  .pop(index) 删除指定索引处的元素,并返回该元素,未指定则默认删除最后一个元素
  a = [1,2,3]
  a.pop()
  print(a)
  [1,2]
  
  .remove(value)从列表删除第一个指定的值value,如果不存在value则报错
  a = [1,2,1,3]
  a.remove(1)
  print(a)
  [2,1,3]

  .clear(),清空列表,使列表变成空列表
  a = [1,2,3]
  a.clear()
  print(a)
  []

2.5 列表的其他方法
  .copy(),返回一个列表的浅拷贝。
  .count(value),统计一个列表中元素的数量
  .index(value),返回列表中指定value值得第一个索引,不存在则报错
  .reverse(),翻转列表元素顺序
  .sort(key=none,reverse=False),对列表进行排序,默认按照从小到大的顺序,当reverse的值为True时,从大到小,排序时列表中元素需类型相同,否则报错。 

2.6 字符串和列表的转换 
  字符串是字符组成的序列,可以使用list函数将字符串转换成单个的字符的列表
  a = 'hello world'
  ls = list(a)
  print(ls)  ['h', 'e', 'l', 'l', 'o', ',', 'w', 'o', 'r', 'l', 'd']

3、元祖    
  元祖(tuple)表示任意元素的序列,元素可以是任意数据类型,但是不可以增删改,元祖是不可变列表

3.1 元祖的定义
  元祖是用一对小括号进行定义,元祖之间用逗号隔开。

3.2 元祖的索引与切片  
  与列表一致

3.3 元祖的常用操作
 
 元祖的元素不能增加,删除和修改,其他操作和列表一致。
  元祖利用不可修改的特性,常用在多变量赋值和函数多返回值上。

3.4 元祖的常用方法
  
  元组只有两个公有方法 count,index 用法与列表相同

3.5 len函数
 
 内建函数len可以获取元祖中的元素个数

4、可变与不可变对象
  
python中的对象根据底层内存机制分为可变与不可变两种
  可变对象可以在其id()保持不变的情况下改变其取值
  基本数据类型中列表,集合,字典都是可变类型
  如果修改了一个对象的值,必须创建新的对象,那这种数据类型就是不可变类型。
  基本数据类型中数字,字符串,元祖都是不可变类型。

5、可哈希对象
  

  一个对象的哈希值如果在其生命周期内绝不改变,就被称为可哈希。可哈希对象都可以通过内置函数 hash 进行求值。

  它们在需要常量哈希值的地方起着重要的作用,例如作为集合中的元素,字典中的键。

  不可变数据类型都是可哈希对象,可变数据类型都是不可哈希对象。

  

python基础-基本数据类型(二)的更多相关文章

  1. python基础:数据类型二

    一.元组类型 二.字典类型 三.集合 一.元组类型 # 什么是元组: 元组就是一个不可变的列表 # ======================================基本使用======== ...

  2. Python基础之数据类型

    Python基础之数据类型 变量赋值 Python中的变量不需要声明,变量的赋值操作既是变量声明和定义的过程. 每个变量在内存中创建,都包括变量的标识,名称和数据这些信息. 每个变量在使用前都必须赋值 ...

  3. python基础篇(二)

    PYTHON基础篇(二) if:else,缩进 A:if的基础格式和缩进 B:循环判断 C:range()函数和len()函数 D:break,contiue和pass语句 for,while循环 函 ...

  4. 第二章:python基础,数据类型

    """第二章:python基础,数据类型2.1 变量及身份运算补充2.2 二进制数2.3 字符编码每8位所占的空间位一个比特,这是计算机中最小的表示单位.每8个比特组成一 ...

  5. python基础一数据类型之字典

    摘要: python基础一数据类型之一字典,这篇主要讲字典. 1,定义字典 2,字典的基础知识 3,字典的方法 1,定义字典 1,定义1个空字典 dict1 = {} 2,定义字典 dict1 = d ...

  6. Python 基础 面向对象之二 三大特性

    Python 基础 面向对象之二 三大特性 上一篇主要介绍了Python中,面向对象的类和对象的定义及实例的简单应用,本篇继续接着上篇来谈,在这一篇中我们重点要谈及的内容有:Python 类的成员.成 ...

  7. python基础扩展(二)

    python基础扩展(二) 常用操作 1.startswith(以什么开始) endswith(y)什么结束 s='taiWanw39dd' print(s.startswith('t')) #意思是 ...

  8. 第一节 Python基础之数据类型(整型,布尔值,字符串)

    数据类型是每一种语言的基础,就比如说一支笔,它的墨有可能是红色,有可能是黑色,也有可能是黄色等等,这不同的颜色就会被人用在不同的场景.Python中的数据类型也是一样,比如说我们要描述一个人的年龄:小 ...

  9. python 基础之数据类型

    一.python中的数据类型之列表 1.列表 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 二.列表常用操作 >切片>追加>插入>修改& ...

  10. python基础知识(二)

    以下内容,作为python基础知识的补充,主要涉及基础数据类型的创建及特性,以及新数据类型Bytes类型的引入介绍

随机推荐

  1. java-設計模式-生成器

    生成器模式Bulider 使你能够分步骤创建复杂对象. 该模式允许你使用相同的创建代码生成不同类型和形式的对象. 将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示. 将一个复杂的 ...

  2. JavaScript HTML5事件

    有3个页面级事件在HTML5版本中被引入.  事件  说明  DOMContentLoaded  在DOM树形成后触发(与此同时,图片.CSS和JavaScript可能还在加载).在这个事件中,脚本运 ...

  3. 为什么 redis 需要把所有数据放到内存中?

    答Redis 为了达到最快的读写速度将数据都读到内存中,并通过异步的方式将数 据写入磁盘.所以 redis 具有快速和数据持久化的特征.如果不将数据放在内存中, 磁盘 I/O 速度为严重影响 redi ...

  4. volatile 能使得一个非原子操作变成原子操作吗?

    一个典型的例子是在类中有一个 long 类型的成员变量.如果你知道该成员变量 会被多个线程访问,如计数器.价格等,你最好是将其设置为 volatile.为什么? 因为 Java 中读取 long 类型 ...

  5. python面向对象--快速入门

    1面向对象基本用法 1.1基本格式 class 类名: def __init__(self,x): self.x = x def 方法名字 (self): #函数在类里称为方法,self就是固定参数, ...

  6. servlet中的ServletContext对象

    ServletContext官方叫Servlet上下文.服务器会为每一个Web应用创建一个ServletContext对象.这个对象全局唯一,而且Web应用 中的所有Servlet都共享这个对象(在整 ...

  7. Numpy实现多项式曲线拟合

    Numpy实现多项式曲线拟合 这里可以对比matlab中的拟合方式看看matlab拟合函数的三种方法,和第一种方式很像 问题定义:对于一堆数据点(x, y),能否只根据这些数据,找出一个函数,使得函数 ...

  8. 3.3转1.8V(电平转换)

  9. C# Tutorial for Frontend Developer

    1.Basic Hello World Console output -> console.log Console.WriteLine("Hello World!"); Va ...

  10. JAVA处理Excel表格数据并写入数据库

    package com.hncj.test; import java.io.FileInputStream; import java.sql.Connection; import java.sql.D ...