zoukankan      html  css  js  c++  java
  • Python 学习之数据类型和变量

    基础

    Python的语法比较简单,采用缩进方式。

    #开头的语句是注释,注释是给人看的,可以是任意内容,解释器会忽略掉注释。其他每一行都是一个语句,当语句以冒号:结尾时,缩进的语句视为代码块。

    标识符由字母、数字、下划线组成。

    在 Python 中,所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头。

    Python 中的标识符是区分大小写的。

    以下划线开头的标识符是有特殊意义的。以单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入。

    以双下划线开头的 __foo 代表类的私有成员,以双下划线开头和结尾的 __foo__ 代表 Python 里特殊方法专用的标识,如 __init__() 代表类的构造函数。

    Python 可以同一行显示多条语句,方法是用分号 分开。

    数据类型

    数据类型分类:

    • 数字
    • 字符串
    • 列表
    • 元组
    • 字典
    • 集合

      数字(整型、长整型、浮点型、复数、布尔型)

      

    intlongfloatcomplex
    10 51924361L 0.0 3.14j
    100 -0x19323L 15.20 45.j
    -786 0122L -21.9 9.322e-36j
    080 0xDEFABCECBDAECBFBAEl 32.3e+18 .876j
    -0490 535633629843L -90. -.6545+0J
    -0x260 -052318172735L -32.54e100 3e+26J
    0x69 -4721885298529L 70.2E-12 4.53e-7j
    • 长整型也可以使用小写 l,但是还是建议您使用大写 L,避免与数字 1 混淆。Python使用 L 来显示长整型。
    • Python 还支持复数,复数由实数部分和虚数部分构成,可以用 a + bj,或者 complex(a,b) 表示, 复数的实部 a 和虚部 b 都是浮点型。

    注意:long 类型只存在于 Python2.X 版本中,在 2.2 以后的版本中,int 类型数据溢出后会自动转为long类型。在 Python3.X 版本中 long 类型被移除,使用 int 替代。

    var1 = 1
    var2 = 10
    

      字符串

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

    s="a1a2···an"
    

      

    python的字串列表有2种取值顺序:

    • 从左到右索引默认0开始的,最大范围是字符串长度少1
    • 从右到左索引默认-1开始的,最大范围是字符串开头

    如果你要实现从字符串中获取一段子字符串的话,可以使用 [头下标:尾下标] 来截取相应的字符串,其中下标是从 0 开始算起,可以是正数或负数,下标可以为空表示取到头或尾。

    [头下标:尾下标] 获取的子字符串包含头下标的字符,但不包含尾下标的字符。

    例如:

    >>> s = 'abcdef'
    >>> s[1:5]
    'bcde'
    

    加号(+)是字符串连接运算符,星号(*)是重复操作。如下实例:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
     
    str = 'Hello World!'
     
    print str           # 输出完整字符串
    print str[0]        # 输出字符串中的第一个字符
    print str[2:5]      # 输出字符串中第三个至第六个之间的字符串
    print str[2:]       # 输出从第三个字符开始的字符串
    print str * 2       # 输出字符串两次
    print str + "TEST"  # 输出连接的字符串
    

    以上实例输出结果:

    Hello World!
    H
    llo
    llo World!
    Hello World!Hello World!
    Hello World!TEST
    

      列表  

      List(列表) 是 Python 中使用最频繁的数据类型。

      列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(即嵌套)。

      列表是有序的,可修改的。

      列表用 [ ] 标识,是 python 最通用的复合数据类型。

      列表中值的切割也可以用到变量 [头下标:尾下标] ,就可以截取相应的列表,从左到右索引默认 0 开始,从右到左索引默认 -1 开始,下标可以为空表示取到头或尾。

    加号 + 是列表连接运算符,星号 * 是重复操作。如下实例:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
     
    list = [ 'runoob', 786 , 2.23, 'john', 70.2 ]
    tinylist = [123, 'john']
     
    print list               # 输出完整列表
    print list[0]            # 输出列表的第一个元素
    print list[1:3]          # 输出第二个至第三个元素 
    print list[2:]           # 输出从第三个开始至列表末尾的所有元素
    print tinylist * 2       # 输出列表两次
    print list + tinylist    # 打印组合的列表

    输出:

    ['runoob', 786, 2.23, 'john', 70.2]
    runoob
    [786, 2.23]
    [2.23, 'john', 70.2]
    [123, 'john', 123, 'john']
    ['runoob', 786, 2.23, 'john', 70.2, 123, 'john']

      元组

      元组是另一个数据类型,类似于 List(列表)。

      元组用 () 标识。

      元组是有序的,不可修改的。

      例如:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
     
    tuple = ( 'runoob', 786 , 2.23, 'john', 70.2 )
    tinytuple = (123, 'john')
     
    print tuple               # 输出完整元组
    print tuple[0]            # 输出元组的第一个元素
    print tuple[1:3]          # 输出第二个至第四个(不包含)的元素 
    print tuple[2:]           # 输出从第三个开始至列表末尾的所有元素
    print tinytuple * 2       # 输出元组两次
    print tuple + tinytuple   # 打印组合的元组

    输出:

    ('runoob', 786, 2.23, 'john', 70.2)
    runoob
    (786, 2.23)
    (2.23, 'john', 70.2)
    (123, 'john', 123, 'john')
    ('runoob', 786, 2.23, 'john', 70.2, 123, 'john')

      字典

     

    字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象集合,字典是无序的对象集合。

    两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

    字典用"{ }"标识。字典由索引(key)和它对应的值value组成。

    字典是无序的,可修改。

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
     
    dict = {}
    dict['one'] = "This is one"
    dict[2] = "This is two"
     
    tinydict = {'name': 'john','code':6734, 'dept': 'sales'}
     
     
    print dict['one']          # 输出键为'one' 的值
    print dict[2]              # 输出键为 2 的值
    print tinydict             # 输出完整的字典
    print tinydict.keys()      # 输出所有键
    print tinydict.values()    # 输出所有值

    输出:

    This is one
    This is two
    {'dept': 'sales', 'code': 6734, 'name': 'john'}
    ['dept', 'code', 'name']
    ['sales', 6734, 'john']

      集合

      集合是可修改无序不重复的序列,集合使用花括号{}。

      去重,把一个列表变成集合,就自动去重了。

      关系测试,测试两组数据之前的交集、差集、并集等关系。

     创建集合:

      语法:set(可迭代对象)

      创建空集合:s = set()

      

    s = set([3,4,5,6,7])    #创建一个数字集合{3, 4, 5, 6, 7}
    w = set([2,3,4])
    t = set("hello")# 遍历字符串中的每个字符,拆开成单个字符{'h', 'e', 'l', 'o'}
    
    my_set1 = set(("hello",)) # 创建含有一个元素的集合,有逗号说明是元组
    my_set2 = set(("haha","wode","en"))#创建一个含有多个元素的集合
    
    print("s:",s)   # s: {3, 4, 5, 6, 7}
    print("w:",w)   # w: {2, 3, 4}
    print("my_set1:",my_set1) # {'hello'}
    print("my_set2:",my_set2)   # {'en', 'haha', 'wode'}

    s.add()  #添加集合

    s.updata(可迭代对象)  # 添加多项

    s.remove(x)  #删除指定元树x,如果x不存在则会发生错误

    s.discard()  #和remove()一样,但是当删除指定元素不存在时,不会报错

    s.clear()  #清空集合

    s.pop()  #弹出最后一个书或弹出指定数

    s = set([4,5])    #创建一个数字集合{3, 4, 5}
    
    s.add('w')
    print("添加后的s:",s)   # {4, 5, 'w'}
    
    s.update(['ni','hao','ya'])    # 添加多项
    print("添加多项后的s:",s)     # {'hao', 'ya', 4, 5, 'w', 'ni'}
    
    # 我们输入字符串试试
    s.update("hid") # 将字符串拆分单个字符后,然后再一个个添加到集合中,有重复的会忽略。,
    print(s)        # {'hao', 'ya', 4, 5, 'w', 'h', 'ni', 'i', 'd'}
    
    s.remove("hao")         # 移除元素
    print("移除元素",s)      # {'w', 'e', 'o', 'l', 12, 'h', 23}
    
    s.discard('ya')         # 移除元素,不存在不会发生错误
    print(s)                # {'d', 4, 5, 'i', 'ni', 'w', 'h'}
    
    s.pop()                # 随机删除集合中的元素,这个方法返回值是删除的数,不是返回None
    print(s)                # {4, 5, 'i', 'ni', 'w', 'h'}
    
    s.clear()
    print(s)                # set()

    |  生成两个集合的并集

    &  生成两个集合的交集

    -  生成两个集合的补集

    ^  生成两个集合的对称补集(也就是两个集合的并集减去交集)

    >  判断一个集合是另一个集合的超集

    <  判断一个集合是另一个集合的子集

    ==,  !=  判断集合是否相同

    in , not in   判断集合是否在另一个集合中

    len(s),  sum(s),  max(s),  min(s),  sum(s),  any(s),  all(s)

    s = set([3,4,5,6,7])    #创建一个数字集合{3, 4, 5, 6, 7}
    w = set([2,3,4])
    
    print("求交集:",s&w)      # {3, 4}
    print("求并集:",s | w)    # {2, 3, 4, 5, 6, 7}
    print("求差集:",s-w)      # 减去相同的元素 {5, 6, 7}
    print("求差集:",w-s)      # 减去相同的元素 {2}
    print("并集减去交集:",s ^ w)    # {2, 5, 6, 7}
    
    print(len(s))   # 5
    print(3 in s)   # True

    固定集合  frozenset

      固定集合是不可变无序的,含有唯一元素的不可迭代的集合,

      作用:固定集合可以作为字典的键,还可以作为字典的值

    固定集合的构造函数

      frozenset()  创建一个空的固定集合

      frozenset(iterable)  用可迭代对象创建一个固定的集合

    固定集合的运算和集合的运算完全一样

    集合推导式:  {表达式  for  变量  in  可迭代对象  [if  真值表达式]} # [ ]可以省略

            集合推导式同样也可以嵌套

            {x for x in range(10)}  #返回集合

    愿你我,长安,长乐,不悲,不怂, 和生活一刚到底,游刃有余,笑傲此生。
  • 相关阅读:
    15天学会jQuery
    android面试题-简答题(一)
    android面试题-选择填空(一)
    【Android进阶】Android面试题目整理与讲解
    Android 面试题(有详细答案)
    Android开发人员必备的10 个开发工具
    Android环境搭建
    到底如何区分什么是架构、框架、模式和平台 ?
    c#执行Dos命令
    C#打开Word
  • 原文地址:https://www.cnblogs.com/oldthree3/p/11558390.html
Copyright © 2011-2022 走看看