Python之路(基本数据类型及操作)
基本数据类型
数字类型
整数类型
定义:可正可负,与数学中定义一致
#将字符串转化为数字 a = "123" b = int(a) print(type(a),a) <class 'str'> 123 print(type(b),b) <class 'int'> 123 #将(2,8,16)进制转化为十进制 num = "0011" a = int(num, base=16) #17 将十六进制转化为十进制 b = int(num, base=8) #9 将八进制转化为十进制 c = int(num, base=2) #3 将二进制转化为十进制 print(a,b,c)
#返回当前数字的二进制的位数 a = 19 r =a.bit_length() print(r) #5
浮点数类型
定义:带有小数点及小数的数字;浮点数取值范围和小数精度都存在限制,但常规计算可忽略;取值范围数量级约-10308至10308,精度数量级10-16。
a = 0.1 + 0.2 b = 0.1 + 0.3 print(a) #0.30000000000000004 尾数不确定 print(b) #0.4
# 浮点数间运算存在不确定尾数 a = 0.1 + 0.2 == 0.3 print(a) # False b = round(0.1 + 0.2, 1) == 0.3 print(b) # True c = round(0.1 + 0.2, 30) print(c) # 0.30000000000000004 round()括号中的第二个变量为返回值小数点后有意义的位数
# 浮点数可以采用科学计数法表示 # 使用字母e或E作为幂的符号,以10为基数,格式如下:<a>e<b>表示 a*10b a = 4.3e-3 == 0.0043 b = 9.6E5 == 960000.0 print(a) #True print(b) #True
复数类型
定义:与数学中的定义一样
# 定义 j = √−𝟏 ,以此为基础,构建数学体系 # a+bj 被称为复数,其中,a是实部,b是虚部 z = 1.23e-4 + 5.6e+7j a = z.real # 获取复数实部 b = z.imag # 获取复数虚部 print(a) # 0.000123 print(b) #56000000.0
数值运算操作符
操作符及使用 描述
x + y 加,x与y之和
x - y 减,x与y之差
x * y 乘,x与y之积
x / y 除,x与y之商
x // y 整除,x与y之整数商
+ x x本身
- x x的负数
x % y 余数,模运算
x ** y 幂运算,x的y次幂
增强操作符及使用 描述
即x = x op y,其中op为二元操作符
x op= y x+=y x-=y x*=y x/=y
x//=y x%=y x**=y
数字类型的关系
类型间可进行混合运算,生成结果为"最宽"类型三。种类型存在一种逐渐"扩展"或"变宽"的关系:
整数 -> 浮点数 -> 复数
例如:123 + 4.0 = 127.0 (整数+浮点数 = 浮点数)
数值运算函数
#abs取绝对值 a = abs(-10.1) print(a) #10.1 # 求余,商,等同于(x//y, x%y) x = 10 y = 3 a = divmod(x, y) b, c = divmod(x, y) print(a) # (3, 1) print(b, c) # 3 1 # 幂余(x**y)%z,z可省略 x = 10 y = 3 z = 6 a = pow(x, y) # 1000 x**y b = pow(x, y, z) # 4(x**y)%z print(a) print(b) #max最大值,返回x1,x2, … ,xn中的最大值,n不限 #min最小值,返回x1,x2, … ,xn中的最小值,n不限 tu =(1,9,5,4,3) a=max(tu) b=min(tu) print(a) #9 print(b) #1 # 将x变成整数,舍弃小数部分 x = 123.45 a = int(x) b = int("123") # 将全数字字符串变为整数 print(a) # 123 print(b) # 123 #将x变成浮点数,增加小数部分 x=12 a = float(x) print(a) b =complex(x) #将x变成复数,增加虚数部分 print(b)
字符串类型
字符串类型的表示
由一对单引号或双引号表示,仅表示单行字符串
例如:"我爱你,中国"或者'我爱你,中国'
由一对三单引号或三双引号表示,可表示多行字符串
例如:'''hello world''' 或"""welcome to china"""

