zoukankan      html  css  js  c++  java
  • 老男孩自动化运维开发第1天

    目录导航:

      1. 注释

        1.1 单行注释

        1.2 多行注释

      2. 变量

        2.1 变量的概念

        2.2 变量的声明

        2.3 变量的命名

      3. 常量

      4. 关于编码

      5. 数值数据类型

        5.1 int整型

        5.2 float 浮点型小数

        5.3 bool 布尔类型

        5.4 complex 复数类型

      6. 字符串类型

        6.1 单引号 ''

        6.2 双引号 ""

        6.3 三引号 ''' """ 支持跨行

        6.4 元字符串

        6.5 字符串的格式化

      7. 容器数据类型

        7.1 list 列表

        7.2 tuple 元组

        7.3 str 字符串

        7.4 set 集合

        7.5 dict 字典

      8. 自动类型转换

      9. 强制类型转换

      10. 变量的缓存机制

    1. 注释

     1.1 单行注释

      采用 # 开头,表示此行为注释行

    1.2 多行注释

      多行注释采用:连着的3个单引号'''或者连着的3个双引号"""

      注释的注意点:
      """
      注释的嵌套:
      如果外面用了三个双引号,里面用三个单引号
      如果外面用三个单引号,里面用三个双引号
      """

    2. 变量

      变量: 可以改变的量, 实际具体指的是内存的一块空间

    2.1 变量的概念

    rujia_305 = "王文"
    rujia_305 = "李四"
    print(rujia_305)
    

    2.2 变量的声明

    a = 1
    b = 2
    print(a)
    print(b)
    

    2.3 变量的命名

      """
      变量的命名
      字母数字下划线,首字符不能为数字
      严格区分大小写,且不能使用关键字
      变量命名有意义,且不能使用中文哦
      """

      查看关建字:import 引入 keyword 模块 (kwlist 可以得到所有的关键字)

    import keyword
    res = keyword.kwlist
    print(res)
    

    3. 常量

      常量: 不能改变的量 (用大写命名一个变量 约定俗成是常量,不要修改)

    SHENFENZHENG = "210202200010106688"
    print(SHENFENZHENG)
    

    4. 关于编码

      """

      utf-8 国际通过编码集(万国码 ,unicode编码集的升级 utf-8 可变长的unicode 编码集) 一个中文按照3个字节存储, 一个英文或者符号按照1个字节存储
      gbk 国标编码集 1个中文按照2个字节存储, 一个英文或者数字符号按照1个字节存储

      """

    5. 数值数据类型

      数值数据类型包含4种:int、float、bool、complex

    5.1 int 整型

      定义:正整型、0 、负整型

    intvar = 13
    print(intvar)
    
    # type 获取变量的类型
    res = type(intvar)
    print(res)
    
    # id   获取变量所指向值的地址
    res = id(intvar)
    print(res)
    

      整型常用的有二进制、八进制、十六进制,如下:

    # 二进制整型 0b
    intvar = 0b101
    res = type(intvar)
    res2 = id(intvar)
    print(intvar)
    print( res ) 
    print( res2 ) 
    
    # 八进制整型 0o
    intvar = 0o127
    print( intvar )
    print( type(intvar) )
    print( id(intvar) )
    
    # 十六进制整型 0x
    intvar = 0xff
    print( intvar )
    print( type(intvar) )
    print( id(intvar) )
    

    5.2  float 浮点型小数

    # 表达方法一
    floatvar = 3.56
    print(floatvar)
    print(type(floatvar))
    print(id(floatvar))
    
    # 表达方式二 (科学计数法)
    floatvar = 6.36e-3
    print(floatvar)
    print(type(floatvar))
    print(id(floatvar))
    

    5.3 bool 布尔类型

      要么是True 真的 要么是False 假的

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

    5.4 complex 复数类型

      定义:  

      """
        实数 + 虚数
        4+6j

        4 就是实数
        6j 就是虚数

        如果有一个数,他的平方是-1,那么这个数就是j
        科学家认为有,表达的是高精度类型
      """

    # 表达方式一
    complexvar = 4+3j
    complexvar = -6j
    print(complexvar , type(complexvar) , id(complexvar) )
    
    # 表达方式二
    """
    complex(实数,虚数)
    """
    complexvar = complex(4,3)
    print(complexvar , type(complexvar) ,id(complexvar))
    

    6. 字符串类型

      定义:str 字符串类型 : 用引号引起来的就是字符串  

      """
      # 转义字符: + 字符
      (1)把无意义的字符变得有意义
      (2)把有意义的字符变得无意义

       => 换行
       => 换行
       => 把 后面的字符串直接拉到当前行行首
       => 缩进(水平制表符) 一般来讲显示的是4个空格的长度
      """

    6.1 单引号 ''

    strvar = '本来无一物,何处惹尘埃'
    print(strvar)
    print(type(strvar))
    

    6.2 双引号 "" 

    # 将无意义的字符变得有意义
    strvar = "黑夜给了我黑色的眼睛,
    但是我却用它翻白眼"
    strvar = "黑夜给了我黑色的眼睛,
    但是我却用它翻白眼"
    strvar = "黑夜给了我黑色的眼睛
    , 但是我却用它
    翻白眼"
    strvar = "黑夜给了我	黑色的眼睛,但是我却用它翻白眼"
    # 将有意义的字符变得无意义
    strvar = "黑夜给了我	黑色的"眼睛",但是我却用它翻白眼"
    strvar = "黑夜给了我	黑色的'眼睛',但是我却用它翻白眼"
    print(strvar,type(strvar))
    

    6.3 三引号 '''  """ 支持跨行

    strvar = """
    飞流直下三千尺,
    疑是银河落九天
    """
    
    strvar = '''
    飞流'直'下三千尺,
    疑是"银"河落九天
    '''
    print(strvar , type(strvar))
    

    6.4 元字符串 

       r"字符串" : 不转移字符,原型化输出字符串

    strvar = r"D:周末五期
    ote"
    print(strvar,type(strvar))
    

    6.5 字符串的格式化

      """
      %d : 整型占位符
      %f : 浮点型占位符
      %s : 字符串占位符

      # 语法:
      "字符串" % (值1,值2, ... )
      """

    # %d 整型占位符
    strvar = "郑飞昨天晚上买了%d个风油精"  %  (100)
    print(strvar)
    
    # %2d 占两位 原字符默认居右
    strvar = "郑飞昨天晚上买了%2d个风油精"  %  (3)
    print(strvar)
    
    # %-2d 占两位 原字符默认居左
    strvar = "郑飞昨天晚上买了%-2d个风油精"  %  (3)
    print(strvar)
    
    # %f 浮点型占位符
    strvar = "李辉今天发工资,一共发了%f元" % (9.9)
    print(strvar)
    
    # %.2f 小数点保留两位
    strvar = "李辉今天发工资,一共发了%.2f元" % (9.9)
    print(strvar)
    
    # %s 字符串占位符
    strvar = "%s" % ("吴旭峰很帅,你信么?")
    print(strvar)
    
    # 注意点:在不清楚用什么类型做占位的时候,统一用%s进行占位,默认会转化成字符串;
    strvar = "%s 买了%s盒巧克力,花了%s元" % ("刘琦",90,9.9)
    strvar = "%s 买了%d盒巧克力,花了%.3f元" % ("刘琦",90,9.9)
    print(strvar)
    

    7. 容器数据类型

      容器数据类型有:str、list、tuple、set、dict

    7.1 list 列表

      list列表特点:"""可获取,可修改,有序"""

    # 定义一个空列表
    listvar = []
    print(listvar , type(listvar))
    
    
    # 定义一个列表
    # 正向索引  0   1    2     3      4
    listvar =  [12,5.78,False,65+7j,"文哥真帅"]
    # 逆向索引  -5  -4   -3    -2     -1
    
    
    # 获取列表当中的元素
    res = listvar[4]
    res = listvar[-1]
    print(res)
    
    # 修改列表当中的元素
    listvar[2] = True
    print(listvar)
    
    
    # 逆向索引下标,python特有 [可以瞬间得到列表中最后一个元素]
    """len 获取容器类型数据的元素个数 """
    res = len(listvar)
    print(res)
    res = listvar[res-1] # res-1 =5-1 = 4
    print(res)
    
    # 简写
    res = listvar[len(listvar) - 1]
    print(res)
    

    7.2 tuple 元组

      tuple元组特点:"""可获取,不可修改,有序"""

    # 定义一个空元组
    tuplevar = ()
    print(tuplevar,type(tuplevar))
    
    # 逗号用来区分是否是元组的一个标识符
    tuplevar = (5+6j,)
    print(tuplevar,type(tuplevar))
    
    #正向索引   0  1  2  3    4  5
    tuplevar = (1,"a",2,False,3,"c" )
    #逆向索引  -6  -5 -4 -3   -2 -1
    print(tuplevar,type(tuplevar))
    
    # (1) 获取元组当中的值
    res = tuplevar[3]
    res = tuplevar[-3]
    print(res)
    
    # (2) 是否可以修改元组当中的值
    # tuplevar[0] = 100 error
    

    7.3 str 字符串

      str字符串特点:"""可获取,不可修改,有序"""

    # 正向索引  0 1 2 3 4 5 6 7 8
    strvar =   "我爱你,亲爱的祖国"
    
    # 逆向索引 -9-8-7-6-5-4-3-2-1          
    res = strvar[1]
    res = strvar[-8]
    print(res)
    
    # 是否可以修改?
    # strvar[0] = "你" error
    

    7.4 set 集合

      set集合作用:做交叉并补操作,集合特点:"""无序,自动去重"""

    # 定义一个空集合
    setvar = set()
    print(setvar,type(setvar))
    
    # 无序
    setvar = {"刘德华","郭富城","张学友","王文"}
    print(setvar , type(setvar))
    
    # 自动去重
    setvar = {"刘德华","郭富城","张学友","王文","王文","王文"}
    print(setvar , type(setvar))
    
    # 所谓的无序,既不能获取里面的元素,又不能修改里面的元素
    # res = setvar[0]
    # setvar[0] = 90
    

    7.5 dict 字典

      dict字典特点:"""键值对存储的数据,3.6之后,表面上有序,本质上无序"""

      """
      语法: 键值之间用冒号隔开,键值对之间用逗号隔开
      {键1:值1 , 键2:值2 ,键3:值3 .... }
      """

    # 定义空字典
    dictvar = {}
    print(dictvar , type(dictvar))
    
    # 定义一个字典
    dictvar = {"top":"夏侯惇" , "middle":"甄姬" , "bottom":"后裔" , "jungle":"娜可露露" , "support" : "蔡文姬" }
    print(dictvar , type(dictvar))
    
    # 获取字典当中的元素
    res = dictvar["top"]
    print(res)
    
    # 修改字典当中的元素
    dictvar["bottom"] = "鲁班七号"
    print(dictvar)
    
    
    # ### 为什么无序?
    """
    字典的键 和 集合的值 在底层用的是哈希算法;
    哈希算法所呈现的数据 是一个散列
    哈希算法可以帮助我们把数据均匀的分配在内存中,所有用哈希
    
    哈希算法有要求: 这个数据必须可哈希
    可哈希数据: Number(int bool float complex) str tuple
    不可哈希数据: list set dict
    """
    
    # 语法上允许,不推荐使用 ,命名字典键的时候,推荐用变量命名的字符串
    dictvar = {"123":1 , 90:23 ,7.56:45,False:789,5-9j:"abc","你好":111,(1,2,3,4,5):890}
    print(dictvar,type(dictvar))
    res = dictvar[(1,2,3,4,5)]
    print(res)
    
    # 集合 (只要出现了不可哈希数据,就不行)
    # setvar = {1,2,"c","abc",(1,2,3,[5,6,7])} error
    

    8. 自动类型转换

      自动类型转换 Number ( int float bool complex )

      """
      精度类型从低->高
      bool < int < float < complex
      当两个不同的类型进行运算时,默认向高精度转换
      """

    var1 = 3
    var2 = 3.67
    var3 = True
    var4 = 7+2j
    
    # bool + int 
    res = var3 + var1 # True + 3
    print(res)
    
    # bool + float
    res = var3 + var2 # True + 3.67
    print(res)
    
    # bool + complex
    res = var3 + var4 # True + 7+2j
    print(res)
    
    # int + float
    res = var1 + var2 # 3 + 3.67
    print(res)
    
    # int + complex
    res = var1 + var4 # 3 + 7+2j
    print(res)
    
    # float _ complex
    res = var2 + var4 # 3.67 + 7+2j
    print(res) # (10.67+2j)
    

    9. 强制类型转换

      强制类型转换 Number(int float bool complex)

    var1 = 56
    var2 = 7.87
    var3 = False
    var4 = 3-6j
    var5 = "156"
    var6 = "abcd"
    
    
    # int 强制转换成int类型
    res = int(var2) # 7
    res = int(var3) # 0
    res = int(True) # 1
    # res = int(var4) error
    res = int(var5) # 156
    
    print(res,type(res))
    
    
    # float 强制转换成float类型
    res = float(var1) # 56.0
    res = float(var3) # 0.0
    res = float(var5) # 156.0
    print(res)
    
    # complex 强制转换成complex类型
    res = complex(var1) # 56+0j
    res = complex(var2) #(7.87+0j)
    res = complex(var3) #0j
    res = complex(var5) # (156+0j)
    print(res)
    
    # bool 强制转换成bool类型 只有True 和 False 两个结果
    res = bool(None)
    print(res)
    # bool 类型为假的十种情况
    # 0 0.0 0j False '' [] () set() {} None
    
    """
    None 是系统的关键字,代表空的,什么也没有,一般用在初始化操作
    """
    a = None
    

    10. 变量的缓存机制

      """
      # -->Number 部分
      1.对于整型而言,-5~正无穷范围内的相同值 id一致
      2.对于浮点数而言,非负数范围内的相同值 id一致
      3.布尔值而言,值相同情况下,id一致
      4.复数在 实数+虚数 这样的结构中永不相同(只有虚数的情况例外)
      """

    # 1.对于整型而言,-5~正无穷范围内的相同值 id一致
    var1 = 90
    var2 = 90
    var1 = -90
    var2 = -90
    print(id(var1) , id(var2))
    
    
    # 2.对于浮点数而言,非负数范围内的相同值 id一致
    var1 = 5.78
    var2 = 5.78
    print(id(var1) , id(var2))
    
    
    # 3.布尔值而言,值相同情况下,id一致
    var1 = False
    var2 = False
    print(id(var1) , id(var2))
    
    # 4.复数在 实数+虚数 这样的结构中永不相同(只有虚数的情况例外)
    var1 = 4+3j
    var2 = 4+3j
    var1 = 6j
    var2 = 6j
    print(id(var1) , id(var2))
    
    
    
    # -->容器类型部分
    # 5.字符串 和 空元组 相同的情况下,地址相同
    # 6.列表,元组,字典,集合无论什么情况 id标识都不同 [空元组例外]
    
    var1 = "爱"
    var2 = "爱"
    var1 = ()
    var2 = ()
    var1 = (1,2,3)
    var2 = (1,2,3)
    print(id(var1) , id(var2))
    
  • 相关阅读:
    Ubuntu上64位adv无法创建问题
    Java 数据结构与算法分析学习
    博客第一天——新的梦幻之旅
    android开发第一天
    Ubuntu下OpenGL开发环境的搭建
    [ZZ]WindowsForm应用程序调用WebService
    WindowsForm应用程序调用WebService
    Hello World
    Apache Ant编写build.xml的自动提示 ANT DTD
    Serial Interface之I2C:关于DS1624 2线通信SDA保持时间的说明
  • 原文地址:https://www.cnblogs.com/reachos/p/11995734.html
Copyright © 2011-2022 走看看