我的python一轮复习整理(零)

250 阅读12分钟
  1. python是编译型语言还是解释型语言?
  2. python主要数据类型
  3. 字符串的各种用法
  4. 列表的各种用法
  5. 元组的各种用法

0. python是编译型语言还是解释型语言?

图片.png

类型原理优点缺点
编译型语言通过专门的编译器,将所有源代码一次性转换成特定平台(Windows、Linux 等)执行的机器码(以可执行文件的形式存在)。编译一次后,脱离了编译器也可以运行,并且运行效率高。可移植性差,不够灵活。
解释型语言由专门的解释器,根据需要将部分源代码临时转换成特定平台的机器码。跨平台性好,通过不同的解释器,将相同的源代码解释成不同平台下的机器码。一边执行一边转换,效率很低。

Python 属于典型的解释型语言,所以运行 Python 程序需要解释器的支持,只要你在不同的平台安装了不同的解释器,你的代码就可以随时运行,不用担心任何兼容性问题,真正的“一次编写,到处运行”。

Python 几乎支持所有常见的平台,比如 Linux、Windows、Mac OS、Andriod、FreeBSD、Solaris、PocketPC 等,你所写的 Python 代码无需修改就能在这些平台上正确运行。也就是说,Python 的可移植性是很强的。

1.python主要数据类型,以及各类型的特性和区别

python3数据类型主要分为以下六大类:

Numbers(数字)
String(字符串)
List(列表)
Tuple(元祖)
Dictionary(字典)
Set(集合)

Python3 的六个标准数据类型中:

不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。

数字类型: int(长整型)
float(浮点型)
complex(复数)
bool(布尔型)

数字数据类型用于存储数值,他们是不可改变的数据类型,若改变数字数据类型会分配一个新的对象;当指定一个值时,Number 对象就会被创建

创建了两个实例对象,值分别为1和2,当改变a的值为3时,会为变量a重新分配对象。使用del语句可以删除一些对象的引用,如:

图片.png

图片.png

2.字符串的各种用法

除了数字,Python中最常见的数据类型就是字符串,无论那种编程语言,字符串无处不在。例如,从用户哪里读取字符串,并将字符串打印到屏幕显示出来。 字符串是一种数据结构,学习索引和切片——用于从字符串中提取子串的方法。

1 字符串索引

python程序在处理字符串时,最小的字符换索引为0,最大的字符串索引比字符串长度小1。

Python索引为何从0开始?我们这样理解便可: 索引值用于测量与字符串第一个字符相隔的距离, 就像一把尺子(其刻度也是从零开始)。这 让有些索引计算更简单,也与函数 %(求余) 一致。% 经常用于索引计算,自然也可能返回 0。

字符串的最后一个字符为 string[-1]

string[start : end : step]

  • string:表示要截取的字符串

  • start:表示要截取的第一个字符的索引(包括该字符),如果不指定,则默认为0

  • end:表示要截取的最后一个字符的索引(不包括该字符),如果不指定则默认为字符串的长度。

  • step:表示切片的步长,如果省略,则默认为1,当省略该步长时,最后一个冒号也可以省略。

  1. 循环索引字符

假如需要依次访问字符串的每个字符,需要计算出所给字符串的编码总和,对比两种代码方法,如下图实现及结果,第一种codesum1()函数: 使用 for 循环时,在循环的每次迭代开头,都会将循环变量 c 设置为 s 中的 下一个字符。使用索引访问 s 中字符的工作由 for 循环自动处理。

第二种codesum2()函数使用了常规访问s中字符的方法,对比codesum1()函数可以发现,虽然二者计算结果一致,但第二种函数的代码明显较为复杂.

def codesum1(s):
    total = 0
    for c in s:
        total = total + ord(c)
    return total
 
def codesum2(s):
    total = 0
    for i in range(len(s)):
        total = total + ord(s[i])
    return total

2 字符使用

