zoukankan      html  css  js  c++  java
  • 002.Python数据类型


    一 python语言注释

    就是对代码的解释, 方便大家阅读代码用的

    1.1 注释的分类

    复制代码
    (1)单行注释
    # print 在python2.x print "1"
    # print 在python3.x print("1")
    
    (2) 多行注释 : ''' ''' """ """
    '''
    print("abc")
    print("abcd")
    print("abcde")
    print("abcdef”)
    '''
    """
    print("abc")
    print("abcd")
    print("abcde")
    print("abcdef”)
    """
    复制代码

    1.2 嵌套注释

    注释嵌套的时候,如果外面是三个三引号,里面用三个双引号如果外面是三个双引号,里面用三个单引号.

    复制代码
    '''
    print("abc")
    print("abcd")
    """
    print("edc")
    """
    print("abcde")
    print("abcdef”)
    '''
    复制代码

    注释的排错性

    注释一部分代码,执行另外一部分,查看报错

    二 python变量

    2.1 变量的声明

    [root@node10 python]# vi test.py

    复制代码
    # 方法一
    a = 1
    b = 2
    print(a)
    print(b)
    
    # 方法二
    a,b = 3,4
    print(a,b)
    
    # 方法三
    a = b = 5
    print(a,b)
    复制代码

    [root@node10 python]# python3 test.py

    1
    2
    3 4
    5 5

    2.2 变量的命名规则

    • 变量名只能包含字母、数字和下划线。变量名可以字母或下划线开头,但不能以数字开头,例如,可将变量命名为message_1,但不能将其命名为1_message。
    • 变量名不能包含空格,但可使用下划线来分隔其中的单词。例如,变量名greeting_message可行,但变量名greeting message会引发错误。
    • 不要将Python关键字和函数名用作变量名,即不要使用Python保留用于特殊用途的单词,如print。
    • 变量名应既简短又具有描述性。例如,name比n好,student_name比s_n好,name_length比length_of_persons_name好。
    • 慎用小写字母l和大写字母O,因给他们可能被人错看成数字1和0;

    注意:应使用小写的Python变量名。在变量名中使用大写字母虽然不会导致错误,但避免使用大写字母是个不错的注意。

    [root@node10 python]# vi test.py

    # import 引入 keyword 模块名
    import keyword
    # 模块名.属性 kwlist 可以打印出所有的关键字
    res = keyword.kwlist
    print(res)

    [root@node10 python]# python3 test.py

    ['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

    2.3 变量的交换

    通用的交换写法

    复制代码
    a = 11
    b = 12
    tmp = a
    a = b
    b = tmp
    print(a,b)
    复制代码

    python写法

    [root@node10 python]# vi test.py 

    a = 11
    b = 12
    a,b = b,a
    print(a,b)

    [root@node10 python]# python3 test.py

    12 11

    三 Python的六大数据类型

    数值类型Number( int float bool complex)

    (1) Number数字类型( int float boo1 compplex)

    (2) string字符串类型

    (3) List列表类型

    (4)Tuple元组类型

    (5)Set集合类型

    (6)Dict

    字典类型

    ->(1)Number数字类型分类

    int: 整数类型(正整数【各种进制】负整数0)

    folat:浮点数类型(1普通小数2科学计数法表示的小数例:a=3e-5  #3e-05)

    bool:布尔值类型(真True和假 false)

    compex:复数类型(声明复数的2种方法)(复数用作于科学计算中,表示高精度的数据,科学家会使用)

    3.1 整型

    [root@node10 python]#vim test.py

    复制代码
    # int 整型  (正整型  0  负整型)
    intvar = 133
    print(intvar)
    
    # type 获取一个变量的类型 type(值)
    res = type(intvar)
    print(res)
    
    # id  获取该变量所指向值的地址 id(值)
    res = id(intvar)
    print(res)
    
    
    # 打印二进制
    intvar = 0b101
    print(intvar)
    print(type(intvar))
    print(id(intvar))
    
    
    # 打印八进制
    intvar = 0o127
    print(intvar)
    print(type(intvar))
    print(id(intvar))
    
    # 打印十六进制
    intvar = 0Xff
    print(intvar)
    print(type(intvar))
    print(id(intvar))
    复制代码

    [root@node10 python]# python3 test.py

    复制代码
    133
    <class 'int'>
    140050073843520
    5
    <class 'int'>
    140050073839424
    87
    <class 'int'>
    140050073842048
    255
    <class 'int'>
    140050073847424
    复制代码

    3.2 浮点型float

    复制代码
    # 表达一
    floatvar  =  3.15
    print(floatvar,type(floatvar))
    
    # 表达二
    floatvar = 5.35e-3
    floatvar = 7.34e5
    print(floatvar,type(floatvar)
    复制代码

    [root@node10 python]# python3 test.py

    3.15 <class 'float'>
    734000.0 <class 'float'>

    3.3 布尔型(True 真的 False 假的)

    boolvar = True
    boolvar = False  
    print(boolvar,type(boolvar))

    [root@node10 python]# python3 test.py

    False <class 'bool'>

    3.4 复数型

    复制代码
    # 1.方式一
    complexvar = 3+4j
    print(complexvar,type(complexvar))
    
    # 2.方式二 complex(实数,虚数)
    complexvar = complex(-5,-2)
    print(complexvar)
    复制代码

    [root@node10 python]# python3 test.py

    (3+4j) <class 'complex'>
    (-5-2j)

    四 容器类型数据

    4.1  str 字符串类型

    用引号引起来的数据就是字符串

    复制代码
    # 转义字符: 
    (1) 将有意义的字符变得无意义
    (2) 将无意义的字符变得有意义 
    
    
    ,
     代表换行
    	 代表缩进 (水平制表符)
    
     代表将后面的字符拉到当前行行首
    
    可以用把有意义的引号变得无意义
    复制代码
    复制代码
    # (1) 单引号
    strvar = 'mylove'
    print(strvar,type(strvar))
    
    # (2) 双引号 
    strvar = "facebook,
    google"
    print(strvar,type(strvar))
    strvar = "facebook,	googl
    e"
    print(strvar,type(strvar))
    strvar = "facebook,
    google"
    print(strvar,type(strvar))
    strvar = "face"boo"k"
    print(strvar,type(strvar))
    
    # (3) 三引号 (支持跨行 无需对单双引号重新转义)
    strvar = """本来无一物,
    何处惹尘埃"""
    strvar = '''本来"无"一'物',
    何处惹尘埃'''
    print(strvar)
    复制代码

    [root@node10 python]# python3 test.py

    复制代码
    mylove <class 'str'>
    facebook,
    google <class 'str'>
    facebook,    googl
    e <class 'str'>
    google <class 'str'>
    face"boo"k <class 'str'>
    本来"无"一'物',
    何处惹尘埃
    复制代码

    4.2 元字符串

    原型化输出字符串,让转义字符失效

    strvar = r"床前明月光,
    疑是地上霜"    #取消
    的转义效果
    print(strvar)
    strvar = r"C:WindowsSystem32driversetc"
    print(strvar)

    [root@node10 python]# python3 test.py

    床前明月光,
    疑是地上霜
    C:WindowsSystem32driversetc

    4.3 字符串的格式化

    复制代码
    # %d 整型占位符
    strvar = "我有%d支铅笔" % (10)
    print(strvar)
    # %2d 默认数字具右
    strvar = "我有%2d支铅笔"  % (3)
    print(strvar)
    # %-2d 默认数字具左
    strvar = "我有%-3d支铅笔"  % (3)
    print(strvar)
    复制代码

    [root@node10 python]# python3 test.py

    我有10支铅笔
    我有 3支铅笔
    我有3  支铅笔

    4.4 %f浮点型占位符

    默认小数点后面保留6位

    复制代码
    strvar = "一包烟的价格是%f元" % (9.99)
    print(strvar)
    # %.1f 存在四舍五入
    strvar = "一包烟的价格是%.3f元" % (9.99)
    print(strvar)
    strvar = "一包烟的价格是%.1f元" % (9.99)
    print(strvar)
    复制代码

    [root@node10 python]# python3 test.py

    一包烟的价格是9.990000元
    一包烟的价格是9.990元
    一包烟的价格是10.0元

    4.5 %s 字符串占位符

    strvar = "%s" % ("今天学习python")
    print(strvar)

    [root@node10 python]# python3 test.py

    今天学习python

    五 列表类型

    可获取,可修改,有序

    5.1 定义一个空列表

    listvar = []
    print(listvar,type(listvar))

    [root@node10 python]# python3 test.py

    [] <class 'list'>

    5.2 正向索引

    listvar = [13,3.14,True,6-2j,"好好学习"]
    print(listvar,type(listvar))

    [root@node10 python]# python3 test.py

    [13, 3.14, True, (6-2j), '好好学习'] <class 'list'>

    5.3 正向取值和反向取值

    listvar = [13,3.14,True,6-2j,"好好学习"]
    res = listvar[4] 
    print(res)
    res = listvar[-1]
    print(res)

    [root@node10 python]# python3 test.py

    好好学习
    好好学习

    5.4 通用用法

    => 想要获取列表最后一个元素值 需要通过len函数
    len 用来获取容器类型数据的元素个数(长度)

    复制代码
    listvar = [13,3.14,True,6-2j,"好好学习"]
    res = listvar[4] 
    print(res)
    res = listvar[-1]
    print(res)
    # 通用 => 想要获取列表最后一个元素值 需要通过len函数
    # len 用来获取容器类型数据的元素个数(长度)
    # 5 - 1 => 4
    res = len(listvar)-1
    
    print(listvar[res])  
    print(listvar[len(listvar)-1])
    复制代码

    [root@node10 python]# python3 test.py

    好好学习
    好好学习
    好好学习
    好好学习

    5.5 修改列表当中的值

    复制代码
    listvar = [13,3.14,True,6-2j,"好好学习"]
    res = listvar[4] 
    print(res)
    res = listvar[-1]
    print(res)
    #修改列表当中的值 listvar[3] = "天天" listvar[-4] = "向上" print(listvar)
    复制代码

    [root@node10 python]# python3 test.py

    好好学习
    好好学习
    [13, '向上', True, '天天', '好好学习']

    六 tuple类型

    可获取,不可修改,有序

    证明是一个元组的根本特征是逗号,声明一个空元组,可以直接使用(),(1) 表明一个整型

    6.1  声明元组 

    复制代码
    tuplevar = ()
    print(tuplevar,type(tuplevar))
    tuplevar = (1,2,3,4)
    print(tuplevar,type(tuplevar))
    tuplevar = (1)
    print(tuplevar,type(tuplevar))
    tuplevar = (1,)
    print(tuplevar,type(tuplevar))
    tuplevar = 1,2,3
    print(tuplevar,type(tuplevar))
    复制代码

    [root@node10 python]# python3 test.py

    () <class 'tuple'>
    (1, 2, 3, 4) <class 'tuple'>
    1 <class 'int'>
    (1,) <class 'tuple'>
    (1, 2, 3) <class 'tuple'>

    6.2 获取最后一个值

    复制代码
    #正向索引    0  1   2
    tuplevar = ("a","b",False)
    #逆向索引    -3  -2  -1
    res = tuplevar[-1]
    #或者 res = tuplevar[len(tuplevar)-1]
    print(res)
    复制代码

    [root@node10 python]# python3 test.py

    False

    6.3 元组不可修改

    尝试修改

    tuplevar = ("a","b",False)
    tuplevar[-1] = True 
    res = tuplevar[-1]
    print(res)

    [root@node10 python]# python3 test.py

    Traceback (most recent call last):
      File "test.py", line 2, in <module>
        tuplevar[-1] = True 
    TypeError: 'tuple' object does not support item assignment

    七 容器类型数据 set 和 dict

    set 集合 (用来做交叉并补 集合操作的)

    自动去重 无序

    7.1 定义一个空集合

    setvar = set()  #{} 不是集合 而是一个字典
    print(setvar,type(setvar))

    [root@node10 python]# python3 test.py

    set() <class 'set'>

    7.2 自动去重

    无序

    setvar = {"周杰伦","王宝强","李宇春"}
    print(setvar)
    setvar = {"刘德华","张学友","郭富城","王文","王文"}
    print(setvar)

    [root@node10 python]# python3 test.py

    {'周杰伦', '王宝强', '李宇春'}
    {'刘德华', '王文', '张学友', '郭富城'}

    7.3 dict字典

    复制代码
    在3.6版本之前,字典无序,
    在3.6版本之后,字典有序(看起来有序,本质上无序)
    哈希算法:
        将不可变的任意长度值计算成具有固定长度的唯一值,这个值可正可负,可大可小,通过计算出来的键,来获取值,形成一一映射的效果,管这个算法叫哈希算法,这个值叫哈希值
        字典进行存储的时候,并不一定按照字面顺序依次存在内存中,而是通过哈希算法,随机散列的把键所对应的值存储在内存里,所以字典无序(为了求效率,图快),可以通过哈希算出的键获取散列的值
        3.6的之后,记录了字典的字面顺序,在取出数据时,进行重新排序,所以看起来有序(但本质上无序,只要他使用了哈希)
        可哈希数据(不可变的数据) : Number(int float complex bool) str tuple
        不可哈希数据(可变数据)   : list  set  dict  (list dict 值可变 ; set 顺序可变)
        字典的键 集合的值 都需要可哈希数据,剩下的数据无所谓.
    由键值对数据组成,有序
    复制代码

    定义一个空字典

    dictvar = {}
    print(dictvar,type(dictvar))

    [root@node10 python]# python3 test.py

    {} <class 'dict'>

    字典语法:

    # 语法:
    dictvar = {'a':1}
    # "键" : "值" 键和值之间用冒号隔开, 键值对之间用逗号隔开

    定义一个字典

    dictvar = {"top":"程咬金" , "middle":"妖姬" , "bottom":"崔丝塔娜" , "jungle":"七大大声" , "support":"德玛西亚"}
    print(dictvar,type(dictvar))

    [root@node10 python]# python3 test.py

    {'top': '程咬金', 'middle': '妖姬', 'bottom': '崔丝塔娜', 'jungle': '七大大声', 'support': '德玛亚'} <class 'dict'>

    获取字典当中的值 (通过键来获取值)

    dictvar = {"top":"程咬金" , "middle":"妖姬" , "bottom":"崔丝塔娜" , "jungle":"七大大声" , "support":"德玛西亚"}
    print(dictvar,type(dictvar))
    res = dictvar['middle']
    print(res)

    [root@node10 python]# python3 test.py

    {'top': '程咬金', 'middle': '妖姬', 'bottom': '崔丝塔娜', 'jungle': '七大大声', 'support': '德玛亚'} <class 'dict'>
    妖姬

    通过字典的键来修改值

    复制代码
    dictvar = {"top":"程咬金" , "middle":"妖姬" , "bottom":"崔丝塔娜" , "jungle":"七大大声" , "support":"德玛西亚"}
    print(dictvar,type(dictvar))
    res = dictvar['middle']
    print(res)
    dictvar['top'] = "赵信"
    print(dictvar)
    复制代码

    [root@node10 python]# python3 test.py

    {'top': '程咬金', 'middle': '妖姬', 'bottom': '崔丝塔娜', 'jungle': '七大大声', 'support': '德玛亚'} <class 'dict'>
    妖姬
    {'top': '赵信', 'middle': '妖姬', 'bottom': '崔丝塔娜', 'jungle': '七大大声', 'support': '德玛西'}

    可哈希数据 (字典)  不推荐如下使用键  一般就用变量命名的字符串形式去定义键

    复制代码
    dictvar = {35:1,36:True,3.15:"111",False:"112233",3+2j:12,"你好":78,  (11,22,333):4  }
    print(dictvar)
    # 获取4
    print(dictvar[(11,22,333)])
    dictvar[False] = 67
    print(dictvar)
    复制代码

    [root@node10 python]# python3 test.py

    {35: 1, 36: True, 3.15: '111', False: '112233', (3+2j): 12, '你好': 78, (11, 22, 333): 4}
    4 
    {35: 1, 36: True, 3.15: '111', False: 67, (3+2j): 12, '你好': 78, (11, 22, 333): 4}

    字典的键唯一 如果两个键相同 后面的覆盖前面的
    字典的键是唯一不可修改,字典的值随意

    dictvar = {"a":1,'a':2}
    print(dictvar)

    [root@node10 python]# python3 test.py

    {'a': 2}
    学习记录,小白一枚
  • 相关阅读:
    微信 token ticket jsapi_ticket access_token 获取 getAccessToken get_jsapi_ticket方法
    PHP 日志 记录 函数 支持 数组 对象 新浪 sae 环境 去掉 空格 换行 格式化 输出 数组转字符串
    原生 原始 PHP连接MySQL 代码 参考mysqli pdo
    PHP 数字金额转换成中文大写金额的函数 数字转中文
    使用PHPMailer发送带附件并支持HTML内容的邮件
    设置输出编码格式 header 重定向 执行时间 set_time_limit 错误 报告 级别 error_reporting
    html5 bootstrap pannel table 协议 公告 声明 文书 模板
    指向指针的指针
    二级指针
    c语言:当指针成为参数后
  • 原文地址:https://www.cnblogs.com/wangsirde0428/p/14322296.html
Copyright © 2011-2022 走看看