python学习笔记2
一、数字运算
1、进制转换
a = bin(16) #二进制
b = oct(16) #八进制
c = hex(16) #十六进制
print(a, b, c)
#输出
0b10000 0o20 0x10
注意a,b,c是字符串,所以不是相等的。
a == b == c #False
其他进制转为十进制:
d = int(a, 2)
e = int(b, 8)
f = int(c, 16)
print(d, e, f)
#输出
16 16 16
2、浮点数的不确定性
(0.1 + 0.2) ==0.3 #False
这是由于:
a = 0.1 + 0.2
a
#输出
0.30000000000000004
浮点数并不精确!
可以采用四舍五入的方法来逼近:
b = round(a,1) #数字表示保留多少位小数
print(b)
#输出
0.3
3、一些基本运算符
在python中/表示的是除法,与C不同的是他计算的是真正的除法,且结果为浮点数,如:
3/2 #结果为1.5
4/2 #结果为浮点数2.0
而整数商为//,如:
3//2 #结果为1
乘方运算:
2**3 #结果为8
4、一些运算函数
abs(3+4j) #模运算或绝对值 此结果为5
pow(2,3) #等价于2**3 结果为8
pow(2,3,3) #等价于2**3 % 3 结果为2
a = 1.618
print(round(a)) #默认四舍五入无小数,结果为2
print(round(a,2)) #表示四舍五入保留两位小数,结果为1.62
print(round(a,5)) #位数不足不需要补齐,结果为1.618
divmod(13,5) #输出(13//5, 13%5),速度比分开计算快
5、借助库函数(以后专门写)
二、字符串
1、打印格式
#字符串既可以用'',也可以用""
print("I'm 20 years old") #当字符本身有'时,外部应用""
print('I like "Python"') #当字符本身有"时,外部用''
print('I\'m 20 years old') #也可以用转义字符\
print("I like \"Python\"") #或是这样
#转义字符\也可以用来换行
s = 'Py\
thon' #就表示s是'Python’
2、切片
#切片格式:变量名[开始位置:结束位置:间隔],前闭后开
s = 'Python'
print(s[0:3:2]) #Pt
print(s[0:6]) #Python
print(s[:6]) #Python
print(s[0:]) #Python
print(s[:]) #Python
print(s[-6:]) #Python
s = '123456789'
print(s[-1:-10:-1]) #输出都为987654321
print(s[:-10:-1])
print(s[::-1])
3、成员运算
# 子集in全集
names = 'ZhangSan, ZhaoSi, WangWu'
'ZhangSan' in names #True
'ZhaoLiu' in names #False
#for ··· in ···遍历
s = "Python"
for c in s:
print(c)
#输出
P
y
t
h
o
n
4、字符和Unicode码
print(ord("中")) #转为Unicode,结果为20013
print(chr(2020)) #转为字符,结果为ߤ
5、字符串分合
# .split(分割字符) 操作分割字符串
languages = "Python C C++ Java PHP R matlab"
languages_list = languages.split(" ")
print(languages)
print(languages_list)
#结果
Python C C++ Java PHP R matlab
['Python', 'C', 'C++', 'Java', 'PHP', 'R', 'matlab']
# 字符串聚合join(可迭代类型,如字符串、列表)
s = "12345"
s_join = ",".join(s) #结果为1,2,3,4,5
num = ["1","2","3","4","5"]
num_join = "".join(num) #12345
6、删除头尾指定字符
s = " wtf?? "
print(s)
print(s.strip(" ")) #删除头尾指定字符
print(s.lstrip(" ")) #删除左边指定字符
print(s.rstrip(" ")) #删除右边指定字符
#输出
wtf??
wtf??
wtf??
wtf??
7、字符串替换
s = "Python is coming"
s1 = s.replace("Python","Py") #Py is coming
s = "Python"
s1 = s.upper() #PYTHON 全部大写
s2 = s.lower() #python 全部小写
s3 = s.title() #Pyhon 首字母大写
8、统计
s = "Python is an intresting language"
print("an : ",s.count("an")) #an : 2
三、布尔类型
1、any()和all()
print(any([0,False,None,1])) #有一个为真则整体为真,True
print(all([0,False,None,1])) #全部为真整体为真,False
2、作为掩码
import numpy as np
x = np.array([[1,3,2,5,7]])
print(x > 3)
x[x > 3] #取出为True位置的数
#输出
[[False False False True True]]
array([5, 7])
四、变量类型
1、type()
直接输出变量类型。
age = 20
name = "ZhangSan"
print(type(age))
print(type(name))
#输出
<class 'int'>
<class 'str'>
2、isinstance(变量,预判类型) 承认继承
print(isinstance(age,int)) #True
print(isinstance(age,object)) #True
print(isinstance(name,object)) #True
3、isdigit()、isalpha()和isalnum()
#isalnum()表示是否只由字母和数字组成
age = "20"
name = "ZhangSan"
name1 = "Zhang3"
print(age.isdigit()) #True
print(age.isalpha()) #False
print(age.isalnum()) #True
print(name.isdigit()) #False
print(name.isalpha()) #True
print(name.isalnum()) #True
print(name1.isdigit()) #False
print(name1.isalpha()) #False
print(name1.isalnum()) #True
五、类型转换
1、数字转字符串str()
age = 20
print("I'm "+str(age)+" years old") #I'm 20 years old