python返回两个值时取其中一个_Python知识点总结(上)

26c4ae429e03e430a23ff5dbd136e7ad.png

一看草稿里文章都堆积几十篇了,清理库存1~

一直都想把关于python的知识点总结一下,因为基础不牢,地动山摇啊。切忌眼高手低,好记性总是不如烂笔头,趁着十一假期,就把平常参考资料中的琐碎知识点总结总结。别人有大众的菜鸟教程,我这也算是自己的菜鸟教程吧。。。。。

2 、Python基础语法

2.1缩进规则

行尾的“:”表示下一行代码缩进的开始。缩进只使用空白实现,必须使用4个空格来表示每级缩进。

2.2 注释

  • 单行注释。 以#开头。
  • 多行注释。 该类注释标记成对出现。有两种方式:(a)用3个单引号 ''' 将注释括起来。(b)用3个双引号 """ 将注释括起来。

【注意】:注释不可以嵌套。

在使用中文注释时,在文件开头声明是中文编码格式。在文件开头加上如下代码:

#coding=utf-8

#coding=gbk

2.3 编码

编码:计算机编程语言的代码。计算机只能处理数字,必须要将处理的文本、图片等信息转换为数字。

  • GB2312编码:适用于中文汉字处理。
  • GBK编码:汉字编码标准之一。
  • Unicode编码:是一种世界上所有字符的编码。该编码能把所有语言都统一到一套编码里,这样就不会出现乱码的问题。
  • UTF-8编码:是一种可变长的编码方式。

ASC

编码和Unicode编码的区别:ASC
编码是1个字节,Unicode编码通常是两个字节。为了节约存储空间,出现了把Unicode编码转换为“可变长编码”的UTF-8编码。在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。

默认情况下,python源码文件以UTF-8格式进行编码,所有字符串都是Unicode字符串。

2.4 标识符和关键字

python语言的标识符使用规则和C语言类似。

  • 第一个字符必须是字母或下划线_。
  • 区分大小写
  • 标识符不能以数字开头

【注意】:以一个下划线开始的标识符(如_foo)不能用from module import语句导入。

前后均有两个下划线的标识符(如__init__)被特殊方法保留。

前边有两个下划线的标识符(如__bar)用来实现类私有属性。

2.5 变量

python 中没有常量,没有提供如Java、C语言、C++设定的const修饰符。

变量命名规则:

  • 变量可以包括字母、数字、下划线,但是不能用数字作为开头
  • 变量不能包含空格,但可以使用下划线来分割其中的单词。如grade_name是合法的,但grade name是不合法的。
  • 关键字不能做变量名使用
  • 不能将内置函数名用作变量名
  • 除了下划线之外,其他符号不能用作变量名
  • python变量名区分大小写,但一般使用小写来命名
  • 变量在使用前必须先赋值,变量赋值以后才会创建该变量

变量可以存储规定范围内的值,并且值可以改变。python中的变量不需要声明,变量的赋值操作即是声明和定义变量的过程。变量的赋值不需要声明类型。每个变量在内存中创建都包括变量的标识、名称和数据这些信息。

e74b858b4bcb26aa5c677474da28a4c2.png

输出:

2572cb1659cba56544c7ad0ae2925a80.png

在python中,一次新的赋值将创建一个新的变量。即使变量的名称相同,变量的标识(id(变量):内存地址号,唯一且不变)也不相同。

python支持对多个变量同时赋值。

d05c9cc866ac9812d3a6f30a73e23520.png

2.6 输入和输出

输入:内置函数input()实现输入功能。

【注意】函数input不管输入的是什么,最终返回的都是字符串。如果需要输入数值,必须经过类型转换。

输出:函数print()格式如下:

print(value,...,sep=‘ ’,end=‘n’)

  • value 以及后面的省略号代表多个要输出的信息。
  • sep 代表多个要输出信息的分割符,默认值为一个空格。
  • end 默认为换行符。

【注意】当print中的多个字符串使用逗号“,”隔开时,会在每个输出项后面自动添加一个空格,从而输出一串字符。

print遇到逗号“,”时,就会输出一个空格。

print也可以输出整数或计算结果。

9256e9dd0b0ea728a530a6f5b3657546.png

3、简单数据类型

3.1 python 中的数据类型

在python中,变量没有类型。通常所说的“类型”是变量所指的内存中对象的类型。基本数据类型有:数字、字符串、列表、元组、字典。

3.2 字符串

可以使用单引号或者双引号来创建字符串。

3.2.1 访问字符串

可以通过序号(序号从0开始)来取出其中的某个字符。

78efa6dc482bcd2ffc3d2b6566eb8c73.png

3.2.3 转义字符

当需要在字符串中使用特殊字符时,需要用到以反斜杠“”表示转义字符。常用的转义字符如下:

  • (在行尾时) 续行符
  • 反斜杠
  • n 换行符
  • ' 单引号
  • " 双引号
  • t 横向制表符
  • v 纵向制表符
  • r 回车符
  • e 转义

如果不想让上面的转义字符生效,而只是想显示字符串原来的意思,就要使用r和R来定义原始字符串。

b7e4117f7e2ae35af6958dd5b8347b56.png

3.2.4 格式化字符串

在字符串中需要格式化的地方一律用“%”表示。当输出的时候,在“%”的左侧放置一个字符串(需要格式化的字符串),右侧放置需要用来格式化字符串的值(可以是一个数字或者一个字符串,也可以是包含多个值的元组或者字典)。

【注意】“%”和用来格式化字符串的值的个数必须相同。

常用字符串格式化符号:

  • %s 格式化字符串
  • %d 格式化整数
  • %f 格式化浮点数字,可指定小数点后的精度
  • %e 用科学计数法格式化浮点数

7696a787b921d85815a5ae882075957d.png

3.3 数字类型

在python中,数据类型是不允许改变的。如果要改变数据类型的值,将重新分配内存空间。

从python3开始,只支持int,float,bool,complex(复数)共计4种数字类型,删除了python2中的long(长整数)类型。

布尔型:

布尔型是关系运算的返回类型。布尔的取值只有True(1)和False(0)。

布尔值可以用and 、or、not进行计算。

4.1 运算符和表达式

运算符:具有运算功能的符号。

表达式:由值、变量和运算符组成的式子。

python显示表达式的值时,显示的格式与输入的格式是相同的。

4.2 算术运算符

  • / 除运算符
  • % 取模运算符,返回除法的余数
  • ** 幂运算符
  • // 返回商的整数部分,不包含余数

4.3 比较运算符合比较表达式

比较运算符也称为关系运算符,使用关系运算符可以表示两个变量或常量之间的关系。

关系表达式:用关系运算符将两个表达式连接起来的式子,被连接的表达式可以是算术表达式、关系表达式、逻辑表达式和赋值表达式等。

python 中有6个比较运算符:

  • == 用于比较对象的值是否相等
  • != 用于比较对象的值是否相等(a!=b)返回True
  • >
  • <
  • >=
  • <=

4.4 赋值运算符和赋值表达式

可以为多个变量赋值: a=b=c=1

可以为多个对象指定多个变量:a, b, c = 1, 2, "浪潮"

复合赋值运算符:在赋值运算符“=”之前加上其他运算符。对赋值运算符左右两边的运算对象进行指定的算术运算符运算,再将运算结果赋予左边的变量。Python中共有7种复合赋值运算符,包括:+=、-=、=、/=、%=、**=、//=

  • += c+=a 等效于 c=c+a
  • %= c%=a等效于c=c%a

4.5 位运算符和位表达式

位运算符:可以操作二进制数据(也即把数字看作二进制来进行计算)。

python 共有6个位运算符:

  • & 与。相应位数相同为1,相异为0。
  • | 或。相应位数有1个为1,结果为1。
  • ^ 异或。相应位数相同为0,相异为1。
  • ~ 取反。对每个二进制位数取反,即把1变为0,把0变为1。
  • << 左移运算符。
  • >> 右移运算符。

4.6 逻辑运算符和逻辑表达式

Pyhton中只能将 and、or、not 三种运算符用作于逻辑运算。

  • and 所有值均为真,则返回后一个值。如果存在假值,则返回第一个值。
  • or 返回第一个为真的值。

4.7 成员运算符和成员表达式

成员运算符:用来验证给定的值(变量)在指定的范围里是否存在。

python 有两个成员运算符,都返回布尔类型:

  • in 存在返回True,否则返回False
  • not in 不存在返回True,否则返回False

4.8 身份运算符和身份表达式

身份运算符:用来比较两个对象是否是同一个对象。

  • is 通过id来进行判断
  • is not

python中变量有3个属性:name(变量名),id(内存地址:不变且唯一),value(变量的值)。

比较运算符“=”与身份运算符“is”对比:

  • == :用来比较两个对象是否相等,value作为判断因素。
  • is : 用来比较两个对象是否相同,id作为判断因素。

5.条件语句

5.1 if语句

条件语句是一种选择结构。通过if关键字实现,所以也称为if语句。

注意与其他语言的区别:

  • C++或Java中if语句结构

if(condition)

{

执行语句;

}

  • python中if语句

if(condition):

执行语句

【注意】:在C++或Java等高级语言中,如果条件的值为0或者引用的对象为空指针,那么该条件即为False。在Python中,如果条件为“、( )、[ ]、{ }、None、set( ),那么该条件为False,否则为True。

if语句有三种:if语句、if...else 语句、if...elif...elif(中间可以编写多个elif,以缩进来区分表示同一范围)...else 语句。

嵌套的if语句,写法上与不嵌套的if语句在形式上的区别就是缩进不同而已。python 中不提供switch功能,但可以通过 if嵌套、字典、类实现类似的Switch功能。

使用字典来实现switch功能:

c4a5956842a8c18945cb46536a61ef57.png

6 、循环语句

主要有3种循环语句,分别是for 循环、while 循环语句和循环控制语句。

与Java、C语言相比,这些语言中的循环语句需要用循环变量来控制循环,而Python中的for循环语句通过循环遍历某一序列对象(如元组、列表、字典等)来构建循环,循环结束的条件就是对象遍历完成。

格式:

for 循环变量i in 遍历对象(元组、列表、字典):

执行语句

dd5455e348c30cc5a2a1e76d8ced91ef.png

【注意】遍历for 语句中的遍历对象,每经过一次循环,循环变量就会得到遍历对象中的一个值。当遍历对象中的值全部用完时,就会自动退出循环。

a4644c3d0448f35fd580669b350a8ff8.png

6.1.2 通过序列索引迭代

在python中,通过序列索引迭代的方式循环功能。在具体实现时,可以借助于内置函数range()实现。通过range()函数产生一个整数列表,这样可以完成计数循环功能。

range()语法格式:

range(start起始数,stop终止数,step步长)

产生的整数序列的最大值为stop-1。

fbffb6885da13b8c02d1e03cb329e7cd.png

6.1.3 使用for...else 语句

else中的语句在for中的语句中正常执行完(就是遍历完所有遍历对象的值时)的情况下才执行。

for 循环变量i in 遍历对象(元组、列表、字典):

执行语句1

else:

执行语句2

98599e0a5fb82a5afa63eac23bca04b6.png

7、列表

列表也称为序列。序列中的每个元素都分配一个数字,这个数字表示这个元素的位置或索引。列表用中括号“[]”表示,并用逗号开分割其中的元素。列表中的元素不需要有相同的数据类型。

7.1.1 创建数字列表

cb6634bda3bed8415d001be3477d0886.png

7.1.2 访问列表中的值

因为列表是个有序集合,所以要访问列表中的元素,可以指出列表的名称,再指出元素的索引,并将其放到方括号“[]”内,就可以进行访问了。当访问列表中的元素时,python会返回该元素,而不包括方括号和引号。此外,还可以通过序号(序号从0开始)来取出其中的某个字符。

通过将索引指定为“-1”,可以返回列表中的最后一个元素。

ddb76b70083b9fa02931d94177d4ac14.png

7.2 列表基本操作

7.2.1 更新列表元素

需要指定列表名和将要修改的元素的索引,再指定该元素的新值。

7.2.2 插入新的元素

使用方法insert()可以在列表的任何位置添加新元素,在插入时指定新元素的索引和值。格式为:list.insert(索引值index,要插入的列表元素obj)

在列表末尾添加元素:使用方法append()。格式:list.append(要插入的元素obj)。

7.2.3 在列表中删除元素

有多种方式:

(a)、使用del语句可以删除任何位置的元素,前提条件是知道这个要删除元素的索引值。该种方式删除后,不能再以任何方式使用。

(b)、使用pop()可以删除任何位置元素,并且能够接着使用它。

删除末尾的语法格式:list.pop(obj=lsit[-1])

(c)、可以使用remove()方法,实现根据元素值删除元素。该方法会删除某个值在列表中的第一个匹配项,并且可以接着使用这个元素的值。

efc249d536dbca3622679aacb9ee89d9.png

7.3列表排序

7.3.1 使用方法sort()对列表进行永久性排序

sort()方法用于对原列表中的元素进行排序。格式为list.sort( )。

通过向方法sort()中传递参数reverse=True,可以将列表按与字母相反的顺序排列列表元素。

7.3.2使用方法sorted()对列表进行临时排序

方法sorted()功能是按照特定顺序显示列表中的元素,同时不影响它们在列表中的原始排列顺序。

7.3.3倒序输出列表中的信息

通过方法reverse()实现。该方法没有参数,也没有返回值。

7.3.4 获取列表长度

使用len(list)方法快速获取列表长度。

5db04d2b979a1316557823f09536a57a.png

7.4 列表高级操作

python 中,在列表中可以使用“+”和“*”运算符,这两个运算符的功能与在字符串中相似。其中“+”运算符用于组合列表,“*”运算符用于重复输出列表。

7.4.2 列表嵌套

列表嵌套是指在一个已经存在的列表中创建其他新的列表。

ce3735616c1782c9fffb4127f3d7020f.png

7.4.4 获取列表元素中的最大值和最小值

获取列表中的最大值: max(lsit)

获取列表中的最小值: min(lsit)

7.4.5 追加其他列表中的值

通过方法extend()在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表),也即可以在已存在列表中添加新的列表元素值。

格式为:list.extend(seq)。该方法没有返回值,参数seq是将要追加的列表。

【注意】extend()方法是将各列表合并为一个列表,注意与列表嵌套的区别。

7.4.6 在列表中统计某元素出现的次数

通过方法count()在列表中统计某元素出现的次数。格式为list.count(obj),参数obj为表示将要统计的列表元素。

7.4.7 清空列表中的元素

使用方法clear()清空列表中的元素。格式为:list.clear(),其功能类似于“del list[:]”表达式。方法clear()没有参数也没有返回值。

7.4.8 复制列表中的元素

使用方法copy()实现复制列表中的元素。格式为:list.copy(),该方法没有参数,返回复制后的列表。

7.4.9 获取列表中某个元素的索引

使用方法index()获取列表中某个元素的具体索引位置,只能从列表中找出某个元素值第一次出现的索引位置。

格式为:list.index( obj)。其中参数obj表示将要查找的列表对象。方法index()返回查找列表对象的索引位置,如果没有找到对象则抛出异常。

60ac13ca8ceb4b73ae0c1f879bfc3173.png

例:实现列表中重复元素出现的索引位置

给定一个列表a=[3,4,5,6,6,5,4,3,2,1,7,8,8,3],请设计一个函数,实现传入一个target=3,输出3这个元素在列表a中的索引,输出格式如下:[0,7,13]

【注】enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据下标和数据,一般用在 for 循环当中。

38a0d7ed35101dcca5d1276602990a8e.png

8、使用元组、字典和集合

8.1 元组

可以将元组看作一种特殊的列表。元组中的元素也可以是不同的数据类型,下标索引也是从0开始,并且可以进行截取和组合操作。与列表不同的是,元组内的数据元素不能发生改变。不但不能改变其中的数据项,而且也不能添加和删除数据项。

创建元组的基本形式是以小括号“()”将数据元素括起来,各个元素之间用逗号“,”隔开。当元组中只包含一个元素时,需要在元素后面添加逗号“,”。

元组之间可以使用“+”号和“*”号进行运算,也即可以对元组进行组合和复制。

8.1.2 修改元素

元组一旦创立后是不可以修改的。但是在实际应用中,开发者可以使用“+”号对元组进行连接组合。也可以给存储元组的变量赋值,这样可以达到简洁修改元组的目的。

84842959fd2d35bb71366a8291ee7c17.png

8.1.3 删除元组

虽然不允许删除元组中的某个元素值,但可以通过使用del 语句来删除整个元组,且删除后不能再使用。

8.1.5 使用内置方法操作元组

  • len(tuple)
  • max(tuple)
  • min(tuple)
  • tuple(seq):将列表转换为元组

8.2 使用字典

字典中每个成员以“键:值”对的形式成对存在。与列表相比,字典中元素是无序的。在字典中通过来访问成员,而不能通过其位置来访问该成员。

字典可以存储任意类型对象,字典中的每个键值对必须以冒号“:”分割,每对之间用逗号“,”分割,整个字典包含在大括号“{ }”之中。具体使用要注意以下准则:

  • 使用键来访问与之相关联的值
  • 字典中可以存储任意个“键:值”对
  • 键值对中的键(key)必须是唯一的、不可变的,但值不必如此
  • 键值可以取任何数据类型

8.2.2 向字典中添加数据

字典是一种动态结构,可以随时在其中添加键值对。在添加“键值”对时,需要首先指定字典名,然后用中括号将键括起来,最后写明这个键的值。

8.2.3 修改字典

修改字典的值,首先指定字典名,然后使用中括号把将要修改的键和新值对应起来。

8.2.4 删除字典中的元素

可以使用del 语句将相应的“键值”对信息彻底删除。在使用del 语句时,必须指定字典名和要删除的键。

8.2.5 创建空字典

使用大括号“{ }”创建。如果向里面添加元素,则分行添加各个“键值”对。

8.2.6 和字典有关的内置函数

49ea840d623188901eb0abb4f2337e6c.png

8.3 遍历字典

可以通过多种方式遍历字典。

8.3.1 一次性遍历所有的“键值”对

可以使用for ... in 循环语句一次性遍历所有“键值”对。

8.3.2 遍历字典中的所有键

使用内置方法keys()能够以列表的形式返回一个字典中的所有键。

格式为:dict.keys()。方法keys()没有参数,只有返回值,返回字典中的所有键。

【注意】当遍历字典时,会默认遍历所有的键。

30f901ea694c6e437f86dc6ad03b86fd.png

8.3.3 按序遍历字典中的所有键

要想以特定的顺序返回字典中的元素,最简单的方法是在for循环中使用内置函数sorted()对返回的键进行排序。

f598774a5607a399a2bf1a56a5778d02.png

8.3.4 遍历字典中的所有值

可使用方法values()以列表的方式返回一个字典中的所有值,而包含任何键。

格式为 dict.values( )。方法values()没有参数,只有返回值,返回字典中的所有值。

【注意】上述这种在提取字典中的值方法并没有考虑是否重复的问题。为剔除重复项,可以使集合(set)。集合类似于列表,但每个元素必须是独一无二的。

48e0dee245c0bb42cf972d60f9f887a8.png

8.4 字典嵌套

有时候需要将字典存储在列表中,或将列表作为值存储在字典中,这称为嵌套。

8.4.1 字典列表

例:将字典存储在列表中(也即将字典作为列表中的元素)

6ec9ed50d01b6559cad2b7c4f02663d5.png

8.4.2 在字典中存储字典

也即作为字典中的值可以以字典的方式。

3baaeaf1e1d16c60df57eb732483850d.png

8.4.3 在字典中存储列表

字典中的值可以是字符串、列表。

ebfdd532868cf491fb51adec41d457da.png

8.5 使用其他内置方法

8.5.1 使用方法clear()清空字典

方法clear()可以删除字典内的所有元素。

格式为 dicr.clear( )。 该方法没有参数也没有返回值。

8.5.2 使用 方法copy()复制字典

格式为:dict.copy( ) 。该方法没有参数,但是有返回值。

8.5.3 使用方法fromkeys()创建新字典

格式为:dict.fromkeys(seq, value)

其中,参数seq 表示字典键值列表,参数value 是一个可选参数,用于设置键序列(seq)的值。方法fromkeys()的返回值是一个列表。

22fd33201e0452ac0c979c5f86d108a9.png

8.5.4 使用方法get()获取指定的键值

使用方法get()可以返回字典中某个指定键的值。如果键不在字典中,则返回默认值。

格式为:dict.get( key, default=None)。其中参数key表示在字典中需要查找的键,参数default表示如果指定的键不存在,则返回该默认值。

8.5.5 使用方法setdefault()获取指定的键值

方法setdefault()与 get()的功能类似,可以返回字典中某个指定键的值。如果键不在字典中,则会添加键并将值设为默认值。

格式为:dict.setdefault( key, default=None)。该方法没有返回值。

8.5.6 使用方法update ()修改字典

格式为:dict.update(dict2) 表示把字典dict2 的“键值对”更新(添加)到字典dict 中。方法update()没有返回值。

e1d3c2a3e4f576d3795da44d9a38569f.png

8.6 使用集合

集合set是个无序、不重复元素的序列。集合的基本功能是进行成员关系测试并删除重复的元素。使用大括号“{ }”或函数set ()创建集合。

【注意】在创建一个空集合时必须使用函数set()实现,而不能使用大括号“{ }”实现。这是因为空的大括号“{ }”是用来创建一个空字典的,而不是创建空集合的。

0e0a09d9fbf2de6016d1066ca0093874.png

8.7 类型转换

对数据类型进行转换时,只需要将数据类型作为函数名即可。

  • str(x)将对象x转换为字符串
  • list (s)将序列s转换为列表
  • set(s)转换为可变集合
  • dict(d)创建一个字典,d必须是一个序列(key,value)元组

##############未完待续################

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值