【第3周笔记】基本数据类型

2021-01-04
2022-04-07
6 min read
Hits

  课程笔记和选择题

Notes

整数类型

  与数学中整数的概念一致,可正可负,没有取值范围限制

  pow(x,y) 函数:计算 $ x^y $ ,想算多大算多大

四种进制表现形式举例
十进制直接表示1010,99,-217
二进制以 0b 或 0B 开头0b010,-0B101
八进制以 0o 或 0O 开头0o123,-0O456
十六进制以 0x 或 0X 开头0x9a,-0X89

浮点数类型

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

注意:浮点数间运算存在不确定尾数,不是 bug

  round(x, d):对 x 四舍五入,d 是小数截取位数

  浮点数间运算与比较用 round() 函数辅助

  不确定尾数一般发生在 $ 10^{-16} $ 左右,round() 十分有效

  浮点数可以采用科学计数法表示,如 aeb:表示 $ a×10^b $

  例如:4.3e-3 值为 0.0043,9.6E5 值为 960000.0

复数类型

  复数实例:z = 1.23e-4+5.6e+89j,z.real 获得实部,z.imag 获得虚部

数字类型的关系

  类型间可进行混合运算,生成结果为“最宽”类型,三种类型存在一种逐渐“扩展”或“变宽”的关系:整数 → 浮点数 → 复数,例如:123+4.0=127.0(整数+浮点数=浮点数)

数值运算函数描述举例结果
abs(x)绝对值,x 的绝对值abs(-10.01)10.01
divmod(x,y)商余(x//y,x%y)同时输出商和余数divmod(10, 3)(3, 1)
pow(x, y[, z])幂余,(x**y)%z,参数 z 可省略pow(3, pow(3, 99), 10000)4587
round(x[, d])四舍五入,d 是保留小数位数,默认值为 0round(-10.123, 2)-10.12
max( $ x_1,x_2, … ,x_n $ )最大值,返回 $ x_1,x_2, … ,x_n $ 中的最大值,n 不限max(1, 9, 5, 4, 3)9
min( $ x_1,x_2, … ,x_n $ )最小值,返回 $ x_1,x_2, … ,x_n $ 中的最小值,n 不限min(1, 9, 5, 4, 3)1
int(x)将 x 变成整数,舍弃小数部分int(123.45) 或 int(“123”)123
float(x)将 x 变成浮点数,增加小数部分float(12)12.0
complex(x)将 x 变成复数,增加虚数部分complex(4)4 + 0j

字符串

  字符串有两类共四种表示方法:一对单引号、一对双引号、一对单双引号、一对三单或三双引号(表示多行字符串)

  x in s:如果 x 是 s 的子串,返回 True,否则返回 False

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

Unicode 编码

  统一字符编码,即覆盖几乎所有字符的编码方式

  从 0 到 1114111(0x10FFFF)空间,每个编码对应一个字符

  Python 字符串中每个字符都是 Unicode 编码字符

for i in range(1000):
    print(chr(9800+i),end="")     # 输出从星座(9800 是白羊)开始的特殊符号

time 库

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

时间获取

时间获取函数描述用法结果
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_yday=26, tm_isdst=0)

时间格式化函数

  1. strftime(tpl, ts)
    1. tpl 是格式化模板字符串,用来定义输出效果
    2. ts 是计算机内部时间类型变量
      >>>t = time.gmtime()
      >>>time.strftime("%Y-%m-%d %H:%M:%S",t)
      '2018-01-26 12:55:20'
      
  2. strptime(str, tpl)
    1. str 是字符串形式的时间值
    2. 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)
      
格式化控制符日期/时间说明值范围实例
%Y年份0000~99991900
%m月份01~1210
%B月份名称January~DecemberApril
%b月份名称缩写Jan~DecApr
%d日期01~3125
%A星期Monday~SundayWednesday
%a星期缩写Mon~SunWed
%H小时(24h 制)00~2312
%I小时(12h 制)01~127
%p上/下午AM, PMPM
%M分钟00~5926
%S00~5926

