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字符串的编码方式 

  1. 统一字符编码,即覆盖几乎所有字符的编码方式
  2. 从0到1114111 (0x10FFFF)空间,每个编码对应一个字符
  3. 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
Code 1~30

 

 

字符串类型的格式化

 

 

 

 

 

posted @ 2018-11-26 02:18  Nostyle  阅读(395)  评论(0)    收藏  举报