在所有编程语言中,字符串都是由字符所组成,而所有字符都有对应的字符编码与之相对应。在Python中,我们可以使用ord()函数来学习。ord() 函数是 chr() 函数(对于8位的ASCII字符串)或 unichr() 函数(对于Unicode对象)的配对函数,它以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值,如果所给的 Unicode 字符超出了你的 Python 定义范围,则会引发一个 TypeError 的异常。

关于Unicode做一个简单的背景介绍: Unicode 提供了一个大得多的字符编码集。出于方便考虑,Unicode 的前 256 个 字母为 ASCII 码,因此如果你只处理英文字符,几乎不用考虑 Unicode 的细节。

>>> ord('a')
97
>>> ord('b')
98
>>> ord('c')
99
  1. 字符串运算

数字有其标准的运算方式,字符串同样也有着一定的运算。下面来看下字符串的运算符。

+

字符串连接

*

重复输出字符串

[]

通过索引获取字符串中字符

[ : ]

截取字符串中的一部分

in

如果字符串中包含给定的字符返回 True

not in

如果字符串中不包含给定的字符返回 True

r/R

原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母"r"(可以大小写)以外,与普通字符串有着几乎完全相同的语法。

4.字符串切片 在 Python 中,可使用切片从字符串中提取子串。要对字符串执行切片操作,可指定两个索引:要提取的第一个字符的索引;要提取的最后一个字符的索引加 1。 用于切片的索引与用于访问各个字符的索引相同:第一个索引总是为零,而最后一个索引总是比字符串长度小 1。一般而言,string[begin:end]返回从索 引 begin 到 end-1 的子串。注意:如果 string 是一个字符串,则要访问索引 i 对应的字符,可使用 string[i] 或 string[i:i+1]。

在索引字符串时所讲述的正向、负向索引同样可以应用于切片中。

4 字符串格式化

Python 支持格式化字符串的输出 。这会用到一个较为复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。

>>> print("我最喜欢的食物是%s,它的热量是%d千焦" %('hot dog',3500))
我最喜欢的食物是hot dog,它的热量是3500千焦

我们将python字符串格式化符号整理如下:标红为字符串格式化中的辅助指令

%c

格式化字符及其ASCII码

%s

格式化字符串

%d

格式化整数

%u

格式化无符号整型

%o

格式化无符号八进制数

%x

格式化无符号十六进制数

%X

格式化无符号十六进制数(大写)

%f

格式化浮点数字,可指定小数点后的精度

%e

用科学计数法格式化浮点数

%E

作用同%e,用科学计数法格式化浮点数

%g

%f和%e的简写

%G

%F 和 %E 的简写

%p

用十六进制数格式化变量的地址

*

定义宽度或者小数点精度

-

用做左对齐

+

在正数前面显示加号( + )

<sp>

在正数前面显示空格

#

在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X')

0

显示的数字前面填充'0'而不是默认的空格

%

'%%'输出一个单一的'%'

(var)

映射变量(字典参数)

m.n.

m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)

计算字符串的长度

在Python中使用len()函数来计算字符串的长度

语法格式: len(string)

在默认情况下,len函数在计算字符串的长度时,无论是数字,字母还是多字节的汉字都认为是一个字符。

为什么说是默认情况下呢,因为在实际开发中,可能因为我们采取的编码不同,字符串实际所占的字节数也不同。

  • UTF-8编码,汉字占3个字节
  • GBK或者GB2312,汉字占2个字节

这时我们可以通过使用encode()方法进行编码后再进行获取长度。

>>> str1 = "你好"
>>> len(str1)
2
>>> len(str1.encode('gbk'))
4
>>> len(str1.encode('utf-8'))
6

分割字符串

python中分割字符串是使用split()方法把字符串分割成列表

