F1. python知识结构

1.Python程序可以分解为模块、语句、表达式、对象 关系 程序由模块构成 模块包含语句 语句包含表达式 表达式创建并处理对象

2.Python 内置对象是定义属于我们自己的对象的基础

3.传统编程强调的三大支柱 顺序语句 选择语句 循环语句 同时再定义一些函数与类

4.在Python中更为统一的原则就是对象,以及对象的操作

S2 内置类型的优点

1.c c++底层语言的 声明数据类型 还有链表的操作 空间释放 等一系列关于数据结构的繁琐操作,在Python里大部分消失 因为Python提供了强大的对象类型作为语言的组成部分

2.除非有特殊的要求 尽量使用Python提供的内置对象 因为 内置对象 容易编写 可扩展 有效率

T3 Python核心数据类型

1.内置对象类型 字面量(就是生成相关对象的表达式)

2.10种 Python内置对象 (核心数据类型)

3.像函数 模块 类这样的编程单元 在Python中也是对象, Python还提供了一组与实现相关的类型,它们通常更多地关系到工具生成器而不是应用程序的开发者

4.Python中没有类型声明,运行的表达式的语法决定了创建和使用的对象类型 例如方框 自动生成一个列表 大括号 自动建立一个字典

5.一旦创建了一个对象,它就和操作集合绑定了 如你只能对字符串进行字符串相关操作 对列表进行列表相关操作

6.Python 是动态类型的(自动跟踪类型 而不需要写声明代码) 是强类型语言(只能对一个对象进行适合该类型的有效操作)

F4 数字

1.Python核心对象类型 数字中 包括 整数 浮点数 以及一些更少见的类型 如 复数 固定精度的十进制数 带分子分母的有理分数 以及全功能集合

2.Python内置数字类型足以表示 年龄到银行存款的绝大多数数值量 但还有第三方库提供更为强大的功能  如 math库

3.  + 加法  *乘法  ** 幂

4.Python 3.X的整数类型在需要的时候 自动提供额外精度以用于较大数值

5.嵌套调用是从内往外进行运算 先进行2**1000000  接着使用str函数转化为字符串  接着使用len()函数得到字符串长度

PyDev console: starting.
Python 3.8.1 (tags/v3.8.1:1b293b6, Dec 18 2019, 23:11:46) [MSC v.1916 64 bit (AMD64)] on win32>>>len(str(2**1000000))
301030

6.浮点数repr函数可显示出更精确的结果   str()函数用户友好型

7.math包  random包   [ ]里代表列表

>>>import math
>>>math.pi
3.141592653589793
>>>math.sqrt(100)
10.0
>>>import random
>>>random.random()
0.14516328808961254
>>>random.choice([1,2,3,4])
1
>>>random.choice([1,2,3,4])
2
>>>random.choice([1,2,3,4])
3
>>>random.choice([1,2,3,4])
2

F5 字符串

1.字符串 用来记录 文本信息 任意字节集合(如图片亮暗矩阵) 是作为  序列(一个包含其他对象的有序结合)  的第一个例子

2.序列中的元素包含了一个从左到右的顺序  序列中的元素根据他们的相对位置进行存储和读取

3.字符串是由单字符的字符串所组成的序列 其他更一般的序列类型还包括 列表 元组

S6 序列操作  (字符串是最简单的序列的一个例子,所以先通过字符串的操作了解序列操作)

1.作为序列,字符串支持对各个元素位置的操作

2.内置的len()函数 以及通过索引操作得到字符串中各个元素

>>>A='中国科学院大学'
>>>len(A)
7
>>>A[0]
'中'
>>>A[6]
'学'

3.索引偏移量从0开始  Python变量不需提前声明

4.在使用变量(属性)的值之前必须对其赋值,需要把一个   对象  赋值给一个  变量

5.Python能够反向索引  从最后一个开始(正向索引是从左边开始计算 反向索引是从右边开始)

>>>A='中国科学院大学'
>>>len(A)
7
>>>A[-1]
'学'
>>>A[-2]
'大'
>>>A[len(A)-1]
'学'
>>>A[len(A)-2]
'大'

本质是将[ ]中的负索引与字符串长度进行相加  所以A[-1]与A[len(A)-1]等效

6.我们能够在方括号中使用任意表达式

7.除了支持从位置进行索引,也支持分片的操作(slice) 这是一种能够提取整个分片的方法

>>>A='中国科学院大学'
>>>A[:-1]
'中国科学院大'
>>>A[2:3]
'科'
>>>A[0:2]
'中国'
>>>A[:]
'中国科学院大学'
>>>A[0:]
'中国科学院大学'

