zoukankan      html  css  js  c++  java
  • 运算符、数据类型、数据结构

    一、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")    使用元组形式赋值,元素不变

  • 相关阅读:
    POJ 3080 Blue Jeans
    POJ 1961 Period
    POJ 2185 Milking Grid
    POJ 2752 Seek the Name, Seek the Fame
    斗地主算法的设计与实现--项目介绍&如何定义和构造一张牌
    MyEclipse 免安装版制作
    网络子系统48_ip协议数据帧的发送
    Oracle sql语句执行顺序
    当OOP语言RAII特性发展到functional形式的极致
    FusionCharts属性大全
  • 原文地址:https://www.cnblogs.com/Jweiqing/p/8673666.html
Copyright © 2011-2022 走看看