目录
1.python3数据类型介绍
2.python3中数字
3.python3的字符串
4.python3 的列表
5.python3 的元组
6.python3 的字典
7.python3 的集合
8.while循环
9.for循环
10.函数以及参数
11.递归
12.匿名函数lambda
1.Python3有六个标准的数据类型
Numbers(数字)
String(字符串)
List(列表)
Tuple(元组)
Dictionary(字典)
set(集合)
2.number 数字类型:
int(有符号整型)
long(长整型[也可以代表八进制和十六进制])
float(浮点型)
complex(复数)
2.1 数字类型的数学函数
2.2 数字类型:随机数函数
此表格为random模块中的函数
import random
2.3math 计算包
math — 数学函数 | 《Python 3 标准库实例教程》 | 高品质的 Python 开发者社区
好难🤯 暴风哭泣
单独开一个==
3.string 字符串
字符串或串(String)是由数字、字母、下划线组成的一串字符。
‘’ “” 表示
如果你要实现从字符串中获取一段子字符串的话,可以使用 [头下标:尾下标] 来截取相应的字符串,其中下标是从 0 开始算起,可以是正数或负数,下标可以为空表示取到头或尾。
[头下标:尾下标] 获取的子字符串包含头下标的字符,但不包含尾下标的字符。
不包含第五个字符!!!!!!!!
[1:5] 只要4个
3.1 字符串和运算符
3.2 字符串:转义字符
\n 换行
我们可以对字符串进行换行,事实上,python还为我们提供了多行换行, 使用'''...'''或者"""..."""都可以进行多行换行,...代表的是提示符
ps:... 是在终端使用
"""这种在jupyter notebook中 就可以实现换行
字符串前加r,使得字符串中的\用作普通字符
3.3 字符串与unicode的区别
pass
留个坑
3.4 字符串的更改
字符串不能更改里面的内容。
只能通过.replace()更改,然后赋值给另一个变量
3.5 创建字符串时,* 可以顶替missing letter
3.6 字符串的strip()用法
Python strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。
str.strip([chars])
4.列表list
List(列表) 是 Python 中使用最频繁的数据类型。
列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(即嵌套)。
列表用 [ ] 标识,是 python 最通用的复合数据类型。
4.1 创建列表
4.1.1 通过变量创建
4.1.2 通过字符串split
4.1.3 通过list()
4.2 给列表中添加元素
append( ) :只能在最后加元素进去,item类型可以是任意的
extend():加多个元素,也是在最后加 只接受列表参数,并把列表中的item分解,然后添加到原有的列表
如果指定在第几个index加入,用insert()
4.3 删除列表中的元素
del删除。它按item的索引值或切片进行删除
del a_list[0] //删除列表的第一个值
del a_list[:2] //删除列表的前两个值。(为什么不是前三个呢?因为python的列表切片,包含前一个索引,但不包括后一个索引)
remove方法删除。它不按item索引,而是按照item的值进行删除:
a_list.remove('a') //把a从列表中删除
pop方法删除。它按item索引值进行删除,同时返回被删除的item值;若不指定索引,默认删除最后一个item:
a_list.pop(1) //删除列表的第二个值,并返回被删除的值
a_list.pop() //删除列表的最后一个值,并返回被删除的值
4.5 重新赋值
对指定索引使用assignment符号进行赋值
a_list = ['a','b','c','hello']:
a_list[1] = 'bbb'
4.6 检索列表的值
四种方式:in、not in、count、index,后两种方式是列表的方法。
示例列表:a_list = ['a','b','c','hello']:
判断值是否在列表中,in操作符:
'a' in a_list //判断值a是否在列表中,并返回True或False
判断值是否不在列表,not in操作符:
'a' not in a_list //判断a是否不在列表中,并返回True或False
统计指定值在列表中出现的次数,count方法:
a_list.count('a') //返回a在列表中的出现的次数
查看指定值在列表中的位置,index方法:
a_list.index('a') //返回a在列表中每一次出现的位置,默认搜索整个列表
a_list.index('a',0,3) //返回a在指定切片内第一次出现的位置
https://blog.csdn.net/wudiyi815/article/details/7775549
4.7列表的method
4.
5.元组 tuple
元组是另一个数据类型,类似于 List(列表)。
元组用 () 标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。
A tuple is a collection which is ordered and unchangeable. In Python tuples are written with round brackets.
所以 元组的添加是这样的:
要有逗号
5.1 元组只可以只读,所以要查询元组,用for loop语句。
5.2 You can access tuple items by referring to the index number, inside square bracket
也可以用index 查询元组
5.3 检查某个字符串或别的在不在元组里,用in
5.3 求元组的长度
len()
5.4 与字符串同样,元组也是不可变对象 所以不能直接修改他们的值
如果需要修改,直接在同一个元组上更新是不可行的,但是可以通过拷贝现有的元组片段构造一个新的元组的方式解决。
通过分片的方法让元组拆分成两部分,然后再使用连接操作符(+)合并成一个新元组,最后将原来的变量名(temp)指向连接好的新元组。
5.5 两个元组之间 + 可以组成新的元组
5.6 元组的删除 用del
6.字典 dictionary
字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象集合,字典是无序的对象集合。
两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典用"{ }"标识。字典由索引(key)和它对应的值value组成。
6.1 查找字典
()得到key
[ ]得到value
.get("key") 也能得到value
6.2给字典里添加item
直接添加就行了
集合要用add 或者update()
Adding an item to the dictionary is done by using a new index key and assigning a value to it:
6.3 字典 多种删除方法
pop( ) 括号中写入指定的key
del() 括号中写入指定的key
del 还能直接删除整个字典
clear() 清除字典中的内容,保留结构
popitem( ) 只删除最新的那一列字典
6.4 创建字典 dict( )
ps: 为什么用= 比用冒号要好??????
6.5 复制另一个字典
copy( )
dict( )
6.6 字典的method
7.集合 set
A set is a collection which is unordered and unindexed. In Python sets are written with curly brackets.
集合是用{ }表示的
Sets are unordered, so the items will appear in a random order.
7.1 集合是无序的,没有index
7.2 给集合添加元素 用 add()
7.3给集合添加多个元素,用update()
7.4 集合的删除 remove() 和 discard()
区别: 如果删除一个不在该集合中的元素,remove()会报错。discard()不会
7.5 pop()
pop()也能删除,但是只能删除最后一个元素
但是集合是无序的,你也不知道删的是哪个
7.6 删除整个set
clear()只能把集合中清空
del()是全部删除,直接报错的那种
7.7 把元组转成集合
set()
注意是圆括号,不是大括号
7.8 集合中的method
8. while循环
while 语句时还有另外两个重要的命令 continue,break 来跳过循环,continue 用于跳过该次循环,break 则是用于退出循环,此外"判断条件"还可以是个常值,表示循环必定成立
8.1 while... else
在 python 中,while … else 在循环条件为 false 时执行 else 语句块:
9.for 循环语句
9.1 break语句
在for语句同样,continue 用来跳过该次循环
9.2 for... else 语句
The else keyword in a for loop specifies a block of code to be executed when the loop is finished
else后面执行当循环结束之后的语句
10.函数function
函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。
任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
函数内容以冒号起始,并且缩进。
return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
10.1 Parameters 参数
Information can be passed to functions as parameter.
Parameters are specified after the function name, inside the parentheses. You can add as many parameters as you want, just separate them with a comma.
10.2 Default Parameter Value 默认参数
The following example shows how to use a default parameter value.
10.3 Passing a List as a Parameter
You can send any data types of parameter to a function (string, number, list, dictionary etc.), and it will be treated as the same data type inside the function.
10.4 可更改(mutable)与不可更改(immutable)对象
在 python 中,strings, tuples, 和 numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象。
不可变类型:变量赋值 a=5 后再赋值 a=10,这里实际是新生成一个 int 值对象 10,再让 a 指向它,而 5 被丢弃,不是改变a的值,相当于新生成了a。
可变类型:变量赋值 la=[1,2,3,4] 后再赋值 la[2]=5 则是将 list la 的第三个元素值更改,本身la没有动,只是其内部的一部分值被修改了。
python 函数的参数传递:
不可变类型:类似 c++ 的值传递,如 整数、字符串、元组。如fun(a),传递的只是a的值,没有影响a对象本身。比如在 fun(a)内部修改 a 的值,只是修改另一个复制的对象,不会影响 a 本身。
可变类型:类似 c++ 的引用传递,如 列表,字典。如 fun(la),则是将 la 真正的传过去,修改后fun外部的la也会受影响
python 中一切都是对象,严格意义我们不能说值传递还是引用传递,我们应该说传不可变对象和传可变对象。
10.5 不定长参数
你可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数,和上述 2 种参数不同,声明时不会命名。
加了星号 * 的参数会以元组(tuple)的形式导入,存放所有未命名的变量参数。
如果在函数调用时没有指定参数,它就是一个空元组。我们也可以不向函数传递未命名的变量
加了两个星号 ** 的参数会以字典的形式导入。
11. Recursion 递归
Python also accepts function recursion, which means a defined function can call itself.
Recursion is a common mathematical and programming concept. It means that a function calls itself. This has the benefit of meaning that you can loop through data to reach a result.
The developer should be very careful with recursion as it can be quite easy to slip into writing a function which never terminates, or one that uses excess amounts of memory or processor power. However, when written correctly recursion can be a very efficient and mathematically-elegant approach to programming.
In this example, tri_recursion() is a function that we have defined to call itself ("recurse"). We use the k variable as the data, which decrements (-1) every time we recurse. The recursion ends when the condition is not greater than 0 (i.e. when it is 0).
To a new developer it can take some time to work out how exactly this works, best way to find out is by testing and modifying it.
11.1 应用场景
递归算法一般用于解决三类问题:
(1)数据的定义是按递归定义的。(比如Fibonacci函数)
(2)问题解法按递归算法实现。(回溯)
(3)数据的结构形式是按递归定义的。(比如树的遍历,图的搜索)
11.2 默认的Python有一个可用的递归深度的限制,以避免耗尽计算机中的内存。默认是1000。
11.3 递归的优缺点
优点:
递归使代码看起来更加整洁、优雅
可以用递归将复杂任务分解成更简单的子问题
使用递归比使用一些嵌套迭代更容易
缺点:
递归的逻辑很难调试、跟进
递归算法解题的运行效率较低。在递归调用的过程当中系统为每一层的返回点、局部量等开辟了栈来存储。递归次数过多容易造成栈溢出等。
12.匿名函数 lambda
12.1 lambda表达式
lambda arguments : expression