Python第三章 python的运算符和表达式
运算符:
加减赋值(简单的运算,声明变量)如下:

取最大最小值,(函数调用,函数(参数))单行字符串如下:

判断数据类型如下:

三单引号或三双引号编写多行字符串如下:
 
列表(中括号),集合(花括号),字典(花括号)(去重,集合加运算)如下:
 
import引入摸块关键字,求平方根 .sqrt() 如下:
 
"""多行注释"""
'''单(多)行注释'''
常量:内存 固定值单元 值不变
变量:内存 变量的值或地址 值可变
常量命名规范:每个单词全部大写:NAME
变量命名规范:第一个字母必须是字母或下划线,不能是数字或中文
变量命名方式:
Python3 支持 uft-8
标识符和关键字:
标识符:变量名,函数名,类名,要见名知意,比如name表示名字
关键字:Python内部已经使用的标识符
>>>import keyword
>>>print(keyword.kwlist)(查看关键字)
注意: 区分大小写
= 左右要有空格
变量名是多个单词的时候:每个单词使用小写字母,单词之间用下划线分割:first_name
驼峰命名法:变量名是两个以上的单词组成时,可以使用驼峰命名法
小驼峰命名法:第一个单词以小写字母开始,后续单词首字母大写:firstName,lastName
大驼峰命名法:每一个单词的首字母均大写:FirstName,LastName
普通变量:全小写字母,单词之间用下划线分割,如my_var;
全局变量:全大写字母,单词之间用下划线分割,如MY_CONST;
类名:首字母大写,单词直接连在一起,采用驼峰命名法,如MyClass;
普通函数:与普通变量一样,如my_function();
模块名:全小写字母,不使用下划线;
保留字
保留字:被编程语言内部定义并保留使用的标识符
python语言中有33个保留字(也叫关键字)
保留字是编程语言的基本单词,大小写敏感,IF不等于if,if是保留字,IF是变量
33个保留字:
and elif import raise global as else in
return nonlocal assert except is try True break
finally lambda while False class for not with
None def if pass del continue from or yield
  
基本数据类型:
数据类型:数据在内存中的存储方式
基本的数据类型:整型,浮点型,布尔型,复数型,字符串型
数据结构类型:列表,元组,字典
整数型:int 不限制大小 可当作Long使用 包括自然数和负整数
浮点型:如果整数部分为0,则省略:.23=0.23
减法误差的原因:内存中以二进制表示浮点数,有的浮点数表示不精确,所以会产生误差
 
解决误差:可使用decimal模块,但有性能损失
 
复数类型:

说明:定义时为实部和虚部为整形,但是内存中存储的却是浮点型
布尔型:使用常量True和False表示
布尔型变量可以通过比较表达式获得,True当作1,False当作0
  
 
整型的其他表示:
十进制:以10为基数,使用0-9,9+1=10
二进制:以2为基数,1+1=10,python中以0b开始:0b01011
计算方法:1*20 +1*21+0*22+1*23+0*24=11
八进制:以8为基数,使用0-7,1+7=10,python中以0o开始:0o66
    计算方法:6*80+6*81=54
十六进制:以16为基数,0-9,a-f,(A-F)对应10-15,python中以0x开头:0x2F
计算方法:15*160+2*161=47
字符串:数字,字母,下划线
双引号可生成包含单引号的文本
    ![]()
基本操作:
加法:拼接字符串
     ![]()
数乘:重复n次字符串
      
获取长度:len()函数
        ![]()
转义字符:\ 开头(后可加字符、八进制数、十六进制数) \n 表换行 \t 制表符 \r 表回车 \\ 反斜杠 \ 结尾时表示续航符
\' 单引号 \" 双引号 \000 空
代码的换行:()或\
    
        
字符串的格式化
简单的字符串拼接:
    
使用%格式化输出:
         
%s 表示字符串
%d 表示整数
     %f   浮点数
使用.format()方法格式化:
     ![]()
通过参数指定位置进行格式化:
    ![]()
    多位置替换:
      
使用名称对参数格式化:
     
花括号可以控制输出的类型及各式:
{<field name>:<format>}
说明:field name:参数位置或名称,可省略
          Format:可以是s/d/f
格式化符号: s字符串 d整数 f浮点数
:10s格式字符串是在后面添加空格
    
    :10d是在整数前面添加空格
    
:010d是在整数前面添加0,补足位数
    
{:.2f}指定浮点数,小数点后显示2位
    
