数字类型及操作

数学中的类型关系 基本数据类型 - 图1

数字类型:

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

    • 十进制:1010,99,-217
    • 二进制,以0b或0B开头:0b010,0B101
    • 八进制,以0o或0O开头:0o123,0O456
    • 十六进制,以0x或0X开头:0x9a,0X89
  • 浮点数类型:与数学中实数的概念一致

    • 带有小数点及小数的数字
    • 浮点数取值范围和小数进度都存在限制,但常规计算可忽略
    • 取值范围数量级约-10至10,精度数量级10
    • 浮点数间运算存在不确定尾数,不是BUG

      1. 0.1+0.3 #输出 0.4
      2. 0.1+0.2 #输出 0.30000000000000004
      3. #不确定尾数是因为计算机中二进制表示小数,可以无限接近,单不完全相同,所以0.1+0.2结果无线接近0.3,但存在尾数
      4. 0.1+0.2==0.3 #输出 False
      5. round(0.1+0.2,1)==0.3 #输出 True
      • round(x,d):对x四舍五入,d是小数截取位数
      • 浮点数运算与比较用round()函数辅助
      • 不确定尾数一般发生在10左右,round()十分有效
    • 浮点数可以采用科学计数法表示
  • 复数类型:与数学中复数的概念一致

    • 定义j=-1,之所以用j而不是用i,是为了区别与工程中的电流。
    • a+bj被称为复数,其中,a是实部,b是虚部

数值运算与操作符

  • 操作符
操作符及使用 描述
x + y 加,x与y之和
x - y 减,x与y之差
x * y 乘,x与y之积
x / y 除,x与y之商 10/3结果是3.3333333333333335
即使能够整除,除法的结果依旧是float浮点数
x//y 整数除,x与y之整数商 10//3结果是3
+x x本身
-x x的负值
x % y 余数,模运算 10%3结果为1
x ** y 幂运算,x的y次幂,x^y;当y是小数时,开方运算10**0.5结果是
x op = y 即 x = x op y,其中,op为二元操作符
x +=y x -=y x =y x /=y x //=y x %=y x=y
>>>x = 3.1415
>>>x
= 3 #与x = x *
3 等价
31.006276662836743
  • 类型关系
    • 数字类型间可进行混合运算,生成结果为“最宽”类型
    • 三种类型存在一种逐渐“扩展”或“变宽”的关系
      • 整数 —> 浮点数 —> 复数,例如: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是保留小数位数,默认值为0
例如:round(-10.123,2)结果为-10.12
max(x1,x2,…,xn) 最大值,返回x1,x2,…,xn中的最大值,n不限
例如:max(1,9,5,4,3)结果为9
min(x1,x2,…,xn) 最小值,返回x1,x2,…,xn中的最小值,n不限
例如:min(1,9,5,4,3)结果为1
int(x) 将x变成整数,舍弃小数部分
例如:int(123.45) 结果为123;int(“123”)结果为123
float(x) 将x变成浮点数,增加小数部分
float(12)结果为12.0;float(“1.23”)结果为1.23
complex(x) 将x变成复数,增加虚数部分
例如:complex(4)结果为4+0j

字符串类型及操作

字符串类型表示:由0个或多个字符组成的有序字符序列

  • 字符串由一对单引号或一对双引号表示
    • 由一对单引号或双引号表示,仅表示单行字符串
    • 由一对三引号或三双引号标识,可表示多行字符串
      • 三引号的方式能够使字符串中既包括单引号又可以包括双引号
  • 字符串是字符的有序序列,可以对其中的字符进行索引

    1. "请输入带有符号的温度值:"
    2. 'C'
    3. print("请输入带有符号的温度值:"[0]) #输出 "请"
    4. '''Python
    5. 语言'''
  • 字符串的序号:正向递增序号 和 反向递减序号

