第3章

1.基本数据类型

  1. 整数类型

    与数学中整数的概念一致

    • 可正可负,没有取值范围限制
    • pow(x,y)函数:计算 xy,想算多大算多大

    4种进制表示形式

    • 十进制:1010, 99, -217
    • 二进制,以0b或0B开头:0b010, -0B101
    • 八进制,以0o或0O开头:0o123, -0O456
    • 十六进制,以0x或0X开头:0x9a, -0X89
  2. 浮点数类型

    与数学中实数的概念一致

    • 带有小数点及小数的数字

    • 浮点数取值范围和小数精度都存在限制,但常规计算可忽略

    • 取值范围数量级约-10^{307}至10^{308},精度数量级10^{-16}

    • 浮点数间运算存在不确定尾数,不是bug,

      可以用round()规避

      • round(x, d):对x四舍五入,d是小数截取位数
      • 浮点数间运算与比较用round()函数辅助
      • 不确定尾数一般发生在10-16左右,round()十分有效
    • 浮点数可以采用科学计数法表示

  3. 复数类型

    与数学中复数的概念一致

    • 定义 j = −𝟏𝟏 ,以此为基础,构建数学体系
    • a+bj 被称为复数,其中,a是实部,b是虚部

    z = 1.23e-4+5.6e+89j

    • 实部是什么? z.real 获得实部
    • 虚部是什么? z.imag 获得虚部
  4. 数值运算操作符

  5. 数字类型的关系

  6. 数值运算函数

    abs(x)
    divmod(x,y)
    pow(x,y[,z])
    round(x[,d])
    max(x1,x2,...,xn)
    min(x1,x2,...,xn)
    int(x)
    float(x)
    complex(x)

    2.字符串类型及操作

    1. 字符串类型:

      由0个或多个字符组成的有序字符序列

      • 字符串由一对单引号或一对双引号表示

        "请输入带有符号的温度值: " 或者 'C'
      • 字符串是字符的有序序列,可以对其中的字符进行索引

        "请" 是 "请输入带有符号的温度值: " 的第0个字符
      • 由一对单引号或双引号表示,仅表示单行字符串

        "请输入带有符号的温度值: " 或者 'C'
      • 由一对三单引号或三双引号表示,可表示多行字符串

        ''' Python
        
        语言 '''
      • 字符串的序号:正向递增序号和 反向递减序号

      • 使用[ ]获取字符串中一个或多个字符

        • 索引:返回字符串中单个字符 <字符串>[M]

          请输入带有符号的温度值: "[0] 或者 TempStr[-1]

        • 切片:返回字符串中一段字符子串 <字符串>[M: N]

          请输入带有符号的温度值: "[1:3] 或者 TempStr[0:-1]

          注:从第M个开始,不到第N个。

    2. 字符串切片高级用法:使用[M: N: K]根据步长对字符串切片

      • <字符串>[M: N],M缺失表示至开头,N缺失表示至结尾

        "〇一二三四五六七八九十"[:3] 结果是 "〇一二"
      • <字符串>[M: N: K],根据步长K对字符串切片

        "〇一二三四五六七八九十"[1:8:2] 结果是 "一三五七" 
        "〇一二三四五六七八九十"[::-1] 结果是 "十九八七六五四三二一〇"
    3. 字符串的特殊字符

      • 转义符表达特定字符的本意

        “这里有个双引号(")” 结果为 这里有个双引号(“)

      • 转义符形成一些组合,表达一些不可打印的含义

        “\b”回退

        “\n”换行(光标移动到下行首)

        “\r” 回车(光标移动到本行首)

    4. 字符串操作符

      操作符及使用 描述
      x + y 连接两个字符串x和y
      n * x 或 x * n 复制n次字符串x
      x in s 如果x是s的子串,返回True,否则返回False
    5. 字符串处理函数

      函数及使用 描述
      len(x) 长度,返回字符串x的长度 len(“一二三456”) 结果为 6
      str(x) 任意类型x所对应的字符串形式 str(1.23)结果为”1.23” str([1,2])结果为”[1,2]”
      hex(x) 或 oct(x) 整数x的十六进制或八进制小写形式字符串 hex(425)结果为”0x1a9” oct(425)结果为”0o651”
      chr(u) x为Unicode编码,返回其对应的字符
      ord(x) x为字符,返回其对应的Unicode编码
    6. Unicode编码

    7. 字符串处理方法

      “方法”在编程中是一个专有名词

      方法及使用 1/3 描述
      str.lower() 或 str.upper() 返回字符串的副本,全部字符小写/大写 “AbCdEfGh”.lower() 结果为 “abcdefgh”
      str.split(sep=None) 返回一个列表,由str根据sep被分隔的部分组成 “A,B,C”.split(“,”) 结果为 [‘A’,’B’,’C’]
      str.count(sub) 返回子串sub在str中出现的次数 “an apple a day”.count(“a”) 结果为 4
      方法及使用 2/3 描述
      str.replace(old, new) 返回字符串str副本,所有old子串被替换为new “python”.replace(“n”,”n123.io”) 结果为 “python123.io”
      str.center(width[,fillchar]) 字符串str根据宽度width居中,fillchar可选 “python”.center(20,”=”) 结果为 ‘=======python=======’
      方法及使用 3/3 描述
      str.strip(chars) 从str中去掉在其左侧和右侧chars中列出的字符 “= python= “.strip(“ =np”) 结果为 “ytho”
      str.join(iter) 在iter变量除最后元素外每个元素后增加一个str “,”.join(“12345”) 结果为 “1,2,3,4,5” #主要用于字符串分隔等
    8. 字符串类型的格式化

      格式化是对字符串进行格式表达的方式

      • 字符串格式化使用.format()方法,用法如下:

        <模板字符串>.format(<逗号分隔的参数>)

      • 例子:

        "{ }:计算机{ }的CPU占用率为{ }%".format("2018-10-10","C",10)
        
        "{1}:计算机{0}的CPU占用率为{2}%".format("2018-10-10","C",10)
        槽内数字可以决定顺序。
      format()方法的格式控制

      槽内部对格式化的配置方式

      { <参数序号> : <格式控制标记>}

      <填充> <对齐> <宽度> <,> <.精度> <类型>
      引导 符号 用于填充的 单个字符 < 左对齐
      > 右对齐
      ^ 居中对齐
      槽设定的输 出宽度 数字的千位 分隔符 浮点数小数 精度 或 字 符串最大输 出长度 整数类型 b, c, d, o, x, X 浮点数类型 e, E, f, %
      >>>"{0:=^20}".format("PYTHON") 
      '=======PYTHON=======' 
      >>>"{0:*>20}".format("BIT") 
      '*****************BIT' 
      >>>"{:10}".format("BIT") 
      'BIT       '
      >>>"{0:,.2f}".format(12345.6789) 
      '12,345.68' 
      >>>"{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}".format(425) 
      '110101001,Ʃ,425,651,1a9,1A9' 
      >>>"{0:e},{0:E},{0:f},{0:%}".format(3.14) 
      '3.140000e+00,3.140000E+00,3.140000,314.000000%'

模块2:time库的使用

  1. time库是Python中处理时间的标准库

    import time 
    time.<b>()
  2. time库包括三类函数

    1. 时间获取:time() ctime() gmtime()
    2. 时间格式化:strftime() strptime()
    3. 程序计时:sleep() perf_counter()
    函数 描述
    time() 获取当前时间戳,即计算机内部时间值,浮点数
    >>>time.time()
    1516939876.6022282
    ctime() 获取当前时间并以易读方式表示,返回字符串
    >>>time.ctime()
    ‘Fri Jan 26 12:11:16 2018’
    gmtime() 获取当前时间,表示为计算机可处理的时间格式
    >>>time.gmtime()
    time.struct_time(tm_year=2018, tm_mon=1,
    tm_mday=26, tm_hour=4, tm_min=11, tm_sec=16, tm_wday=4,
    tm_yday=26, tm_isdst=0)
  3. 时间格式化

    函数 描述
    strftime(tpl, ts) tpl是格式化模板字符串,用来定义输出效果
    ts是计算机内部时间类型变量
    >>>t = time.gmtime()
    >>>time.strftime(“%Y-%m-%d %H:%M:%S”,t)
    ‘2018-01-26 12:55:20’
    strptime(str, tpl) str是字符串形式的时间值
    tpl是格式化模板字符串,用来定义输入效果
    >>>timeStr = ‘2018-01-26 12:55:20’
    >>>time.strptime(timeStr, “%Y-%m-%d %H:%M:%S”)
    time.struct_time(tm_year=2018, tm_mon=1,
    tm_mday=26, tm_hour=4, tm_min=11, tm_sec=16,
    tm_wday=4, tm_yday=26, tm_isdst=0)
  4. 格式化控制符

    格式化字符串 日期/时间说明 值范围和实例
    %Y 年份 0000~9999,例如:1900
    %m 月份 01~12,例如:10
    %B 月份名称 January~December,例如:April
    %b 月份名称缩写 Jan~Dec,例如:Apr
    %d 日期 01~31,例如:25
    %A 星期 Monday~Sunday,例如:Wednesday
    %a 星期缩写 Mon~Sun,例如:Wed
    %H 小时(24h制) 00~23,例如:12
    %I 小时(12h制) 01~12,例如:7
    %p 上/下午 PM,例如:PM
    %M 分钟 00~59,例如:26
    %S 00~59,例如:26
    >>>t = time.gmtime()
    >>>time.strftime("%Y-%m-%d %H:%M:%S",t) 
    '2018-01-26 12:55:20'
    
    

timeStr = ‘2018-01-26 12:55:20’
time.strptime(timeStr, “%Y-%m-%d %H:%M:%S”)


5. **程序计时**

- 程序计时指测量起止动作所经历时间的过程
- 测量时间:`perf_counter() `
- 产生时间:`sleep()`

```python
>>>start = time.perf_counter() 
318.66599499718114 
>>>end = time.perf_counter() 
341.3905185375658 
>>>end - start 
22.724523540384666
>>>def wait(): 
    time.sleep(3.3)
>>>wait() #程序将等待3.3秒后再退出