程序计时

  1. perf_counter()
    1. 返回一个 CPU 级别的精确时间计数值,单位为秒
    2. 由于这个计数值起点不确定,连续调用差值才有意义
>>>start = time.perf_counter()
318.66599499718114
>>>end = time.perf_counter()
341.3905185375658
>>>end - start
22.724523540384666
  1. sleep(s):s 拟休眠的时间,单位是秒,可以是浮点数
>>>def wait():
time.sleep(3.3)
>>>wait()     # 程序将等待 3.3 秒后再退出

测验 3

  1. pow(x, 0.5) 能够计算 x 的平方根,计算负数的平方根将产生:D

    A. 无输出

    B. ValueError错误

    C. 程序崩溃

    D. 复数

>>> pow(-1, 0.5)
(6.123233995736766e-17+1j)
  1. 以下关于字符串 .strip() 方法功能说明正确的是:D

    A. 替换字符串中特定字符

    B. 连接两个字符串序列

    C. 按照指定字符分割字符串为数组

    D. 去掉字符串两侧指定字符

  • “去掉字符串两侧指定字符"对应功能是 .strip()

  • “按照指定字符分割字符串为数组"对应功能是 .split()

  • “替换字符串中特定字符"对应功能是 .replace()

  • “连接两个字符串序列"对应功能是 + 操作符

  1. 字符串是一个连续的字符序列,哪个选项可以实现打印字符信息的换行?C

    A. 使用“\换行”

    B. 使用空格

    C. 使用\n

    D. 使用转义符\

  • 换行符 \n,与 C 语言中一致。
  1. val=pow(2,1000),请用一行代码返回val结果的长度值。D

    A. len(val)

    B. 其他答案均不正确

    C. len(pow(2,1000))

    D. len(str(val))

  • len(str(val)) 首先通过 str(val) 将数字类型 val 变成字符串,再通过 len() 获得字符串长度,即 val 的数字个数。
  1. 下面关于 time 库引用不正确的是?C

    A. from time import *

    B. from time import strftime

    C. from * import time

    D. import time

  • from * import time 应该是: from time import *
  1. 哪个选项不是 Python 语言的整数类型?D

    A. 88

    B. 0x9a

    C. 0B1010

    D. 0E99

  • 十进制:一般表示

  • 二进制:0b 或 0B 开头

  • 八进制:0o 或 0O 开头

  • 十六进制:0x 或 0X 开头

  • 没有0E开头

  1. 关于整数类型的 4 种进制表示,哪个选项的描述是正确的?C

    A. 二进制、四进制、十进制、十六进制

    B. 二进制、四进制、八进制、十六进制

    C. 二进制、八进制、十进制、十六进制

    D. 二进制、四进制、八进制、十进制

  • Python 不支持四进制整数
  1. 哪个选项是 Python 语言 % 运算符的含义?D

    A. x 与 y 之商

    B. x 的 y 次幂

    C. x 与 y 的整数商

    D. x 与 y 之商的余数

  • % 是取余数,与 C 语言相同。
  1. 哪个选项是下面代码的执行结果?A
name="Python语言程序设计课程"
print(name[0],name[2:-2],name[-1])
A. P thon语言程序设计 程

B. P thon语言程序设计课 课

C. P thon语言程序设计课 程

D. P thon语言程序设计 课
  • s[N:M] 表示对字符串 s 的切片操作,从 N 到 M,但不包含 M
  1. 哪个选项是下面代码的执行结果?D
s='PYTHON'
print("{0:3}".format(s))
A. PYTHON

B. PYT

C. PYTH

D. PYTHON
  • {0:3} 表示输出的宽度是 3,但如果字符串超过长度 3,则以字符串长度显示。
Avatar

Hui.Ke

❤ Cyber Security | Safety is a priority.