Python全景

1.程序由模块构成。

2.模块包含语句。

3.语句包含表达式。

4.表达式建立并处理对象。

在python中数据是以对象的形式出现的!!!

为什么使用内置类型

  • 内置对象使程序更容易编写
  • 内置对象往往比定制的数据结构更有效率
  • 内置对象是语言的标准的一部分

    在解决问题的时候python不需要像C和C++先去声明数据的类型,python会自己识别类型。

python的核心数据类型



python中没有类型声明,根据表达式的语法决定创建和使用对象的类型。

(在python的语言内部已经高效创建了)

但是一旦创建了一个对象,它就和操作集合绑定了只可以对字符串进行字符串相关的操作,对列表进行列表相关的操作。

对应的类型有其相关的操作方式。

数字类型

包括的类型有:整数,浮点数,虚数,分子分母,集合等。

其数学运算的符号:加号(+)代表加法,减号(-)代表减法,星号(*)表示乘法,双星号(**)表示乘方。

浮点数会遇到的两种类型:代码形式repr,用户友好形式str。后者可以用print语句进行实现。

数字中的额外工具包

math包

需要用户在引用该包之后再进行使用:import math

math.pi是打印Π的值。math.sqrt()是对括号里的数字进行开根号处理

randow包

也是需要先进行引入import random

random.random()是随机数字生成器,random.choice([])是随机选择器

[]是列表的创建用的语法,后面会详细介绍列表。

字符串类型

字符串是用来记录文本信息的,它是一个对象的有序集合(从左到右)。字符串是单个字符的字符串的序列

字符串序列的操作



可以看到索引是从0开始的。这个会有清晰的解释。

python支持反向索引



所以我们可以将spam这个字符串看成是这样的pamspam可以将s看成是坐标轴的原点,所以其索引时从0开始。

当我们只想输出字符串中的一些我们想要的数据时候,可以对字符串进行切片处理

一般形式为X[I:J](但是不会包括J的值)



在使用简便切片时,牢记左边界默认为0,并且右边界默认为分片序列的长度。

值得一提的是S[-1:]是不成立的会输出 输出空的值,因为字符串是从0开始向左向右的。从中间到两边。

字符串的不可变性

意思就是在我们创建一个字符串后,我们不能直接对字符串中的字符进行修改,如果我们修改字符串中的字符,我们可以通过建立一个新的字符串,并以同一个变量名对其进行赋值。

核心类型中,数字、字符串和元组是不可变的;列表和字典不是这样(它们可以完全自由地改变)

类型的特定方法

目前我们学习过的每一个字符串操作都是一个真正的序列操作。这些不止于用于字符串,包括列表和元组。但是字符串有特殊的操作方法:

S.find('pa')find这个方法是用来对字符串进行查找操作的。但是它只返回寻找的第一个字符的偏移量(也就是位置)。

S.replace('pa','XYZ')replace方法是用来替换字符的。前提是该字符串有需要被替换的字符,所以还具有全局搜索的任务。

line.split(',')是字符串在遇到字符,时进行隔开。

S.upper()'指的是全部大写。

S.isalpha()是进行测试,测试字符串的内容。检查一个字符串中所有的字符是否都是由字母构成的,并且至少有1个字符。

如果,字符串中所有的字符都是字母,则返回True,否则返回False. 该函数除了能判断字符串是否为英文字母外,也能判断其它语言中的字母。

\n是换行。当我们需要去掉字符串中的所有空格时line.rstrip()

格式化

格式化的细讲:python字符串的格式化细讲

在序列中的操作都是相通的,但是方法却是不相同的。

简明的法则:可作用于多种类型的通用型操作都是以内置函数或表达式的形式出现的[例如,len(X),X[0]],但是类型特定的操作是以方法调用的形式出现的[例如,aString.upper()]。

寻求帮助###

调用内置的dir函数,将会返回一个列表,其中包含了对象的所有属性。



以双下划线开头并结尾的变量名是用来表示Python实现细节的命名模式。而这个列表中没有下划线的属性是字符串对象能够调用的方法。

但是dir(S)只是给出了所有的方法的名字,要查询它们是做什么的,你可以将其传递给help函数。



在使用时要记得先创建一个字符串,这样才能够有所显示,不然会出现未定义的情况。

编写字符串的其他方法###

可以在字符串中间插入转义字符\n空一行。\t空一个tab键。\0是中止字符串。



可以看\n``\t``\o是包含在字符内的。计入字符长度。

ord()函数主要用来返回对应字符的ascii码

Python允许字符串包括在单引号或双引号中(它们代表着相同的东西),也允许在三个引号(单引号或双引号)中包括多行字符串常量。三个引号时,所有行都合并在一起。



可以看到输出结果时,换行处,python会自动添加换行符

模式匹配

字符串对象的方法能够支持基于模式的文本处理。

模式匹配的定义:数据结构中字符串的一种基本运算,给定一个子串,要求在某个字符串中找出与该子串相同的所有子串,这就是模式匹配。在python中的实现需要两个步骤:1,引入re模块。2,编写相应代码

跟着零个或几个 制表符或空格,对应的代码是[ \t]*(.*)。认真理解加粗部分。有一个需要注意的地方,如果想用这种方法存放两个组不能直接用[ \t]*(.*)[ \t]*(.*)。这会使第二个组为空。







但是如果在两个[ \t](.)中间添加空格,可以解决这个问题





这可能是转义字符引起的问题。

下面这种情况,直接用/当分组标准就没有问题:



print(match.groups())把所有的部分都输出。

print(match.group(0))按照字符串进行输出。



