py-数据类型

一:编码:

(1)最早数据编码是以ascii码表示,ascii只能表示英文、特殊字符、数字,且不能包含所有语言文字,所以创办了万国码unicode,万国码由于占用资源较多,后面升级为utf-8  utf-16  utf-32

8位 =1个字节bytes、欧洲16位:2个字节、中文24位表示:3个字节

二:数据类型

1.int,python为int提供了一种方法:bit_length() 帮助我们计算int在内存中占用的二进制长度

例:

num=10

print(num.bit_length(num))    #运行结果:4

2.bool,布尔值就两种:True、False,反应正确与否

1  真  Ture

0  假  False

3.str,python中凡是用引号引起来的数据都被称为字符串类型

4.int、bool、str三者数据类型之间的转换

  

# int ---> bool
i = 100
print(bool(i))  # True  # 非零即True
i1 = 0
print(bool(i1))  # False 零即False

# bool ---> int
t = True
print(int(t))  # 1  True --> 1
t = False
print(int(t))  # 0  False --> 0

# int ---> str
i1 = 100
print(str(i1))  # '100'

# str ---> int  # 全部由数字组成的字符串才可以转化成数字
s1 = '90'
print(int(s1))  # 90

# str ---> bool
s1 = '太白'
s2 = ''
print(bool(s1))  # True 非空即True
print(bool(s2))  # False
# bool ---> str
t1 = True
print(str(True))  # 'True'

5.str字符串索引切片

# str1='abcdefghljklmn'
# #正序根据下标取值
# print(str1[0])
# print(str1[5])
# print(str1[13])
# #倒序根据下标取值
# print("================")
# print(str1[-1])
# print(str1[-5])
# #字符串切换是截取字符串的一段形成新的字符串(索引:索引:步长),原则:顾头不顾尾
# print("================")
# #取所有
# print(str1[:])
# #从下标0开始,取所有
# print(str1[0:])
# #从下标0开始到下标为3,顾头不顾尾,下标为3字符不取
# print("================")
# print(str1[0:3]) #结果:abc
# print(str1[:3]) #从开头取0默认可以不写 abc


str2='abcdefghljklmn'
print(str2[2:5]) #结果:cde
#正向,加步长,正向都为正,间隔是有序的
print(str2[:5:2]) #从头开始0可以不写,间隔为2,ace
print(str2[:5:1]) #从头开始0可以不写,间隔为1,abcde
#反向,加步长,反向都为负,间隔是有序的
print(str2[-1:-5:-2]) #从尾开始, nl
print(str2[-1:-5:-1]) #从尾开始, nmlk

6. str字符串常用方法

'''
#1.count()字符串中元素出现的个数
str3 = "this is string example....wow!!!"
sub = "i"
print(str3.count(sub, 0, 6)) #sub 关键字 0 开始位 6结束位,顾头不顾尾
sub2 = "wow"
print(str3.count(sub))
print(str3.count(sub,6))
print(str3.count(sub2))

#2.startswith() 判断是否以...开头
#3.endswith() 判断是否以...结尾
#返回bool值,顾头不顾尾
str4 = 'hello my name is xiaoming'
sub3 = str4.startswith('el',1,5)
print(sub3)
sub4 = str4.endswith('my',6,5)
print(sub4)

#4.split('t') 以什么分割,最终形成的列表不含这个分割的元素
#split('t',1) 从左向右寻找,以某个元素为中心将左右分割为两个元素
#rsplit('t',1) 从右向左寻找,以某个元素为中心将左右分割为两个元素
#splitlines() 根据换行符切割为多个元素
#区分大小写
str5 = 'title,Talk,toy,table'
sub5 = str5.split('t')
sub6 = str5.split('t',1)
print(sub5)
print(sub6)

sub7 = str5.rsplit('t')
sub8 = str5.rsplit('t',1)
print(sub7)
print(sub8)

str6 = "hello\nliya"
sub9 = str6.splitlines()
print(sub9)

# 5.format()用法
#省略字段名传递位置参数
str7 = '{} 你好,你今年{}岁了,喜欢{}'.format('小查', 18, '看电视')
print(str7)
#下标传递位置参数,下标可重复,format()下标从0开始,不能越界使用
str81= '我叫{0} ,我今年{1}岁了,喜欢{2}, {1}岁花季年龄'.format('小查', 18, '看电视')
str82 = '我叫{1} ,我今年{2}岁了,喜欢{2}, {1}岁花季年龄'.format('小查', 18, '看电视')
##str83 = '我叫{1} ,我今年{3}岁了,喜欢{2}, {1}岁花季年龄'.format('小查', 18, '看电视') #format(),没有下标为[3]的值
print(str81)
print(str82)
#字段名传递位置参数
str9 = '我叫{name},我今年{age}岁,我喜欢{hobby}'.format(name='小查',age=18,hobby='看电视')
print(str9)
#{}个数可以少于参数个数,不能多余参数个数
str10 = '我叫{name},我今年{age}岁'.format(name='小查',age=18,hobby='看电视')
print(str10)


#6.strip() 用于移除字符串中头尾指定的字符(默认为空格或换行符),该方法只能删除开头或结尾,不能删除中间
str11 = '00000003210Runoob01230000000'
str12 = " xiaozha "
str13 = "12zha22hongli21"
res1 = str11.strip('0') #删除头尾指定字符
res2 = str12.strip() #默认删除空格或换行符
res3 = str13.strip('12')
print(res1)
print(res2)
print(res3) #只会删除头尾部分,中间不会删除

 

 

#replace
name = 'alex say: I have one tesla,my name is alex'
print(name.replace('alex','xiaozha',1)) #替换1个
print(name.replace('alex','zha')) #替换所有

name1 = '0101'
print(name1.isalnum()) #字符串由字母或数字组成,是:true ,否:false
print(name1.isalpha()) #字符串由字母组成,是:true ,否:false
print(name1.isdecimal()) #字符串只由十进制组成,是:true ,否:false


name2 = '2fjddkxiaozha333'
ret1 = name2.find('h',0,13) #返回找到的元素的索引,如果找不到返回-1 结果:11
print(ret1)
ret2 = name2.index('f',0,13) #返回找到的元素的索引,如果找不到就报错 结果:1
ret3 = name2.index('w',0,13) #结果:报错
print(ret2)


name4 = 'zhaHONGli'
print(name4.capitalize()) #首字母大写
print(name4.swapcase()) #大小写翻转
name5 = 'this is table'
print(name5.title()) #每个首字母大写
name6 = 'daxiongmao'
ret3 = name6.center(20,"*") #字符串在指定长度内剧中,不够使用*补充,结果:*****daxiongmao*****
print(ret3)
'''

 

 




 

posted @ 2019-08-28 09:27  茶叶蛋查  阅读(738)  评论(0编辑  收藏  举报