声明:该博客参考深度之眼的视频课程,如有侵权请联系小编删除博文,谢谢! 若总结有所失误,还请见谅,并欢迎及时指出。
基础数据类型
1.1 数字类型的组成
1.1.1 整数——不同进制的转换
- 默认输入十进制
- 二进制0b、八进制0o、十六进制0x
16 == 0b10000 ==0o20 == 0x10
#十进制与其他进制的转换
a = bin(16) #转二进制
b = oct(16) #转八进制
c = hex(16) #转十六进制
print(a, b, c) #运行结果 0b10000 0o20 0x10
#注意:上述转换后结果为字符类型
a == b #运行结果为False,由于为字符型,所以不相等
type(a) #运行结果为str
#其他进制转十进制
d = int(a, 2) #二进制转十进制
e = int(b, 8) #二进制转十进制
f = int(c, 16) #二进制转十进制
print(d, e, f) #结果16 16 16
1.1.2 浮点数——不确定性
a = 0.1 + 0.2 #输出结果为0.30000000000000004 不是0.3 通常情况下不影响计算精度
b = round(a, 1) #四舍五入,保留一位小数
print(b) #输出结果为0.3
1.1.3 复数——a+bj(a+bJ)
3+5j = 3+5J
2+1j #当时虚部系数为1时,需要显式写出
1.2 数字运算符操作(a操作符b)
# 加减乘除 + - * / 括号()
# 取反 - (即前面加负号)
# 乘方的运算 ** (例 2**3 即2的三次方)
# 整除 // (即取商)
# 模运算 % (即取余数)
- 整数与浮点数运算的结果是浮点数
- 除法运算的结果是浮点数
1.3 数字运算的操作函数 function(x,…)
#求绝对值 abs()
abs(-5)
abs(3+4j) #对于复数来说,是求模运算结果是 5.0
#幂次方 pow(x,n) 即x的n次方 等价于x**n
pow(2, 5, 3) #即2的5次幂,再求3的余数
#四舍五入 round(x,n) x是四舍五入的数,n是保留位数
round(5.21) #默认保留整数
#整数商和模运算 divmod(x,y) 等价于返回二元元组(x//y,x%y)
divmod(13, 5) #输出结果 (2, 3)
#序列最大值/最小值 max() min()
#求和函数 sum(x)
sum([1, 2, 3])
#借助科学计算库 math\scipy\numpy
import math #导入库
math.exp(1) #指数运算 e^x
math.log2(2) #对数运算
math.sqrt(4) #开平方运算
import numpy as np
a = [1, 2, 3, 4, 5]
np.mean(a) #求均值
np.median(a) #求中位数
np.std(a) #求标准差
第二部分 字符串类型
2.1 字符串的表达
# 用""或''引起来的任意字符
#双中有单
print("I'am 18 years old") #输出结果 I'am 18 years old
#单中有双
print('"python" is good') #输出结果 "python" is good
#双中有双,单中有单——转义符
print("\"Python\" is very good") #输出结果"Python" is very good \ 表明我是字符
a = "py\
thon"
print(a) #输出结果python 转义符还可以用来换行继续输入
2.2 字符串的性质
2.2.1字符串的索引
a = "My name is JackMing"
# 正向索引——从零开始递增 位置编号不能超过字符长度
print(a[0]) #输出结果 M
print(a[2]) #输出结果 空格 (空格也是一个字符)
#反向索引——从-1开始递减
print(a[-1]) #输出结果 g
print(a[-4]) #输出结果 M
2.2.1字符串的切片
变量名[开始位置:结束位置:切片间隔]
#切片间隔如不设置默认为1,可省略
#切片范围不包含结束位置
a = "Python"
print(a[0:3:1]) #输出结果Pyt
print(a[0:3:2]) #输出结果Pt
print(a[0:3]) #输出结果Pyt
#起始位置是0 可以省略
#结束位置省略 代表可以取到最后一个字符
#可以反向索引
print(a[0:6])
print(a[:6])
print(a[:])
print(a[-6:]) #四个输出都是 Python
#反向切片
#反向切片间隔不可省略
#起始位置是-1也可以省略
#结束位置省略 代表可以取到第一个字符
print(a[-1:-4:-1]) #输出结果noh
print(a[:-4:-1]) #输出结果noh
print(a[::-1]) #输出结果nohtyP
2.3 字符串操作符
# 字符串的拼接
a = "I love "
b = "my girlfriend"
c = a + b
print(c) #结果I love my girlfriend
#字符串的成倍复制
print(c*3) #结果I love my girlfriend love my girlfriendI love my girlfriend
print(3*c) #结果I love my girlfriend love my girlfriendI love my girlfriend
#成员运算
#字迹in全集 任何一个连续的切片都是原字符串的子集
"love" in c #输出结果True
#遍历字符串字符 for 字符 in 字符串
for s in "Python":
print(s)
'''输出结果:
P
y
t
h
o
n
'''
2.4 字符串处理函数
2.4.1 字符串长度
#字符串长度 len()
a = "Python"
len(a) #输出结果 6
2.4.2 字符串编码
将中文字库、英文字母、数字、特殊字符转化成计算机可识别的二进制数
- 每个单一字符对应一个唯一的互不重复的二进制编码
- python中使用的是unicode编码
#将字符转化位unicode码——ord(字符)
print(ord("1")) #输出结果 108
print(ord("φ")) #输出结果 966
print(ord("中")) #输出结果 20013
#将unicode码转换为字符—— chr(字符)
print(chr(123)) #输出结果 {
print(chr(1234)) #输出结果 Ӓ
2.5 字符串的处理方法
2.5.1 字符串的分割——字符串.split(分隔字符)
- 返回一个列表
- 原字符串不变
languages = "Python C C++ Java PHP R"
languages_list = languages.split(" ") #用空格来分割字符串
print(languages_list) #输出结果 ['Python', 'C', 'C++', 'Java', 'PHP', 'R']
print(languages) #输出结果 Python C C++ Java PHP R
2.5.2 字符串的分割——“聚合字符”.join(可迭代数据类型)
#可迭代类型,如:字符串、列表
s = "12345"
s_join = ",".join(s)
s_join #输出结果 '1,2,3,4,5'
#序列类型的元素必须是字符类型
# s = [1, 2, 3, 4, 5] 这种就不可以聚合,里面是数字而不是字符
s = ["1", "2", "3", "4", "5"]
"*".join(s) #输出结果 '1*2*3*4*5'
2.5.3 删除两端特定字符——字符串.strip(删除字符)
- strip从两侧开始搜索,遇到指定字符执行删除,遇到非指定字符,搜索停止
- 类似的还有左删除lstrip和右删除rstrip
s = " I have many blanks "
print(s.strip(" ")) #输出结果 I have many blanks 去掉了两边的空格
print(s.lstrip(" ")) #输出结果 I have many blanks 去掉了左边的空格
print(s.rstrip(" ")) #输出结果 I have many blanks 去掉了右边的空格
2.5.4 字符串的替换——字符串.replace(“被替换”,“替换成”)
s = "Python is coming"
sl = s.replace("Python","Py")
print(sl) #输出结果 Py is coming
2.5.5 字符串的统计——字符串.count(“待统计字符串”)
s = "Python is an excellent language"
print("an:",s.count("an")) #输出结果 an: 2
print("e:",s.count("e")) #输出结果 e: 4
2.5.5 字符串大小写
#字符串.upper() 字母全部大写
s = "Python"
s.upper() #输出结果 'PYTHON'
#字符串.lower()字母全部小写
s.lower() #输出结果 'python'
#字符串.title()首字母大写
s.title() #输出结果 'Python'
第三部分 布尔类型 TURE or FALSE
3.1 逻辑运算的结果
a = 10
print(a > 8) #输出结果 True
print(a == 8) #输出结果 False
print(a < 5) #输出结果 False
#any()有一个是非零就是Ture all()都是是非零就是Ture
print(any([False,1,0,None])) #输出结果 True 其中0 False None都是无
print(all([False,1,0,None])) #输出结果 False
3.2 逻辑运算的结果
n = 2800 #猜数字游戏
while True:
m = eval(input("Please input a number:"))
if m == n:
print("You are right!")
break
elif m > n:
print("too big")
else:
print("too small")
3.2 作为掩码
import numpy as np
x = np.array([1, 3, 2, 5, 7]) #定义 numpy 数组
print(x > 3) #输出结果 [False False False True True]
x[x > 3] #输出结果array([5, 7]) 通过掩码把数据挑选出来
第四部分 类型判别和转换
4.1 类型判别
# type(变量)
age = 18
name = "Jack"
print(type(age)) #输出结果 <class 'int'>
print(type(name)) #输出结果 <class 'str'>
# isinstance(变量,预判类型) 承认继承
# 变量类型是预判类型的子类型,则为真,否则为假
print(isinstance(age, int)) #输出结果True 承认继承
print(isinstance(age, object)) #输出结果True
print(isinstance(name, object)) #输出结果True object 是老祖宗
#字符串检查方法
#字符串.isdigit()字符是否只有数字组成
name.isdigit() #输出结果 False
#字符串.isalpha()字符是否只有字母组成
name.isalpha() #输出结果 True
#字符串.isalnum()字符是否只有数字和字母组成
word = "Python3"
word.isalnum() #输出结果 True 可以用来判断用户名是否合法
4.2 类型转换
# 数字类型转换字符串 str(数字类型)
age = 18
print("My age is " + str(age)) #输出结果 My age is 18
# 仅有数字组成的字符串转数字 int() float() eval()
s1 = "18"
s2 = "10.1"
int(s1) #输出结果 18 仅整形
float(s1) #输出结果 18.0 数字皆可,出来为浮点型
float(s2) #输出结果 10.1 数字皆可,出来为浮点型
eval(s1) #输出结果 18
eval(s2) #输出结果 10.1