运算符、数据类型、数据结构

一、Python的运算符

1.1、算数运算符

操作符 描述
+ 加法 - 对操作符的两侧增加值
- 减法 - 减去从左侧操作数右侧操作数
* 乘法 - 相乘的运算符两侧的值
/ 除 - 由右侧操作数除以左侧操作数
% - 由右侧操作数和余返回除以左侧操作数
** 指数- 执行对操作指数(幂)的计算
// 地板除 - 操作数的除法,其中结果是将小数点后的位数被除去的商

 

 

 

 

 

 

 

 

 

 

 

1.2、关系运算符

操作符 描述
== 检查,两个操作数的值是否相等,如果是则条件变为真
!= 检查两个操作数的值是否相等,如果值不相等,则条件变为真
<> 检查两个操作数的值是否相等,如果值不相等,则条件变为真
> 检查左操作数的值是否大于右操作数的值,如果是,则条件成立
< 检查左操作数的值是否小于右操作数的值,如果是,则条件成立
>= 检查左操作数的值是否大于或等于右操作数的值,如果是,则条件成立
<= 检查左操作数的值是否小于或等于右操作数的值,如果是,则条件成立

 

 

 

 

 

 

 

 

 

 

 

1.3、赋值运算符

操作符 描述
= 简单的赋值运算符,赋值从右侧操作数左侧操作数
+= 加法AND赋值操作符,它增加了右操作数左操作数和结果赋给左操作数
-= 减AND赋值操作符,它减去右边的操作数从左边操作数,并将结果赋给左操作数
*= 乘法AND赋值操作符,它乘以右边的操作数与左操作数,并将结果赋给左操作数
/= 除法AND赋值操作符,它把左操作数与正确的操作数,并将结果赋给左操作数
%= 模量AND赋值操作符,它需要使用两个操作数的模量和分配结果给左操作数
**= 指数AND赋值运算符,执行指数(功率)计算操作符和赋值给左操作数
//= 地板除,并分配一个值,执行地板除对操作和赋值给左操作数

 

 

 

 

 

 

 

 

 

 

 

1.4、逻辑运算符

运算符 描述
and 所谓逻辑与运算符。如果两个操作数都是真的,那么则条件成立
or 所谓逻辑OR运算符。如果有两个操作数都是非零然后再条件变为真
not 所谓逻辑非运算符。用于反转操作数的逻辑状态。
如果一个条件为真,则逻辑非运算符将返回false

 

 

 

 

 

 

二、数据类型

2.1、整数

Python可以处理任意大小的整数,当然包括负整数,在程序中的表示方法和数学上的写法一模一样,例如:1100-80800,等等。

计算机由于使用二进制,所以,有时候用十六进制表示整数比较方便,十六进制用0x前缀和0-9,a-f表示,例如:0xff000xa5b4c3d2,等等。

2.2、浮点数

浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,比如,1.23x109和12.3x108是完全相等的。

浮点数可以用数学写法,如1.233.14-9.01,等等。但是对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x109就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5,等等。

整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的(除法难道也是精确的?是的!),而浮点数运算则可能会有四舍五入的误差。

2.3、布尔值

布尔值和布尔代数的表示完全一致,一个布尔值只有TrueFalse两种值,要么是True,要么是False,在Python中,可以直接用TrueFalse表示布尔值(请注意大小写),布尔值可以用andornot运算。

2.4、字符串

字符串是以单引号'或双引号"括起来的任意文本,比如'abc'"xyz"等等。请注意,''""本身只是一种表示方式,不是字符串的一部分,因此,字符串'abc'只有abc这3个字符。如果'本身也是一个字符,那就可以用""括起来,比如"I'm OK"包含的字符是I'm,空格,OK这6个字符。

字符串常用的方法:

  ①、find()                  查找,找到返回第一个的下标,找不到返回-1

  ②、replace()              替换

  ③、strip()              前后去空格

  ④、join(可迭代对象)   字符串集成,可以实现把列表转成字符串

  ⑤、split()                         切割,切割后以列表形式展现

  ⑥、format()                     格式化字符串

  ⑦、startswith()                以什么开头

三、数据结构

python具有四种数据结构,分别是:列表、元组、集合、字典,每种数据结构都有自己的特点,并且都有着独到的用处。

