一、序列类型

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

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. Spring 的优点?

    (1)spring属于低侵入式设计,代码的污染极低: (2)spring的DI机制将对象之间的依赖关系交由框架处理,减低组件的耦合性: (3)Spring提供了AOP技术,支持将一些通用任务,如安全. ...

  2. 发现程序美----while+for冒泡实现的

    思想记录: 每一轮回的冒泡都将产生一个最大值,其后每次循环次数都将少一次,因为每次都会确定一个最大值. private void method(){ int[] list = {10,7,8,4,7, ...

  3. 在 Java 中,如何跳出当前的多重嵌套循环?

    在最外层循环前加一个标记如 A,然后用 break A;可以跳出多重循环.(Java 中 支持带标签的 break 和 continue 语句,作用有点类似于 C 和 C++中的 goto 语 句,但 ...

  4. SQLyog创建用户并授权的过程

    点击你要授权的数据库然后点击用户管理器 然后输入用户名和密码主机选localhost 然后点击创建,然后选择你创建的数据库全选 最后保存就可以了

  5. Java 中,编写多线程程序的时候你会遵循哪些最佳实践?

    这是我在写 Java 并发程序的时候遵循的一些最佳实践: a)给线程命名,这样可以帮助调试. b)最小化同步的范围,而不是将整个方法同步,只对关键部分做同步. c)如果可以,更偏向于使用 volati ...

  6. .NET面试经典三问:什么是.NET?什么是.NET Framework?什么是.NET Core?

    什么是.NET?什么是.NET Framework? 本文将从上往下,循序渐进的介绍一系列相关.NET的概念,先从类型系统开始讲起,我将通过跨语言操作这个例子来逐渐引入一系列.NET的相关概念,这主要 ...

  7. 机器学习 machine learn

    机器学习 机器学习 概述 什么是机器学习 机器学习是一门能够让编程计算机从数据中学习的计算机科学.一个计算机程序在完成任务T之后,获得经验E,其表现效果为P,如果任务T的性能表现,也就是用以衡量的P, ...

  8. 7_根轨迹_Part1_“根”的作用

    这里的渐近线,应该是e^[**wn]/wd,忘记除wd了

  9. [译] Facebook:我们是如何构建第一个跨平台的 React Native APP

    英文原文(需FQ):https://code.facebook.com/posts/1189117404435352/ 早些时候,我们介绍过iOS版的React Native. React Nativ ...

  10. canvas绘图API详解

    canvas绘图API详解 1.context的状态 矩阵变换属性 当前剪辑区域 context的其他状态属性: strokeStyle, fillStyle, globalAlpha, lineWi ...