数字类型及操作
数字类型:
整数类型:与数学中整数的概念一致,可正可负,没有取值范围限制
- 十进制:1010,99,-217
- 二进制,以0b或0B开头:0b010,0B101
- 八进制,以0o或0O开头:0o123,0O456
- 十六进制,以0x或0X开头:0x9a,0X89
浮点数类型:与数学中实数的概念一致
- 带有小数点及小数的数字
- 浮点数取值范围和小数进度都存在限制,但常规计算可忽略
- 取值范围数量级约-10至10,精度数量级10
浮点数间运算存在不确定尾数,不是BUG
0.1+0.3 #输出 0.4
0.1+0.2 #输出 0.30000000000000004
#不确定尾数是因为计算机中二进制表示小数,可以无限接近,单不完全相同,所以0.1+0.2结果无线接近0.3,但存在尾数
0.1+0.2==0.3 #输出 False
round(0.1+0.2,1)==0.3 #输出 True
- round(x,d):对x四舍五入,d是小数截取位数
- 浮点数运算与比较用round()函数辅助
- 不确定尾数一般发生在10左右,round()十分有效
- 浮点数可以采用科学计数法表示
- 使用字母e或E作为幂的符号,以10为基数,格式如下:e 表示a*10
- 4.3e-3 值为0.0043 9.6E5 值为960000.0
- 使用字母e或E作为幂的符号,以10为基数,格式如下:e 表示a*10
-
- 定义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个或多个字符组成的有序字符序列
- 字符串由一对单引号或一对双引号表示
- 由一对单引号或双引号表示,仅表示单行字符串
- 由一对三引号或三双引号标识,可表示多行字符串
- 三引号的方式能够使字符串中既包括单引号又可以包括双引号
字符串是字符的有序序列,可以对其中的字符进行索引
"请输入带有符号的温度值:"
'C'
print("请输入带有符号的温度值:"[0]) #输出 "请"
'''Python
语言'''
字符串的序号:正向递增序号 和 反向递减序号
字符串的使用:索引和切片
- 索引,返回字符串中单个字符 <字符串>[M]
- 切片,返回字符串中一段字符串子串 <字符串>[M:N:K]
#M缺失表示至开头,N缺失表示至结尾,根据步长K对字符串切片
"零一二三四五六七八九十"[:3] #结果为"零一二"
"零一二三四五六七八九十"[1:8:2] #结果为"一三五七"
"零一二三四五六七八九十"[::-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
<a name="6jZP9"></a>
#### 字符串操作符
| 操作符及使用 | 描述 |
| --- | --- |
| x + y | 连接两个字符串x和y |
| n*x 或 x*n | 复制n次字符串x |
| x in s | 如果x是s的子串,返回True,否则返回False |
<a name="6WlAK"></a>
#### 字符串处理函数
| 函数及使用 | 描述 |
| --- | --- |
| len(x) | 长度,返回字符串x的长度<br />例如:len("一二三456")结果为6 |
| str(x) | 任意类型x所对应的字符串形式<br />例如:str(1.23)结果为 "1.23" str([1,2])结果为"[1,2]" |
| hex(x) 或 oct(x) | 整数x的十六进制或八进制小写形式字符串<br />例如:hex(425)结果为 "0x1a9" oct(425)结果为 "0o651" |
| chr(x) | x为Unicode编码,返回其对应的字符 |
| ord(x) | x为字符,返回其对应的Unicode编码 |
> Unicode编码是Python字符串的编码方式
> 统一字符编码,即覆盖几乎所有字符的编码方式
> 从0到1114111(0x10FFFF)空间,每个编码对应一个字符
> Python字符串中每个字符都是Unicode编码字符
```python
"1+1=2"+chr(10004) #输出:1+1=2✔
"这个字符♉的Unicode值是:" + str(ord("♉")) #输出:'这个字符♉的Unicode值是:9801'
for i in range(12):
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>)
"{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%