3.1、列表

       list = [val1, val2, val3, val4]

  1)、列表中每一个元素都是可变的;

   2)、列表中的元素都是有序的,也就是说每一个元素都有一个位置;

   3)、列表中可以容纳Python中的任何对象;

列表常用的方法:

  ①、append()  最后面追加

  ②、pop()             最后的删除,返回值是删除的那个元素

  ③、index(x)         返回元素的下标

  ④、sort()             list排序,等同于sorted(),倒叙输出为:print(sorted(x, reverse=True))

  ⑤、reverse()       反序

  ⑥、insert()          插入

  ⑦、remove()       移除

  ⑧、extend()   叠加

  ⑨、[:]                  分片,前开后闭

3.2、元组

  tuple = (val1, val2, val3, val4)

  元组可以理解成一个稳固版的列表,因为元组是不可修改的,因此在列表中的存在的方法均不可使用在元组上, 但是元组是可以被查看索引的,方式就和列表一样

元组常用的方法:

  ①、().index(x)         返回元素的下标
  ②、().count(x)         返回元素在元祖中出现的次数

 3.3、集合

  set = {val1, val2, val3, val4}

  集合更接近数学上集合的概念,每一个集合中的元素是无序的、不重复的任意对象,我们可以通过集合去判断数据的从属关系,有时还可以通过集合把数据结构中重复的元素减掉,集合不能被切片也不能被索引,除了做集合运算之外,集合元素可以被添加还有删除:

a = {1, 2, 3, 4}

a.add(5)

a.discard(5)

3.4、字典

1)、字典的定义:

  dict = {key1:val1, key2:val2}

  ①、字典中的数据必须是以键值对的形式出现;

  ②、逻辑上讲,键是不能重复的,而值是可以重复的;

  ③、字典中的键(key)是不可变的,也就是无法修改的;而值(val)是可变的,可修改的,可以是任何对象;

2)、字典的申明:

  ①、x = dict()        最常用声明

  ②、y = dict(a=1)       常用赋值声明

  ③、z = {"name": "jiang"}   赋值声明

  ④、m = dict([("name", "jiang"), ("age", "18")])  不常用,需要了解

3)、字典的常用方法:

  ①、get(key)      获取key对应的val,返回值是对应的val

  ②、pop(key)        删除key对应的val,返回值是对应的val

  ③、clear()         清空字典

  ④、keys()          获取字典的所有key

  ⑤、values()       获取字典的所有val

  ⑥、copy()          复制,需要注意的是在赋值的时候如果后面的操作对原始数据有改动,而赋值的这个数还想保持原始数据的话需用到,会重新开辟一个内存空间存储而不是使用原始空间

  ⑦、items()         遍历输出字典,一般配合for循环取值,在3.x里面相当于2.x的iteritems,性能较2.x的items要好,相当于一个是将内容全部存放到内存,而一个是把提纲存放到内存,所以              在使用2.x的时候推荐用iteritems而不用items,在3.x里则没有iteritems

  ⑧、update()      相当于+,添加到字典后,用的时候先在前面做个声明,后面再调用

  ⑨、fromkeys()     *.fromkeys(list, "val"),把list内的值当成key,而val统一分发给key做val,这个不常用

4)、常用高阶函数:

  ①、zip()         把两个列表组合成字典

  ②、type()       查看类型

  ③、list(), int(), str(), float(), tuple(), dict()      强制类型转换

  ④、help()       查看帮助,在pycharm里面也可以用ctrl+鼠标左键查看帮助

  ⑤、isinstance()      print(isinstance(l1, list)),查询了l1是否是list类型

  ⑥、hasattr()     print(hassttr(l1, "append")),查询l1是否有append属性

  ⑦、input()      3.x中等于2.x中的raw_input,就是把输入的转换为字符串格式,而2.x中的input则是没有转换的,在3.x中没有raw_input,可以使用try做捕获异常,方便2和3的转换

  ⑧、enumerate()    下标与列表内值的结合

         xx = [1, 2, 3, 4, 5]
    for i,j in enumerate(xx):
         print(i, j)

5)、函数中常用多个参数赋值形式:

 a, b = ("1", "2")    使用元组形式赋值,元素不变

 

posted @ 2018-03-30 21:05  一条咸鱼的梦想  阅读(201)  评论(0编辑  收藏  举报