Python总结
一、基本概念
1、注释:
注释的类型:
单行注释: #
多行注释:""" “”"或者 ’‘’ ‘’‘ (三个单引号)
文档注释:多行注释,放在定义的第一行
2、python的变量:
变量:在程序运行时,可以发生变化的量,叫做变量;变量就是一个具有名称的内存空间。
python对变量的定义:python是一门弱数据类型语言
变量名称=变量值
【标识符】变量的命名规范:
1、只能由有效符号【大小写字母、数字、__(下划线)】组成
2、不能以数字开头
3、不能以关键字或者保留字作为变量名称
4、变量的名称尽量有意义(比如说定义年龄用age,定义年用year,定义时尽量用明确的单词)
5、建议多个单词之间连接,使用小驼峰或者下划线,官方推荐使用下划线法(myApps,my_apps)
3.查询python的关键字
import keyword
keyword.kwlist
['False', 'None', 'True', '__peg_parser__', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
4、python的数据类型
基本数据类型:(官方定义,不需要自己创建)
—数值型(number):
— 整数(int)
—浮点型(float)
—复数
— 布尔类型(Boolean):True、Flase(只有这两个值)
—字符串:
‘字符串’
“字符串”
“”" 字符串 “”"
‘’‘字符串’’’
(空字符串代表假false)
—NaN (not a number)
—None : 代表空,不存在
引用(复合)数据类型:(不是基本数据类型,需要自己创建)(由大量的数据对象组成,对象本身允许修改)
万物皆可对象
list, set ,dict, tuple ,object……
结果为假:
1、数字0代表为假false
2、空字符串代表假false
3、None代表假false
5、数据类型转换:
自动类型转换:在运算中自动向高精度数据类型转换(比如说在整数和小数运算过程中,自动向小数类型转换)
强制类型转换:
当字符串为数字字符串时(“11111”)可以有如下转换:
int(字符串) : 将字符串转换为整数
float(字符串) : 将字符串转换为浮点数
str(数字) : 将数字转换为字符串
但是当字符串为类似于这种(“世界和平”),就不能进行数字之间的转换
6、关键字
保留字(和关键字作用类似):目前代表没有意义的字,python目前版本还没有成为关键字的字符,但是先把它占了,以防后面的版本用到,就叫保留字
二、常见运算符
1、算术运算符:
+ : 加法运算符 0.1+0.2==0.3 结果是false
- : 减法运算符
* : 乘法运算符
/ : 除法运算符(不是整除,结果是什么就得到什么)
% : 求模(余)运算符(求余数部分)
// : 整除运算符(只能得到整数部分)
** : 幂次方
0.1+0.2==0.3 结果是false
2、关系(比较)运算符 (输出结果true或者false)
> : 大于
< : 小于
>= : 大于等于
<= : 小于等于
== : 判断两个数是否相等
! = : 不等于
3、逻辑运算符 (多个条件之间的关联关系)
and : 与(并且,都真才真)
or :或(或者,一真则真)
not :非(取反)
4、所属运算符
in : 判断某个变量是否在某个列表中 (变量 in 容器)
not in
5、赋值运算符 (二元赋值运算符)
=
+= a + = 10 <> a = a + 10
-= a - = 10 <> a = a - 10
*= a * = 10 <> a = a * 10
/= a / = 10 <> a = a / 10
//= a // = 10 <> a =a // 10
%= a % = 10 <> a =a % 10
**= a ** = 10 <==> a =a ** 10
6、三目运算符:
表达式 ? 变量1 : 变量2 (其他编程语言中的三目运算符)
int a =10 < 8 ? 20 : 40 (真前假后) 输出40
变量1 if 表达式 else 变量2 (python中三目运算符)
b =20 if a<10 else 40
7、位运算
位:bit
字节 :byte (八个位表示一个字节)
正数(无符号数):一个字节 0000 0000 – 1111 1111 0–256
负数: 最高位不再参与计数,用来表示正负,0 表示正,1表示负 -128—127
-8 :1000 1000
-9 :1000 1001 -8和-9相加
----------------------
10001 0001 最高位的1溢出了 ,最高位舍弃就变成了0001 0001=17,结果就不对了
计算机学家为了解决负数计算错误的情况,引入了三个新的概念:
原码 :一个整数按照绝对值大小转换成的二进制数
反码 :将二进制数按位取反,所得到的新二进制数称为原二进制的反码
补码 :反码加1称为补码
1000 1000 -8的原码
1111 0111 -8的反码
1111 1000 -8的补码
1000 1001 -9的原码
1111 0110 -9的反码
1111 0111 -9的补码
1111 1000 -8的补码
1111 0111 -9的补码
-----------------
11110 1111=1110 1111 (舍弃最高位)
1110 1110 (减1)
1001 0001 =-17 (最高位不变,按位取反)
三、位运算符:
& : 与运算 操作数中两个对应的位都为1结果为1,一方是0则结果是0 eg.0000 0001 & 0000 0011=0000 0001=1
| : 或运算 操作数中对应位中任一位为1则结果为1 eg. 0000 1001 | 0010 0010=0010 1011=43
^ : 异或运算 操作数中两个操作位都为1和0结果为0,为0和1结果为1(相反为真) eg.0100 0001 ^0101 1010 =0001 1011
~ : 按位取反 1变0,0变1
<< : 移位运算符 向左移动,超过的位丢弃,空出的位补0
>> :移位运算符 向右移动
在旧式的CPU下,位运算符效率高于加减运算,加减运算是高于乘除运算
在新式的CPU下,位运算符效率和加减的运算效率差不多,但是都高于乘除运算
四、三大流程(程序控制流程)(语句与语句之间执行顺序问题)
1、顺序 : 代码从第一个语句开始顺序执行,由左到右,自上而下执行
eg. a=10 ; b=20 由左到右依次执行
2、选择结构 :
1)单分支:
2) 双分支
3) 多(三)分支
单分支:
#python是一门强制缩进的语言,如果出现了子集,一定要缩进,如果不缩进,则认为不是它的子集而是 平行级别的代码
If (条件):
# 如果条件成立,则执行缩进后的代码
(当只有一条执行缩进代码时,可以和if条件句放在同一行)
双分支 :
if ( 条件 ) :
#如果条件成立,则执行if中的代码
else:
#如果条件不成立,则执行这儿(else)的代码
多分支: (至少有三个要执行的条件)
if ( 条件1 ) :
如果条件1成立,则执行if中的代码
elif ( 条件2 ) :
如果条件2成立,则执行这儿的代码
elif ( 条件3 ) :
如果条件3成立,则执行这儿的代码
……………………….
else: (可写可不写,要看上面的条件有没有剩余)
剩余情况,执行这儿的代码
注意:python中是没有switch语句的
3、循环结构 :
在程序中,我们要拒绝哪怕是两行代码的重复!!!!!
for
while
do while
While 循环
while 条件: (条件成立则一直执行while循环,直到条件不成立,如果一直成立则是死循环)
执行循环体
eg.求0–100的和:
如果需要终止循环的时候,break关键字终止循环
break关键字:
终止离他最近的一层循环
continue关键字:
跳过本次循环,进入下次循环(之后判断条件)
continue终止本次循环,进入下次循环
for循环
python的for循环,本质是一种 for in 结构的foreach循环,也就是一种迭代结构
python提供的for循环,想法就是用来迭代对象(iterable)的数据的遍历的
迭代:用变量来定义容器中的内容,容器中的内容就保存在了这个变量中
这时候如果也有其他容器也用变量a来迭代,这时a就会被其他容器的内容覆盖
for临时变量in iterable:
每一次迭代的结果会保存在这个临时变量中
print(临时变量)
range函数
range(num) 一个可以迭代的整数数据区间[0,num)
range(start,end) 一个可以迭代的整数数据区间[start,end)