本质是方框中冒号左右左闭右开的区间,A[:-1]指所有的东西直到最后一个字符且不包含最后一个字符   A[0:]从第一个字符开始的后面所有东西  A[:]所有东西

8.作为一个序列,字符串支持  拼接(Concatenation)  重复(repeat)

>>>A='中国科学院大学'
>>>A+'是一所世界高水平大学'
'中国科学院大学是一所世界高水平大学'
>>>A
'中国科学院大学'
>>>A*2
'中国科学院大学中国科学院大学'

这里由于字符串具有  不可变性 所以拼接后A并没有发生变化 我们想保存下来拼接后的结果只能另找一个变量进行赋值操作

9. +号对于不同的对象也有不同的意义  对于数字表示加法 对于字符串表示拼接 这就是  多态

一个操作的意义取决与操作的对象 即Python的动态类型特性

S7 不可变性

1.之前的例子都没有对原始的字符串进行改变,每个字符串的操作都被定义为新的字符串作为结果,因为  字符串  在Python中具有不可变性 即创建后不能原位置改变 即你永远不能覆盖不可变对象的值   即不能对其某位置进行赋值而改变字符串(存储位置不变 )但可以创建一个新字符串并以同一个变量名来赋值(在另一存储位置,不是覆盖)之前位置的旧对象会被清理。

PyDev console: starting.
Python 3.8.1 (tags/v3.8.1:1b293b6, Dec 18 2019, 23:11:46) [MSC v.1916 64 bit (AMD64)] on win32#字符串具有不可变性
>>>A='中国科学院大学'
>>>A[0]='O'Traceback (most recent call last):File "<input>", line 1, in <module>
TypeError: 'str' object does not support item assignment

2.Python中每一对象都可归类为不可变的或者可变的   在核心对象中  具有不可变性的对象 :数字   字符串 元祖      可变性的:列表 字典 集合(这些可以与同类创造的对象一样完全自由的改变)

3.不可变性可以保证在程序中一个对象固定不变

4.要在原位置改变基于文本的数据需要将它扩展成一个由独立字符构成的列表  或者使用 bytearray

>>>A='中国科学院大学'
>>>B=list(A)
>>>B
['中', '国', '科', '学', '院', '大', '学']
>>>B[4]='技术'
>>>B
['中', '国', '科', '学', '技术', '大', '学']
>>>C=''.join(B)
>>>C
'中国科学技术大学'
>>>D=bytearray(b'中国科学院')File "<input>", line 1
SyntaxError: bytes can only contain ASCII literal characters.
>>>D=bytearray(b'ab')
>>>D.extend(b'cdef')
>>>D
bytearray(b'abcdef')
>>>D.decode()
'abcdef'

bytearray支持文本原位置转换 但仅适于ASCII字符其他字符串依然是不可变的,其中bytearray(b''),前面的(b' ') 在python3.X后是必需的

E8 字符串的特定类型的方法

1.之前针对字符串的操作也是一个序列操作 Python中其他序列也能使用  包括列表  元组,但是字符串还有一些独有的作为方法存在的操作  即特定的函数

2. find() 函数是一个基本的字符串查找的操作 它返回一个传入子字符串的偏移量  没有找到时返回-1 。

3.replace()会对全局进行搜索和替换,会生成一个新对象 因为字符串具有不可变形,原字符串不变

>>>B='中国科学院大学'
>>>B.find('科学')
2
>>>B
'中国科学院大学'
>>>B.replace('院','技术')
'中国科学技术大学'
>>>B
'中国科学院大学'
>>>C=B.replace('院','技术')
>>>C
'中国科学技术大学'

名字命名相同,但存储位置不同,旧命名被清理

4. split() 实现通过分隔符将字符串拆分为子字符串

upper()大小写变换    isalpha()   isdigit()判断    rstrip()去掉字符串后的空格字符

>>>A='a,b,c,d,e'
>>>A.split(',')
['a', 'b', 'c', 'd', 'e']
>>>A
'a,b,c,d,e'
>>>A.upper()
'A,B,C,D,E'
>>>A.isalpha()
False
>>>A=['1,2,3,\n']
A.rstrip()
Traceback (most recent call last):File "<input>", line 1, in <module>
AttributeError: 'list' object no attribute 'rstrip'
>>>A='1,2,3\n'
>>>A.rstrip()
'1,2,3'
>>>A.rstrip().split(',')
['1', '2', '3']

报错 可见上面几个函数是字符串特有的不能针对列表,执行顺序  不是嵌套从左到右 遇到嵌套则从里向外 进行函数执行,每次前一步执行结束后都会为后一步函数产生一个临时对象

5.字符串还支持叫做  格式化 的高级替代操作  可以以一个表达式的形式和一个字符串方法调用的形式使用