Python3中,字符串都是Unicode字符串,16位
运算符:
分类:算术运算符,连接运算符,关系运算符,赋值运算符,逻辑运算符 如:+,-,*,/,%,not,and,or..........
算术运算符:对运算数进行算术运算
+:相加
-:相减
*:两数相乘或重复若干次字符串
/:两数相除
%:求余数
**:幂运算,x**y表示x的y次幂(方)
//:取整除,向下取接近除数的整数 9/2=4,-9/4=-5
赋值运算符:变量的赋值和更新
基础赋值运算符:=
特殊赋值运算符:加法赋值运算符,减法赋值运算符........
=:简单赋值
+=:加法赋值运算符 c+=a:c=c+a
-=:减法赋值运算符 c-=a: c=c-a
*=:乘法赋值运算符 c*=a: c=c*a
/=:除法赋值运算符 c/=a: c=c/a
%=:取模赋值运算符 c%=a:c=c%a
**=:幂赋值运算符 c**=a: c=c**a
//=:向下取整除赋值运算符 c//=a:c=c//a
关系运算符:比较运算符,比较数之间的大小及是否相等
a=3,b=5
==:等于 a==b:False
!=:不等于 a!=b:True
>:大于 a>b:False
<:小于 a<b:True
>=:大于等于 a>=b:False
<=:小于等于 a<=b:True
注意:所有比较运算符返回1表示真,返回0表示假,与特殊变量True及False等价
Python中的字符使用ASCI码,所以比较的是字符的ASCI码
      
逻辑运算符:判断事物之间与、或、非的关系,包括 and、or、not
a=True b=False
and:布尔与 x and y 全真则真,有假则假 x and y:False
or:布尔或 有真则真,全假则假 x or y:True
      not:布尔非   取反        not(x and y):True
            
      
注意:
1.没有括号,not>and>or 同一优先级从左到右计算
            
2.x or y 有真则真,全假则假,x and y 有假则假,全真则真,非0转换为布尔值是True,0转换为布尔值是False(若全是真or取前边数,全是真and取后边数)
      
运算符的优先级:
** 指数(最高优先级)
~*- 按位翻转,一元加号和减号(+@,-@)
*/%// 乘,除,求余数,取整除
+- 加法, 减法
>> << 右移,左移
& 位'AND'
^ | 位运算符
<= < >= > 比较运算符
== |= 等于运算符
      = %= /= //= -= += *= **=  赋值运算符
is is not 身份运算符
in not in 成员运算符
not and or 逻辑运算符
      
数据结构:
容器:序列(列表,元组,字符串)、映射(如字典)以及集合(set)
数组:大小固定的数据记录组成,根据索引快速查找元素,连续的数据结构
列表list:动态数组 添加或删除元素 分配或释放内存来自动调整存储空间
优点:可以存储不同数据类型
  缺点:数据存储不紧凑,数据结构占据空间大
列表创建、查询
列表:不限类型,可以是字符串或混合型
    
索引:指示数据所在位置的逻辑指针,列表的索引就是元素的序列位置
        
实际问题:当列表内元素较多时,查找最后的元素较麻烦
解决办法:用负数表示索引,-1表示最后一个数字的索引
       
  
问题:怎样一次选择多个元素呢?
  
注意:区间左闭右开,该方法也叫切片
省略一个参数的情况:省略冒号前面的参数,代表从索引第一的 参数开始;省略冒号后面的参数,代表直到最后一个元素,但 是遵循左闭右开的原则,所以不包括最后一个元素。
  
  
列表的增删查:
增加:insert(one,two) one表示入的索引位置,two表示要插入的值
  
append(value):在末尾添加元素
  
删除:pop([arg])
没参数:删除最后一个元素
  
  
有参数:删除数值对应索引的元素
  
更改:
直接对元素赋值
  
如何表示三个学生的信息,要求包括姓名、年龄和性别?
两种办法:
一维列表:
    
二维列表:
  
如何创建二维列表?
  
如何更改某一元素
  ![]()
原因:具有共同的引用
常用的方法:
list.append(obj) 向列表添加某一个元素
        
list.count 查看某一元素在列表中出现的次数
  
list.extend(seq) 将另一个序列中的元素依次添加到该序列
  
list.index(obj) 返回列表中某元素首次出现的索引位置
  
list.insert(index,obj) 在指定索引插入一个元素,插入位置后的元素依次后移
  
list.pop(index) 删除指定位置的元素并返回
  
list.remove(obj) 删除第一次出现的指定元素,不存在,抛异常
  
删除不存在的元素会抛异常:
  
list.reverse() 将列表的元素逆序排列
  
list.sort() 将元素按照从小到大排序
  
list.clear() 清空列表
  
list.copy() 复制列表
  
元组tuple:
元组:在创建时定义元组中的所有元素,不可变,不能添加和删除元素,用圆括号表示
优点:可以打包任意类型元素,具有很强的灵活性
缺点:打包密度比固定类型密度小
  
注意:不允许修改某个元素的值
                    
                