image.png

  • 字符串的使用:索引和切片

    • 索引,返回字符串中单个字符 <字符串>[M]
    • 切片,返回字符串中一段字符串子串 <字符串>[M:N:K]
      1. #M缺失表示至开头,N缺失表示至结尾,根据步长K对字符串切片
      2. "零一二三四五六七八九十"[:3] #结果为"零一二"
      3. "零一二三四五六七八九十"[1:8:2] #结果为"一三五七"
      4. "零一二三四五六七八九十"[::-1] #结果为"十九八七六五四三二一零"
  • 字符串的特殊字符,使用转义符 \

    • 转义符表达特定字符的本意
    • 转义符形成一些组合,表达一些不可打印的含义 ```python print(“这里有个双引号(\”)”) #输出:这里有个双引号(“) “\b” #回退 “\n” #换行,光标移动到下行首 “\r” #回车,光标移动到本行首 “\t” #制表符

print(“Python”)

Python

print(“\tPython”)

Python

print(“Languages:\nPython\nC\nJavaScript”)

Languages:

Python

C

JavaScript

print(“Languages:\n\tPython\n\tC\n\tJavaScript”)

Languages:

Python

C

JavaScript

  1. <a name="6jZP9"></a>
  2. #### 字符串操作符
  3. | 操作符及使用 | 描述 |
  4. | --- | --- |
  5. | x + y | 连接两个字符串x和y |
  6. | n*x 或 x*n | 复制n次字符串x |
  7. | x in s | 如果x是s的子串,返回True,否则返回False |
  8. <a name="6WlAK"></a>
  9. #### 字符串处理函数
  10. | 函数及使用 | 描述 |
  11. | --- | --- |
  12. | len(x) | 长度,返回字符串x的长度<br />例如:len("一二三456")结果为6 |
  13. | str(x) | 任意类型x所对应的字符串形式<br />例如:str(1.23)结果为 "1.23" str([1,2])结果为"[1,2]" |
  14. | hex(x) 或 oct(x) | 整数x的十六进制或八进制小写形式字符串<br />例如:hex(425)结果为 "0x1a9" oct(425)结果为 "0o651" |
  15. | chr(x) | x为Unicode编码,返回其对应的字符 |
  16. | ord(x) | x为字符,返回其对应的Unicode编码 |
  17. > Unicode编码是Python字符串的编码方式
  18. > 统一字符编码,即覆盖几乎所有字符的编码方式
  19. > 从0到1114111(0x10FFFF)空间,每个编码对应一个字符
  20. > Python字符串中每个字符都是Unicode编码字符
  21. ```python
  22. "1+1=2"+chr(10004) #输出:1+1=2✔
  23. "这个字符♉的Unicode值是:" + str(ord("♉")) #输出:'这个字符♉的Unicode值是:9801'
  24. for i in range(12):
  25. print(chr(9800+i),end="") #输出:♈♉♊♋♌♍♎♏♐♑♒♓

字符串处理方法

方法及使用 描述
str.title() 返回字符串的副本,开头字符大写,其他小写
“ada lovelace”.title()结果为”Ada Lovelace”
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
str.replace(ord,new) 返回字符串str副本,所有old子串被替换为new
“python”.replacce(“n”,”n123.io”)结果为”python123.io”
str.center(width[,fillchar]) 字符串str根据宽度width居中,fillchar可选
“python”.center(20,”=”)结果为
‘=======python=======’
str.strip(chars) 从str中去掉在其左侧和右侧chars中列出的字符
“= python=”.strip(“ =np”)结果为”ytho”
str.rstrip去掉右侧的,str.lstrip去掉左侧的
str.join(iter) 在iter变量除最后元素外每个元素后增加一个str
“,”.join(“12345”)结果为
“1,2,3,4,5”#主要用于字符串分隔等

字符串类型的格式化

格式化是对字符串进行格式表达的方式
用法如下:<模版字符串>.format(<参数1>,<…>,<参数n>)
image.png
image.png
image.png

"{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%