'%s love %s'%('Tom','Jerry')
'Tom love Jerry'
'{} 喜欢 {}'.format('鸣人','雏田')
'鸣人 喜欢 雏田'
'{0} 喜欢 {1}'.format('鸣人','雏田')
'鸣人 喜欢 雏田'

类似于c的  scanf("%s",) 函数的形式 可以用 % 替代格式 与 format()函数

6.字符串格式化对生成数值报告很重要  也类似于C中scanf("%.2f", )这种形式

'{:,.2f}'.format(2)
'2.00'
'{:,.2f}'.format(2356.2564)
'2,356.26'
'%.2f  %+05d'%(3.1415,-42)
'3.14  -0042'

序列操作通用,方法不通用   可作用于多种对象的通用操作都是以内置函数或表达式的形式出现

特定函数方法操作是以函数调用出现

比如 通用操作  +拼接   'a'+'b'  表达式出现    list()函数  list(A)内置函数

特定操错  A.upper()  A.format()  形式是   某字符串对象.函数

N9  控制台寻求帮助

1.可以调用 内置dir()函数  会返回一个列表包含了对象的所有属性  其函数也会出现在这个列表中

S为任意字符串

>>>S=''
>>>dir(S)
['__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']

前面双下划线的内容与重载有关  python内部将前者(__add__)映射到后者(+) 如__add__方法是真正执行字符串拼接的函数 即'+'加号的作用,我不要使用双下滑形式  会令代码晦涩难懂   再次强调是  前后双下滑线

>>>'你好'+'小明'
'你好小明'
>>>'你好'._add_('小明')
Traceback (most recent call last):File "<input>", line 1, in <module>
AttributeError: 'str' object has no attribute '_add_'
>>>'你好'.__add__('小明')
'你好小明'

2.help()函数

>>>help(A.replace)
Help on built-in function replace:
replace(old, new, count=-1, /) method of builtins.str instanceReturn a copy with all occurrences of substring old replaced by new.countMaximum number of occurrences to replace.

注意help里面函数没加括号

3.dir和help命令都可以作用于一个真实对象(字符串  赋值对象)或者一种数据类型(str list dict)

提供了Python中最原生的档案

T10 字符串编程的其他方式

1.反斜线转义序列表示特殊的字符

>>>S='A\n'
len(S)
2
>>>ord('\n')
10

内置len()返回字符串长度    ord()函数返回单字符的ASCII码或者 unicode码

2.Python允许字符串包括在单引号或双引号之中 他们是相同的,采用不同的引号可以让另外一种引号包括其中

3.Python也允许三个引号(单引号或双引号)  当采用这种格式时 所有行都合并在一起  并在每一行的末尾增加换行符


>>>A='''
发件人小明
收件人小强'''
>>>A
'\n发件人小明\n收件人小强'

控制台换行时  要按住ctrl   同时第一个三引带换行符  最后一个三引不带换行符

4.Python也支持原始(raw)字符串字面量  即去掉转义机制

>>>A=r'小明牵着小红的手\n去看小强'
A
'小明牵着小红的手\\n去看小强'
>>>A='小明牵着小红的手\n去看小强'
A
'小明牵着小红的手\n去看小强'

r后面 自动变为\\  反转义  这对表示文件路径很有用 r'c:\text\new'

E11 unicode字符串  ASCII组成

1.Python支持完成的Unicode字符串编码形式  支持非编码ASCII字符

2.Python  2.X允许在一个表达式中混合使用普通字符串 和 Unicode字符串 只要所有普通字符串都由ASCII字符组成  相反 Python3.X拥有一个更严格的模式,禁止在没有显示转型的情况下,将其普通字符串与字节串混合使用

T12  模式匹配

1.文本的模式匹配  需要导入一个 re的模块

见 _1

T13 列表

1.列表是一个任意类型的对象的位置相关的有序集合

2.与字符串不同  列表是可变的  通过对相应偏移量进行赋值可以定位地对列表进行修改

F14  序列操作(列表)

1.由于列表是序列的一种   它支持  对字符串进行的 不是特定的 序列操作

>>>L=[123,'good',1.23]
>>>len(L)
3
>>>L[0]
123
>>>L[:-1]
[123, 'good']
>>>L+[1,2,3]
[123, 'good', 1.23, 1, 2, 3]
>>>L*2
[123, 'good', 1.23, 123, 'good', 1.23]
>>>L
[123, 'good', 1.23]
>>>L[0]=234
>>>L
[234, 'good', 1.23]

