@Python的学习
Part1.2-Python的运算,数据类型及函数
1.运算符与表达式
1.算术运算符
- +:加法运算
- -:减法运算
- *:乘法运算
- 数据运算:乘法运算
- 字符串运算:字符串重复指定的次数
print("+"*15)
print("@¥"*15)
输出结果:+++++++++++++++
@¥@¥@¥@¥@¥@¥@¥@¥@¥@¥@¥@¥@¥@¥@¥
- /:除法,取商。结果输出为浮点数
- %:取模,取余数
- -(取负):
- +(取本身):
- **:幂运算
- //:整除,返回商的整数
2.比较运算符
比较运算符 | 运算符描述 | 演示范例 |
---|---|---|
== | 比较是否相等 | |
!= | 是否不相等 | |
<> | 是否不相等,与!=功能相等 | |
> | 大于 | |
< | 小于 | |
>= | 大于等于 | |
<= | 于等于 |
- 字符串按照字典顺序比较
- 列表逐元比较
3.赋值运算符
赋值运算符 | 运算符描述 | 演示范例 |
---|---|---|
= | ||
+= | 加法赋值 | c+=a等同于c=c+a |
-= | 减法赋值 | c-=a等同于c=c-a |
*= | 乘法赋值 | c*=a等同于c=c*a |
/= | 除法赋值 | c/=a等同于c=c/a |
%= | 取模赋值 | c%=等同于c=c%a |
**= | 幂赋值 | c**=a等同于c=c**a |
3.逻辑运算符(布尔运算)
与(and)、或(or)、非(not)
4.按位运算符
按位运算符 | 运算符描述 | 演示范例 |
---|---|---|
& | 按位与运算 | |
| | 按位或运算 | 2^5=7 (0010^0101=0111) |
^ | 按位异或,二进制位相异时,结果为1 | ~3=-4 () |
~ | 按位取反,对数据的每个二进制位取反,即把1变为0,把0变为1。计算结果相当于-x-1 | ~3(0011) ->(按位取反)1100 ->(1为复数)-4 |
<< | X<<N,二进制数向左移N位,高位丢弃,地位补零 | |
>> | X>>N二进制数向右移N位,地位丢弃,高位补零 |
5.成员运算符
按位运算符 | 运算符描述 | 演示范例 |
---|---|---|
in | 找到发挥True | a in b |
not in | 没找到返回True | a not in b |
2.数据类型
1.整数类型 int
- 不区分整数与长整数
- 默认十进制,二进制(0b1010),十六进制(0x00)
- int(value)函数,将字符串、浮点数、布尔值转换为整型
2.浮点数类型
- 浮点数存在精度缺陷,可以使用Decimal库模块,将浮点数转换为字符串再处理
from decimal import* #调用Decimal库模块
a=Decimal('0.55')+Deciaml('0.3')
print(a)
输出结果:0.85
3.复数类型complex
- 形式:x+yj or x+yJ
- abs(complex) = 复数的模= x 2 + y 2 \sqrt{x^2+y^2} x2+y2
4.布尔类型
- 与、或、非
- 转为数值(True=1,False=0)
3.运算函数
1. 数值运算函数
- abs(参数):返回参数的绝对值,参数可以是整数、浮点数或复数
fabs(参数):返回参数绝对值。调用是需要添加 Import math
abs是内置函数,fabs是math模块中定义的;fabs仅能用于浮点数与整型 - divmod(被除数,除数):返回(商,余数) 如果x,y为浮点数,结果为(math.floor(x/y),(x%y))
math.floor向下取整 - pow(x, y[, z]) 函数:计算x的y次方并对z取模,z可以没有。 pow(x, y, z) = pow(x, y)%z
- round(x,ndigits):返回浮点数x四舍五入值,ndigits代表保留小数点后几位,默认为0
round(3.1415926,-2)
输出结果:0.0
2. 字符串处理函数
str为字符串的变量名
- 字符串的整合:“+”
template = "My name is"
name = "Joshua"
greeting=template+" "+name+"
"print(greeting)
输出结果:My name is Joshua
- 字符串的重复
laugh = 30 * "哈"
print(laugh)
输出结果:哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
- len(str):返回字符串、列表、元组等长度或项目个数
- str.upper():全部转为大写字符
str.lower():全部转为小写字符
strswapcase():大小写互换
str.capitalize :第一个字符转为大写,其余为小写
str.title():所有单词首字母大写,其余小写 - str.find(sub[,start [,end]]):字符串的查找,返回字符第一次出现的位置,从0开始,未找到返回-1
sub:需要查找的字符
start:开始位置
end:结束位置
str.rfind(sub[, start[, end]]):从右侧开始查找,返回值按照左边的值计算 - str.count(sub):统计字符串中字符出现的次数
- str.replace(被替换字符, 替换字符[, 替换次数]):字符串的替换
- strip(指定字符) 函数:移除字符串头尾指定字符,默认移除空格
lstrip():移除左边的空格
rstrip():移除右边的空格 - [ ] Extract & Slice 按位取
(1) 一个一个取
letters="abcdefghijklmnopqrstuvwxyz"
letters[0] # bit0 开始计算
输出结果:‘a’
中英文bit算法相同
①bit数超出字符串的长度:报错 #IndexError: string index out of range 下标错误
② bit数为负数:从右开始倒着数
(2) [起始:结束:步长] 取一串
① [:] extracts the all string
② [start:] from start to the end
letters[-3:]
输出结果:‘xyz’
③ [:end] from the beginning to the end - 1 Offset
如果end大于字符串长度,则有多少取多少
④ [start:end] from start to end - 1
letters[-2:-6] #返回空值
输出结果:’’
⑥ [start: end:step] from start to end - 1 skipping characters by step
letters[::-1] #逆序取字符串
letters[-2:-6:-1] #返回空值
输出结果:‘yxwv’
- str.split(切分符) 切分,默认空格
todos = "download python, install, download ide, learn"
todos.split(', ')
输出结果:[‘download python’, ‘install’, ‘download ide’, ‘learn’]
- 切分符.join 合并
', '.join(['download python', 'install', 'download ide', 'learn'])
输出结果:‘download python, install, download ide, learn’
- 格式输出
str.center(总字符数) 使用空格填充字符数后,居中
str.ljust(总字符数):使用空格填充字符数后,左对齐
str.rjust(总字符数):.使用空格填充字符数后,右对齐 - str.startswith(sub):是否以指定字符开头,返回值为True或False
str.endswith(sub):是否以指定字符结尾,返回值为True或False - str.isalnum() :str中至少有一个字符且所有字符都是字母或数字则返回 True,否则返回 False