字符串操作符
# x+y x = "i love " y = "you" n = 3 a = x + y print(a) # i love you #x*n或n*x b = n * x c = x * n print(b) #i love i love i love print(c) #i love i love i love #x in s s="i love you" d = x in s print(d) #True
字符串处理函数
1 # 长度,返回字符串长度 2 a = len("一二三456") 3 print(a) # 6 4 #任意类型x所对应的字符串形式 5 b = str(1.23) 6 c = str([1, 2]) 7 print(b, c) # 1.23 [1, 2] 8 #整数x的十六进制或八进制小写形式字符串 9 a =hex(425) #十六进制变十进制 10 b =oct(425) #八进制变十进制 11 print(a,b) #0x1a9 0o651 12 #x为Unicode编码,返回其对应的字符 13 c =chr(9806) 14 print(c) #♎ 15 #x为字符,返回其对应的Unicode编码 16 d =ord("♎") 17 print(d) #9806
Python字符串的编码方式
- 统一字符编码,即覆盖几乎所有字符的编码方式
- 从0到1114111 (0x10FFFF)空间,每个编码对应一个字符
- Python字符串中每个字符都是Unicode编码字符
字符串处理方法
#1索引 st ="我是superman" a =st[0] print(a) #我 #2切片 b =st[2:] print(b) #superman #3获取字符串长度 c = len(st) print(c) #10 #4 for循环 for i in st: print("{}".format(i),end="") #我是superman # 5 首字母大写 test = "lzTxDy" a = test.capitalize() b = test.title() print(a, b) # Lztxdy Lztxdy # 6 所有字母变小写 # casefold更牛逼,很多未知的对相应变小写 test = "lzTxDy" a = test.lower() b = test.casefold() print(a, b) # lztxdy lztxdy # 7 设置宽度,指定长度20,填充字符"*",并将内容居中 test = "lzTxDy" a = test.center(20, "*") print(a) # *******lzTxDy******* b = test.ljust(20, "*") print(b) # 3lzTxDy************** c = test.rjust(20, "*") print(c) # **************lzTxDy d = test.zfill(20) print(d) # 00000000000000lzTxDy # 8 寻找字符串(可指定寻找范围)中指定子序列出现的次数 test = "lzTxDylzTxDy" a = test.count('xD') print(a) # 2 b = test.count('xD', 5, 13) print(b) # 1 # 9 以什么什么结尾 # 以什么什么开始 test = "alex" v = test.endswith('ex') v1 = test.startswith('ex') print(v,v1) # 10 expandtabs,断句20, test = "username\temail\tpassword\nlaiying\tying@q.com\t123\nlaiying\tying@q.com\t123\nlaiying\tying@q.com\t123" v = test.expandtabs(20) print(v) # 11 从前往后找,找到第一个获取其值,未找到返回-1 test = "lztxdylztxdy" v =test.find('tx') w = test.find('tx',5,16) print(v,w) #2 8 # 12 index找不到,报错(基本上不用,可忽略) test = "dfsdfd" v = test.index('8') print(v) # #13格式化,将一个字符串中的占位符替换为指定的值 test = 'i am {name}, age {a}' print(test) v = test.format(name='alex',a=19) print(v) test = 'i am {0}, age {1}' print(test) v = test.format('alex',19) # print/(v) # 14 格式化,传入的值 {"name": 'alex', "a": 19} test = 'i am {name}, age {a}' v1 = test.format(name='df',a=10) v2 = test.format_map({"name": 'ax', "a": 19}) print(v1,v2) # 15判断字符串中是否只包含字母、汉字和数字 test ="123sd你好f" v =test.isalnum() print(v) #返回True # #16判断字符串中是否只包含字母、汉字 test ="123sd你好f" v =test.isalpha() print(v) #返回False # 17判断字符串中是否只包含数字 test = "②" #1,②"二" v1 = test.isdecimal() #'1' v2 = test.isdigit() #'1'"②" v3 = test.isnumeric() #"二" '1'"②" print(v1,v2,v3) # 18 判断是否存在不可显示的字符,存在返回False,否则返回True test = "oiuas\tdfkj" v = test.isprintable() print(v) #True #19 判断是否全部是空格,为空或者其他字符返回False test =" " v =test.isspace() print(v) #True # 20 判断是否为标题 test = "Return True if all cased characters in S are uppercase and there is" v1 = test.istitle() print(v1) #False v2 = test.title() print(v2) #Return True If All Cased Characters In S Are Uppercase And There Is v3 = v2.istitle() print(v3) #True #21 将字符串中的每一个元素按照指定分隔符进行拼接 test = "你是风儿我是沙" print(test) v = "_".join(test) print(v) #你_是_风_儿_我_是_沙 #22 判断是否全部是大小写 和 转换为大小写 test = "LzTxDy" v1 = test.islower() v2 = test.lower() print(v1, v2) #False lztxdy v1 = test.isupper() v2 = test.upper() print(v1,v2) #False LZTXDY # 23移除字符串 # 移除指定字符串 # 有限最多匹配 # 去除左右空白,去除\t \n test = "xghtfda" v = test.lstrip('xhg') v1 = test.rstrip('9lexxexa') v2 = test.strip('xda') print(v, v1, v2) # tfda xghtfd ghtf #24 对应关系替换 test = "aeiou" test1 = "12345" v = "asidufkasd;fiuadkf;adfkjalsdjf" m = str.maketrans("aeiou", "12345") new_v = v.translate(m) print(new_v) #25 分割为三个部分。partition(从前到后);repartition(从后到前) test = "testasdsddfg" v = test.partition('s') print(v) #('te', 's', 'tasdsddfg') v = test.rpartition('s') print(v) #('testasd', 's', 'ddfg') #26 分割为指定份数 test = "testasdsddfg" v = test.split('s',2) #从前到后 print(v) v= test.rsplit('s',2) #从后到前 print(v) # 27 分割,只能根据,true(保留换行符),false:是否保留换行 test = "asdfadfasdf\nasdfasdf\nadfasdf" v = test.splitlines(True) print(v) #['asdfadfasdf\n', 'asdfasdf\n', 'adfasdf'] #28 大小写相互转换 test = "LzTxDy" v = test.swapcase() print(v) #lZtXdY #29 判断是否是标识符:(字母,数字下划线,内部定义) a = "12def" v = a.isidentifier() print(v) #False #30 将指定字符串替换为指定字符串(可指定替换数目) test = "alexalexalex" v = test.replace("ex",'bbb') print(v) #albbbalbbbalbbb v = test.replace("ex",'bbb',2) print(v) #albbbalbbbalex
字符串类型的格式化







浙公网安备 33010602011771号