py04 内置类型 序列 数字 字符串操作 列表 不可变性相关推荐

  1. python生成递增序列_Python的6种内建序列之通用操作

    数据结构式通过某种方式(例如对元素进行编号)组织在一起的数据元素的集合,这些数据元素可以是数字或者字符,甚至可以是其他数据结构.在Python中,最基本的数据结构是序列(sequence).序列中的每 ...

  2. python列表转换成数字_python 字母转成数字Python操作列表的常用方法总结

    下面列出列表常用的方法操作列表以及小例子: 1.  Append 在列表末尾添加元素,需在列表末尾添加元素,需要注意几个点: A. append中添加的参数是作为一个整体 >>> n ...

  3. python数字列表in_Python入门基础之数字字符串与列表

    简介 Python的主要应用是进行科学计算,科学计算的基础就是数字,字符串和列表.本文将会详细的给大家介绍一下这三个数据类型的使用情况. 数字 数字是任何科学计算中非常中要的类型,在Python中最常 ...

  4. 【3】python核心编程 第六章-序列:字符串、列表和元组

    1.序列类型操作符 1 序列操作符 作用 2 seq[ind] 获得下标为ind 的元素 3 seq[ind1:ind2] 获得下标从ind1 到ind2 间的元素集合 4 seq * expr 序列 ...

  5. Python编程基础——序列:字符串、列表和元组

    一.简介 Python序列指:它们的成员是有序排列的,并且可以通过下标偏移量访问到它的一个或者几个成员.包括:字符串(普通字符串和unicode字符串).列表.和元组类型.        因为这些类型 ...

  6. Python基础之:数字字符串和列表

    文章目录 简介 数字 字符串 字符串对象str 列表 简介 Python的主要应用是进行科学计算,科学计算的基础就是数字,字符串和列表.本文将会详细的给大家介绍一下这三个数据类型的使用情况. 数字 数 ...

  7. python输入序列语句_Python基础教程(一) - 序列:字符串、列表和元组

    这一章我们主要研究这样一些类型,他们的成员是有序排列的,并且可以通过下标偏移量访问的,这类Python类型统称为序列,包括字符串.列表和元组. 序列类型操作符 成员关系操作符(in.not in):成 ...

  8. python的序列包括字符串列表和什么_Python基础:03序列:字符串、列表和元组

    一:序列 1:连接操作符(+) 这个操作符允许把一个序列和另一个相同类型的序列做连接,生成新的序列.语法如下:sequence1 + sequence2 该表达式的结果是一个包含sequence1和s ...

  9. Python内置类型—序列

    参考文章:序列类型 --- list, tuple, range python的序列类型分为基本序列类型和附加序列类型,三种基本序列类型有list, tuple, range 对象.附加序列类型二进制 ...

最新文章

  1. OpenCV中积分图介绍与应用
  2. docker安装mysql并配置,Docker安装MySql-挂载外部数据和配置
  3. 用Hadoop1.0.3实现KMeans算法
  4. 阿里云谦大佬:时间精力有限的情况下如何高效学习前端?
  5. 用户暴增下的收入降低,AWS面临尴尬
  6. 调用某个按钮事件_Event 对象之事件句柄 (Event Handlers)
  7. 冒泡排序、选择排序、插入排序
  8. 命令行解决mysql中文乱码
  9. 2021亚太杯数学建模C题全网成品论文+代码+详细思路+数据+参考文献
  10. 【HUSTOJ】1054: 字符图形10-字母三角
  11. C. Mortal Kombat Tower(cf)dp
  12. android recyclerview 滑动状态,RecyclerView的滑动监听
  13. Java SE基础知识详解第[12]期—集合(Set、Collections、Map、集合嵌套)
  14. 可行性分析(研究方法、技术路线、实验手段、关键技术)、学位论文研究的工作条件
  15. [Python爬虫] 一、爬虫原理之HTTP和HTTPS的请求与响应
  16. mysql 安装教程(个人经验,仅供参考)
  17. fedora与redhat的区别
  18. Linux系统磁盘的挂入和装载
  19. 三.栈与栈的实例——汉诺塔
  20. Hexo站点SEO优化攻略

热门文章

  1. 春季高考 计算机模拟试题,春季高考试卷-天津市2016年春季高考计算机模拟试卷B.doc...
  2. 从零开始学习电子之电阻的标称和封装
  3. 纯Java文档阅读器(word、pdf等)
  4. MySQL分区表与索引
  5. deepin20系统选择手动安装盘_SD卡能干啥:在SD卡上安装Ubuntu双系统
  6. YbtOJ「基础算法」第1章 递推算法
  7. 微信小程序使用腾讯定位服务api获取经纬度后调取导航功能
  8. 一款android上的纸牌类小游戏
  9. 网络安全-防火墙双机热备-ensp练习
  10. 人性的弱点【卡耐基】