python基础
变量
Python3 的六个标准数据类型中:
- 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
- 可变数据:均为序列(3 个):List(列表)、Dictionary(字典)、Set(集合)。
python 函数的参数传递:
- 不可变类型:类似 c++ 的值传递,如 整数、字符串、元组。如fun(a),传递的只是a的值,没有影响a对象本身。比如在 fun(a)内部修改 a 的值,只是修改另一个复制的对象,不会影响 a 本身。
- 可变类型:类似 c++ 的引用传递,如 列表,字典。如 fun(la),则是将 la 真正的传过去,修改后fun外部的la也会受影响
数字
1 | a, b, c, d= 10,10.0,True,3+4j |
字符串
Python 没有单独的字符类型,一个字符就是长度为1的字符串。
Python 字符串不能被改变。向一个索引位置赋值,比如word[0] = ‘m’会导致错误。
切片一个点是:左起点包含,终点不包含
[ 开始索引, 结束索引, 步长] ** 遵循左闭右开**原则
1 | a="1234567891" |
字符串转元组,逆转,再变回来
1 | a="baidu" |
列表
加号 + 是列表连接运算符,星号 ***** 是重复操作。
Python 列表截取可以接收第三个参数,参数作用是截取的步长
1 | a=[1,2,3] |
位置查找
1 | a_list = ['a','b','c','hello'] |
元组
虽然tuple的元素不可改变,但它可以包含可变的对象,比如list列表。元组中的元素类型也可以不相同。
1 | tup = (1, 2, 3, 4, 5, 6) |
集合 Set
集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员。
1 | sites = {'Google', 'Taobao', 'Runoob', 'Facebook', 'Zhihu', 'Baidu'} |
字典
列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。
键(key)必须使用不可变类型。在同一个字典中,键(key)必须是唯一的。
1 | dict = {} |
转换
1 | int(x [,base])#将x转换为一个整数 |
操作符
1 | # ** 指数 |
队列和栈(队列没有搞好)
队列
1 | q = Queue() #items = [] #定义一个空队列,无参数,返回值是空队列。 |
栈
1 | Stack() #items = [] 建立一个空的栈对象。 |
python的类,对象
1 | class Parent: # 定义父类 |
IF\ELSE、While、FOR
1 | if condition_1: |
输入输出
1 | #输入 |
深拷贝浅拷贝
1 | c=copy.copy(a)#对象拷贝,浅拷贝 |
实例
1 | # -*- coding: UTF-8 -*- |
函数
1 | # 不可变对象实例 |
迭代器&生成器
迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。
迭代器有两个基本的方法:iter() 和 next()。
字符串,列表或元组对象都可用iter() 创建迭代器:
1 | class MyNumbers: |
在 Python 中,使用了 yield 的函数被称为生成器(generator)。
跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器。
1 | import sys |
一些简单的操作
range()
左闭右开区间 [ ),开区间的端点值取不到,而闭区间的端点值就可以取到。
想要生成list,需要用list()函数
1 | range(start, stop[, step]) |
参数说明:
- start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
- stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
- step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
split()
1、split()
函数
语法:str.split(str="",num=string.count(str))[n]
参数说明:str
: 表示为分隔符,默认为空格,但是不能为空(‘’)。若字符串中没有分隔符,则把整个字符串作为列表的一个元素num
: 表示分割次数。如果存在参数num,则仅分隔成 num+1 个子字符串,并且每一个子字符串可以赋给新的变量
n
:表示选取第n个分片
1 | string = "www.gziscas.com.cn" |
最大值
1 | import sys |
zip() 函数:可以用来当list左旋的操作
描述
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。
1 | >>>a = [1,2,3] |
map() 函数:list转换器
1 | map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。 |
1 | 如果函数是 None,自动假定一个‘identity’函数,这时候就是模仿 zip()函数, |