第二行就是`print(match.group(0))'的结果。

Python学习手册——第二部分 类型和运算(1)之字符串的更多相关文章

  1. 《Python学习手册 第五版》 -第7章 字符串基础

    本章内容是关于字符串的,字符串是编程中经常遇到的问题,本章的内容不是包含所有字符串的讲解,而是针对其最基本的内容进行说明,后续的相关章节会根据需要进行扩展和说明,例如后续的第37章内容会讲解Unico ...

  2. 《Python学习手册 第五版》 -第14章 迭代和推导

    承接上一章for循环的讲解,迭代和推导,是对for循环的一种深入的探索和扩展 本章重点内容 1.迭代 1)什么是迭代?都有哪些分类 2)常规的使用方法 3)多遍迭代器VS单遍迭代器 2.列表推导 1) ...

  3. 《Python学习手册 第五版》 -第18章 参数

    在函数的定义和调用中,参数是使用最多喝最频繁的,本章内容就是围绕函数的参数进行讲解 本章重点内容如下: 1.参数的传递 1)不可变得参数传递 2)可变得参数传递 2.参数的匹配模式 1)位置次序:从左 ...

  4. 《Python学习手册 第五版》 -第15章 文档

    本章主要介绍Python中的文档,会通过多种方式来说明,如果查看Python自带文档和其他参考的资料 本章重点内容 1.#注释:源文件文档 2.dir函数:以列表显示对象中可用的属性 3.文档字符串 ...

  5. 《Python学习手册 第五版》 -第16章 函数基础

    前面的章节讲解的是一些基础数据类型.基本语句使用和一些文档查看的内容,这些都是一些基础,其实还谈不上入门,只有了解了函数,才算入门 函数是编程里面使用最多的也是最基本的程序结构, 本章重点内容 1.函 ...

  6. 《Python学习手册 第五版》 -第17章 作用域

    上一章的是函数的基础,因为函数在运用过程中,是可以嵌套的,函数中是会涉及到变量的,为了明确各自变量的使用范围,系统是有一套规则或者原则的,这就是作用域的概念 本章重点内容 1.作用域:作用域的概念 2 ...

  7. 自学笔记系列:《Python学习手册 第五版》 -写在开始之前

    今年双十一,在当当网上买了这本书,很厚很厚的一本书,大概有将近1700页左右,的确是一个“大工程”, 关于这本书的学习,我想采用一种博客的方式进行,既是写给自己,也想分享给每一个对Python学习感兴 ...

  8. [python学习手册-笔记]003.数值类型

    003.数值类型 ❝ 本系列文章是我个人学习<python学习手册(第五版)>的学习笔记,其中大部分内容为该书的总结和个人理解,小部分内容为相关知识点的扩展. 非商业用途转载请注明作者和出 ...

  9. [python学习手册-笔记]004.动态类型

    004.动态类型 ❝ 本系列文章是我个人学习<python学习手册(第五版)>的学习笔记,其中大部分内容为该书的总结和个人理解,小部分内容为相关知识点的扩展. 非商业用途转载请注明作者和出 ...

随机推荐

  1. 架构师必备:MySQL主从延迟解决办法

    上一篇文章介绍了MySQL主从同步的原理和应用,本文总结了MySQL主从延迟的原因和解决办法.如果主从延迟过大,会影响到业务,应当采用合适的解决方案. MySQL主从延迟的表现 先insert或upd ...

  2. SpringBoot整合JDBC-调用数据库

    SpringData 对于数据访问层,无论是 SQL(关系型数据库) 还是 NOSQL(非关系型数据库),Spring Boot 底层都是采用 Spring Data 的方式进行统一处理. Sprin ...

  3. 网络协议之:加密传输中的NPN和ALPN

    目录 简介 SSL/TLS协议 NPN和ALPN 交互的例子 总结 简介 自从HTTP从1.1升级到了2,一切都变得不同了.虽然HTTP2没有强制说必须使用加密协议进行传输,但是业界的标准包括各大流行 ...

  4. C 标准库函数手册摘要

    <stdlib.h> int abs( int value ); long int labs( long int value ); 返回参数的绝对值 int rand( void ); v ...

  5. 81. 搜索旋转排序数组 II

    题目 已知存在一个按非降序排列的整数数组 nums ,数组中的值不必互不相同. 在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋 ...

  6. 痞子衡嵌入式:超级下载算法RT-UFL v1.0在Keil MDK下的使用

    痞子衡主导的"学术"项目 <RT-UFL - 一个适用全平台i.MXRT的超级下载算法设计> v1.0 版发布近 4 个月了,部分客户已经在实际项目开发调试中用上了这个 ...

  7. oo第二次博客-三次电梯调度的总结与反思

    本单元从电梯调度相关问题层层深入,带领我们学习并运用了了多线程相关的知识. 三次电梯调度依次为单电梯单容量.单电梯可携带.多电梯可携带. 一.我的设计 在第一次作业中,使用了最简单的FIFO调度方法. ...

  8. 冲刺noip2021模拟16

    T1 树上的数 考场上比较脑瘫没有想到直接dfs就行了这样是O(n+m)的,傻不拉几地多添了个log, 不过因为accoder的评测机太弱了,绝大多数人的正解都是60分,所以没有什么差别: 直接dfs ...

  9. 硬件工程师必须掌握的PCB叠层设计内容

    总的来说叠层设计主要要遵从两个规矩: 1. 每个走线层都必须有一个邻近的参考层(电源或地层); 2. 邻近的主电源层和地层要保持最小间距,以提供较大的耦合电容; 下面列出从两层板到八层板的叠层来进行示 ...

  10. NOIP模拟86(多校19)

    T1 特殊字符串 解题思路 \(f_{i,j}\) 表示前 \(i\) 个字符中结尾为 \(j\) 的最大贡献. 转移枚举当前位置于之前位置结尾的组合加上贡献即可. 对于边界问题,容易发现选择 1 一 ...