目录
参考
1. 数据类型 和 变量
1.1. 数据类型
1.1.1. 整型
1.1.2. 浮点型
- 运算
- 整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的(除法难道也是精确的?是的!)
- 浮点数运算则可能会有四舍五入的误差。
1.1.3. 字符串
-
字符串是以单引号’或双引号"括起来的任意文本,比如’abc’,"xyz"等等。
-
字符串内部既包含’又包含",用转义字符\来标识;
-
转义字符
- \n \t \\ 转v符; 换行、制表、\ ;
- r’ ’ 进行转移 ’ ’ 内的字符;
-
多行内容
-
Python允许用’’’…’’'的格式表示多行内容;
>>> print(''' line ... lin ... l''') line lin l
-
1.1.4. 布尔型
True False //注意大小写;
-
概述:
- 布尔值在计算机中存储时就是 0和1;
- 0为Flase
- 1为True
- 转换为布尔值格式 bool()
- 其实为False的还有:
None,“”,{},【】,(),0
- 布尔值在计算机中存储时就是 0和1;
-
逻辑运算符
1. And :and运算是与运算,只有所有都为True,and运算结果才是True; 2. Or :or运算是或运算,只要其中有一个为True,or运算结果就是True; 3. Not :True 和 False 的转换;
1.1.5. 空值
- 空值是Python里一个特殊的值,用None表示。
- None不能理解为0,因为0是有意义的,而None是一个特殊的空值。
1.2. 数据类型 转换
- hex() 将 整数 转换成 十六进制表示的字符串;
1.2.1. 数据类型 检查
数据类型检查可以用内置函数isinstance()
实现:
- 实现
if not isinstance(x, (int, float)): raise TypeError('bad operand type')
1.3. 变量
1.3.1. 变量概述
-
注意
- 变量名必须是大小写英文、数字和_的组合,且不能用数字开头;
- 同一个变量,反复赋值,可以是不同数据类型的变量;
# *代码示例* a = 123 # a是整数 print(a) a = 'ABC' # a变为字符串 print(a)
1.4. 常量
- 常量也是变量,即不能改变的变量;
1.4.1. 运算符
-
/ 除法
浮点运算,即便是整数;
-
// 地板除
1. 整数的地板除//永远是整数,即使除不尽; 2. 要做精确的除法,使用/就可以; 3. 只取结果的整数部分;
-
% 余数运算
取余数;
注意
- 注意:Python的整数没有大小限制,而某些语言的整数根据其存储长度是有大小限制的;
例如Java对32位整数的范围限制在-2147483648-2147483647。 - Python的浮点数也没有大小限制,但是超出一定范围就直接表示为inf(无限大)。
没有大小限制;
2. 字符串 和 编码
- 可以使用单引号、双引号;
2.1. 字符串
- 在最新的Python 3版本中,字符串是以Unicode编码的,也就是说,Python的字符串支持多语言;
- 对于单个字符的编码,Python提供了
ord()
函数获取字符的整数表示,chr()
函数把编码转换为对应的字符:
2.1.1. 字符串连接
- 常用方法
方法1:直接通过加号(+)操作符连接 website = 'python' + 'tab' + '.com' 方法2:join方法 listStr = ['python', 'tab', '.com'] website = ''.join(listStr) 方法3:替换 website = '%s%s%s' % ('python', 'tab', '.com')
2.2. 编码
- 概述
- 纯英文的str可以用ASCII编码为bytes,内容是一样的,含有中文的str可以用UTF-8编码为bytes。
- 含有中文的str无法用ASCII编码,因为中文编码的范围超过了ASCII编码的范围,Python会报错。
-
Encode
-
Decode
1. 要把bytes变为str,就需要用 decode()方法: 2. \>\>\> b'\\xe4\\xb8\\xad\\xff'.decode('utf-8', errors='ignore') //忽略错误的字节
-
输出
1. 在Python中,采用的格式化方式和C语言是一致的,用%实现; \>\>\> 'Hi, %s, you have \$%d.' % ('Michael', 1000000) 2. %s永远起作用,它会把任何数据类型转换为字符串: 3. Format() 依次替换字符串中要替换的位置;
3. 输入输出
3.1. 输入
3.2. 输出
3.2.1. Print
- print() 函数也可以接受多个字符串,用逗号 “,” 隔开,就可以连成一串输出:
- 遇到
, 打印一个空格;
4. 条件判断
4.1. IF Else
-
语法:
- 注意在if else 条件后,写 : ;
- else if 可缩写为 elif ;
# 代码示例 age = 3 if age >= 18: print('adult') elif age >= 6: print('teenager') else: print('kid')
4.2. 实战
== 多条件判断 ==
if age>=18 and age<=30 and height >=170 and height <= 185
# 使用 all() 处理
if all([m1, m2]):
continue
elif all([m1, not m2]):
5. 循环
- 概述
Python的循环有两种:- for…in循环,依次把list或tuple中的每个元素迭代出来,
5.1. For … in
- 如果要计算1-100的整数之和,从1写到100有点困难:Python提供一个range()函数,可以生成一个整数序列,再通过list()函数可以转换为list。
range()
List(range(5)); //产生01234;
5.2. While
- break 可以提前退出循环;
- continue 跳出,直接进行下一次循环;
注意
- # 用于注释;
6. list[]
和 tuple()
Python内置的数据类型:
-
一种数据类型是列表:list。
- list是一种有序的集合,可以随时添加和删除其中的元素。
-
另有序列表叫元组:tuple。
- tuple和list非常类似,但是tuple一旦初始化就不能修改,比如同样是列出同学的名字:
注意:
- 两种类型均有序;
6.1. List [ ]
- 概述
- 用索引来访问list中每一个位置的元素,记得索引是从0开始的
- 要取最后一个元素,除了计算索引位置外(len-1),还可以用-1做索引,直接获取最后一个元素:
6.1.1. List 基本操作
参考:https://www.liaoxuefeng.com/wiki/1016959663602400/1017092876846880
//具体操作 与C++类似;
追加、插入、删除、删除指定位置;替换;
6.1.2. 注意
- List中的数据元素可以是不一样的;
- 空list 长度为0;
6.2. tuple ( )
- 要点:
- 一旦初始化,无法修改;
- 不能添加、插入等;
6.2.1. 基本操作
- tuple的陷阱:当你定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来;
6.2.2. *注意*
- 因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。
- 当只有一个元素时,在元素后加 ,消除歧义;
- Tuple 中 使用list嵌套;
7. dict
和 set
-
Python内置的key表结构:
- dict:全称dictionary,在其他语言中也称为map,使用**键-值(key-value)**存储,具有极快的查找速度。
//key – value - set:是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
//key
- dict:全称dictionary,在其他语言中也称为map,使用**键-值(key-value)**存储,具有极快的查找速度。
7.1. dict
- 概述
- key–value 存储; //类似于Hash 算法;使用key来查找value;
dict
是用空间来换取时间的一种方法。
- 速度
- 论这个表有多大,查找速度都不会变慢。 //其格式类似于字典;使用索引表;
7.1.1. 基本操作
-
初始化
d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
-
插入
通过key放入; d[‘**’] = ** ;
-
删除
pop(key)
7.1.2. 错误 预防
- 基础
7.1.3. 区分
-
list dict 区别
-
dict
- 查找和插入的速度极快,不会随着key的增加而变慢;
- 需要占用大量的内存,内存浪费多。
-
List
- 查找和插入的速度极快,不会随着key的增加而变慢;
- 需要占用大量的内存,内存浪费多。
-
-
*注意*
-
dict的key必须是不可变对象。
-
如果每次计算相同的key得出的结果不同,那dict内部就完全混乱;
-
7.2. set set([1, 2, 3])
-
只存储 key;不重复;
-
set可以看成数学意义上的无序和无重复元素的集合;
-
重复元素在set中自动被过滤:
7.3. 基本操作
-
创建set
>>> s = set([1, 2, 3])
-
添加元素
通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果:>>> s.add(4) >>> s {1, 2, 3, 4
-
删除元素
通过remove(key)方法可以删除元素:
-
set
可以看成数学意义上的无序和无重复元素的集合,
因此,两个set可以做数学意义上的交集、并集等操作:
7.3.1. 注意
- set和dict区别
- set和dict的唯一区别仅在于set没有存储对应的value,
- 但是,set的原理和dict一样;
所以,同样不可以放入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”。
8. Python命令
8.1. 常用命令
# 查看Python 版本
python -V