语法格式 : str.split(sep, maxsplit)

  • str:表示要进行分割的字符串

  • sep:用于指定分隔符,可以包含多个字符,默认为None,即所有空字符(包括空格、换行"n”、制表符“t”等)。

  • maxsplit:可选参数,用于指定分割的次数,如果不指定或者为-1,则分割次数没有限制,否则返回结果列表的元素个数最多为 maxsplit+1

  • 返回值:分隔后的字符串列表。

检索字符串

python中字符串的查找方法

1、count()方法

语法格式 : str.count(sub[, start[, end]])

作用:用于检索指定字符串在另一个字符串中出现的次数,如果检索的字符串不存在则返回0,否则返回出现的次数。

参数说明

  • str:表示原字符串
  • sub:表示要检索的子字符串
  • start:可选参数,表示检索范围的起始位置的索引,如果不指定,则从头开始检索
  • end:可选参数,表示检索范围的结束位置的索引,如果不指定,则一直检索到结尾

2、find()方法

语法格式 : str.find(sub[, start[, end]])

作用:检索是否包含指定的字符串,如果检索的字符串不存在则返回-1,否则返回首次出现该字符串时的索引。

3、index()方法

语法格式 : str.index(sub[, start[, end]])

作用:和find方法类似,也用于检索是否包含指定的字符串,使用index方法,当指定的字符串不存在时会抛异常。

4、startswith()方法

语法格式 : str.startswith(prefix[, start[, end]])

作用:检索字符串是否以指定的字符串开头,如果是则返回true,否则返回false。

5、endswith()方法

语法格式 : str.endswith(prefix[, start[, end]])

作用:检索字符串是否以指定的字符串结尾,如果是则返回true,否则返回false。

1、lower()方法

语法格式 : str.lower()

作用:将字符串中的大写字母转换为小写字母

2、upper()方法

语法格式 : str.upper()

作用:将字符串中的小写字母转换为大写字母

1、strip()方法

语法格式 : str.strip([chars])

作用:去除字符串前后(左右侧)的空格或特殊字符

2、lstrip()方法

语法格式 : str.lstrip([chars])

作用:去除字符串前面(左侧)的空格或特殊字符

3、rstrip()方法

语法格式 : str.rstrip([chars])

作用:去除字符串后面(右侧)的空格或特殊字符

3. 列表的各种用法

   list = [123, “abcd” , 2.23,[456,"efg"] ]
    tinylist = [123, 'runoob']
 
    print (list)              //输出[123, 'abcd', 2.23, [456, 'efg']]
    print (list[0])           //输出123
    print (list[3])          //输出[456, 'efg']
    print (list[0:3])        //输出[123, 'abcd', 2.23]
    print (list * 2)      //输出[123, 'abcd', 2.23, [456, 'efg']123, 'abcd', 2.23[456, 'efg']]
    print (list + [789,"qwe"]) //输出[123, 'abcd', 2.23, [456, 'efg']789, 'qwe']

List是一个有序的、可重复的数据类型,可以对其元素进行添加、删除、修改等操作。 List支持不同数据类型的在一个列表中,但是一般情况下都会是一种类型,比如生活中排队上车一样,队列里元素都是人。

一、添加

1.1 list.append(数据)  常用,重点掌握

释义:在列表末尾追加数据(一次只能添加一条数据,想要添加多条需要循环或遍历添加)

 

1.2 list1.extend(list2)  不常用,了解即可

释义:将 list2 的数据追加在 list1 中(追加在list1的末尾)

 

1.3 list.insert(索引, 数据)  不常用,了解即可

释义:根据索引将数据插入到 list 中

        注意:索引一定是存在的,不然会报IndexError.

 

二、删除(不常用,了解即可)

2.1 del list[索引] 

释义:删除列表中某个索引的数据

 

2.2 list.remove(数据) 

释义:删除列表当中第一次出现的指定数据(列表中有多个重复数据时也只删除第一次出现的)

 

2.3 list.pop() 

释义:删除列表末尾数据

 

2.4 list.clear()

释义:清空列表

 

三、修改(不常用,了解即可)

list[索引] = 值

释义:修改列表中某个数据的值(一次只能修改一个)

用法:

 

四、其他

4.1 获取 list 长度  len(list_name)

4.2 成员运算符 in   not in    '数据' in list_name

4.3 排序

        list.sort()  升序排列

        list.sort(reverse = True)  降序排列

        list.reverse()  / list[::-1]     列表反转/倒序

未完,持续补充中······