zoukankan      html  css  js  c++  java
  • 怒学Python——第二篇——类型与运算

    Python支持5种数据类型,包括数字(numbers)、字符串(string)、列表(list)、元组(tuple)和字典(dictionary)。作为一门动态类型语言,不用去声明一个标示符的类型,使用的时候是什么类型会自动判定。

    对于定义好的变量,若不使用该变量,可以用del删除来释放占有的资源,如

    var = 10
    del var

    Python的数字(numbers):支持int、long、float和complex,比较简单不给出示例。

    Python的字符串(string):如前面所说的可以被多种引号定义,支持[p](获得p位置的字符)、[l:r](获得从l开始到r截止的字符串)、*t(获得t个该字符串链接在一起的字符串)以及+s(获得与s链接后的字符串)方法(methods,为什么用方法呢,与ruby有关,所有对象的.methods可以显示所有能执行的操作,所以我也开始把一个对象能够执行的操作叫做方法),如下示例

    s = 'This is a test case.'
    print s[0]             #输出s的第一个字符'T'
    print s[0:4]           #输出s的第一个到第四个字符组成的字符串'This'
    print s*2              #输出两个s字符串链接的新字符串
    print s + ' Good!'     #输出s与' Good!'链接后的字符串

    Python的列表(list):用[]来定义,用起来像C++的容器vector,只不过这个容器可以装不同类型的值,同时可以嵌套定义,一个列表里面包含另一个列表,方法与string的类似,如下给出示例

    l = ['wyp', 1, 3.14, [2, 'cc']]
    print l                #输出整个l
    print l[0]             #输出l的第一个元素'wyp'
    print l[3][0]          #输出l的第四个元素的第一个元素2
    print l[0:3]           #输出l的第一个元素到第三个元素
    print l*2              #输出两个l链接在一起的列表
    print l+['.']          #输出l与列表['.']链接在一起的列表

    Python的元组(tuple):用()来定义,方法与列表相似,唯一区别是不能二次赋值,所以不给出示例。

    Python的字典(dictionary):用{}来定义,定义方法像json,用起来像C++的容器map,方法在下给出示例

    d = {1:'wyp', 'two':'is', 3.0:'Coder'}
    d['four'] = 'like'
    d[5] = 'farmer'
    print d          #输出整个字典d
    print d[1]       #输出键为1的值'wyp'
    print d.keys()   #输出所有的键
    print d.values() #输出所有的值

    Python的类型转换:目测用得不多,下面给出示例

    int(x)         #把x转成int型,直接取整,不管后面的尾数
    long(x)        #把x转成long型,直接取整,不管后面的尾数
    float(x)       #把x转成float型
    complex(x,y)   #创建一个x为实部,y为虚部的复数
    chr(x)         #转成对应ascii码x的字符
    ord(c)         #转成c对应的ascii码
    unichr(x)      #把x转成unicode字符
    hex(x)         #把x转成它的十六进制的字符串
    oct(x)         #把x转成它的八进制的字符串
    str(x)         #把x转换为字符串
    eval(str)      #把一个字符串表达式str的值算出来
    tuple(s)       #把序列型结构的s转成元组
    list(s)        #把序列型结构的s转成列表
    dict(s)        #把序列型结构且每个元素都是二元组的s转成字典

    -----------------------------------------------------------------------------------------------------------------------------------------------

    -----------------------------------------------------------------------------------------------------------------------------------------------

    -----------------------------------------------------------------------------------------------------------------------------------------------

    Python的运算方法与C++非常相似,均分为算术运算、比较运算、逻辑运算和位运算,在此基础上加入了成员运算和身份运算,下面给出和C++有出入的示例

    算术运算:多出来的运算符有**和//,因此多出了**=和//=给出示例

    a ** b  #即a^b,a的b次方
    a // b  #先a/b然后再直接取整

    比较运算:多出来的运算符是"<>",与"!="功能一样,所以就不给出示例

    逻辑运算:这里有点不同,逻辑运算全部用英文表示了,就是与(and)、或(or)和非(not),用法一样就不给出示例了

    位运算:与C++相同

    成员运算:运算符为in和not in,以in为例如果一个元素在序列里就是true,否则false,另外一个就是取反,下面给出示例

    t = [1, 2, 3, 4]
    1 in t      #返回true
    1 not in t  #返回false
    0 in t      #返回false
    0 not in t  #返回true

    身份运算:运算符为is和not is,即判断两个变量是否为同一个存储单元,在这里发现一个python的小细节,它的0~256这些整数全部都是已经存放在内存中的,而其他的都是在定义的时候直接分配新内存,下面给出示例

    a = -1
    b = -1
    a is b           #值为false,这里发现-1不是python预先存放在内存中的
    a += 1
    b += 1
    while (a is b):  #在256之前都为true
        a += 1
        b += 1
        print str(a) + ', ' + str(b) + '
    '
  • 相关阅读:
    ActiveReports 报表应用教程 (3)---图表报表
    ActiveReports 报表应用教程 (4)---分栏报表
    ActiveReports 报表应用教程 (5)---解密电子商务领域首张电子发票的诞生(套打报表)
    hdu4467 Graph
    ActiveReports 报表应用教程 (6)---分组报表
    [leetcode]Search a 2D Matrix
    参加百度开放云编程马拉松后一点总结
    CAS服务器配置
    Tomcat 的 SSL 配置
    在windows server 2008 R2 64bit上面配置PI OPC Server的DCOM
  • 原文地址:https://www.cnblogs.com/WhatsYourProblem/p/3835504.html
Copyright © 2011-2022 走看看