小白跟着大神学Python——Day03 基础数据类型int、str、bool

今日内容:

基础数据类型:

1.数字类型int ***三颗星***

1.1 bit_length()      #获取十进制转化为二进制的有效位数
数字主要是用于计算用的,使用方法并不是很多,就记住一种就可以;
例子:
#i = 9
#print(i.bit_length())
#9的二进制码是0001 0001 print结果是4位
 
1.2 二进制与十进制之间的关系
 
1.3 二进制与十进制之间的转换

2. 布尔值 bool

#bool() 真True 假False
 
2.1 布尔值与数字之间的转换:
i1 = 1
i2 = False
i1 = bool(i1)
i2 = int(i2)
print(i1,type(i1))
print(i2,type(i2))
 
2.2 布尔值与字符串之间的转换:
#str -->bool 非空即True
s1 = "上课时间"
print(bool(s1))
s2 =' ' # 这不是空,这是特殊字符空格
print(bool(s2))
s3 ='' # 这才叫空
print(bool(s3))
#bool -->str 无意义

3.字符串str ***三颗星***

#今天所讲的字符串切片索引以及常用操作方法 都是形成新的字符串,与原字符串没有关系。
 
3.1索引与切片
 
3.1.1按照索引取值
索引即下标,就是字符串组成的元素从第一个开始,初始索引为0以此类推。
s = 'python骑士计划'
s1 = s[0]
print(s1,type(s1)) #p str
s2 = s[1]
print(s2) # y
s3 = s[-1]
print(s3) # 划
s4 = s[-3]
print(s4)# 士
 
3.2.2 按照切片取值 # 顾头不顾尾
s = 'python骑士计划'
s5 = [0:5]
print(s5) # pytho 只有5个,意思是只能输出0.1.2.3.4
#如果要输出python,则写为:s3 = [0:6]

注意:s[5:0] 反过来不取值,应利用反向步长

s6 = s[5:0]
print(s6)
s7 = s[:]
print(s7)
s8 = s[-5:]
print(s8)
s9 = s[:5]
print(s9)
s10 = s[2:]
print(s10)
 
3.2.3切片+步长
# [起始索引: 结尾索引+1:步长]
s11 = s[::3]
print(s11)
s12 = s[7::2]
print(s12)
s13 = s[-1:-4:-1] # 只要倒叙取值就要加上反向步长。
print(s13)
 
注意:只要有步长负数,就证明是反向取值!!!
#他不可能出现s[0:6:-1]出现nohtyp,而是出现划计士骑no。
s15 = s[:3:2]
print(s15)
s14 = s[:3:-2]
print(s14)

3.3字符串的常用操作方法

#Ctrl + 函数 ,可以看该函数解释。
 
3.3.1 .capitalize() 首字母大写 **两颗星**
 
name = 'shijie'
n1 = name.capitalize()
print(n1)
 
3.3.2 center(self,width,fillchar)将字符串居中可以设置总长度,可以设置填充物 *一颗星*
 
n2 = name.center(50,'#')
print(n2)
 
3.3.3 swapacse() 大小翻转 *一颗星*
 
name = 'ShiJie'
n3 = name.swapcase()
print(n3)
 
3.3.4 tile() 非字母隔开的每个单词的首字母大写 *一颗星*
 
name = 'apple tony9shijie$xiajibaxie'
n4 = name.title()
print(n4)
 
3.3.5 upper()全部大写 --- lower() 全部小写 ***三颗星***
 
name = 'ApPle'
n5 = name.upper()
n6 = name.lower()
print(n5)
print(n6)
比如用在验证码中:
 
3.3.6 startwith() endswith() 以什么开始,以什么结束#输出T or F ***三颗星***
 
s ='alex'
s1 = s.startswith('al') #以什么开头
s2 = s.startswith('l')
s3 = s.endswith('ex') #以什么结尾
s4 = s.endswith('le',0,3) #切片
print(s1)
print(s2)
print(s3)
print(s4)
 
3.3.7 find or index(字符,start,end) :通过元素找索引,找到第一个就返回(可切片)***三颗星***
 
s = 'apple_age'
#find : 通过元素找索引,找到第一个就返回(可切片),找不到返回-1
#index 通过元素找索引,找到第一个就返回(可切片),找不到报错
print(s.find('a'))
print(s.find('a',2,)) # 可切片
print(s.find('X')) #返回-1
print(s.index('X')) #报错
 
3.38 strip:默认去除字符串前后两端的空格,换行符\n,制表符\t      ***三颗星**
 
strip()
strip(char) # 从两侧开始去除char字符,直到不是为止,若为字符串,则注意看例子。
lstrip() #去除左边
rstrip() #去除右边
例子:
s = '\t *_*barry*_* \t'
print(s)
s1 = s.strip('*')
s2 = s.strip('\t')
s3 = s.strip('_* \t')
s4 = s.lstrip('_* \t')
s5 = s.rstrip('_* \t')
print(s1)
print(s2)
print(s3)
print(s4)
print(s5)
 
3.3.9 split 分割 str --》 list ***三颗星***
#默认以空格分割
s = 'apple banna cat dad'
ss = 'apple:banna:cat:dad'
sss = 'applebbannabcatbdad'
ssss = 'applebbannabcatbdad'
print(s.split())
print(ss.split(':'))
print(sss.split('b'))
print(ssss.split('b',1))
这里有个坑:
#分割出的元素要比分隔符数+1 比如分隔符数为3个,分割出来为4个(两个分隔符用空)
3.3.10join(list(必须全部是字符串) ---》str 这只是其中一种方式 )***三颗星***
 
s = ['ab','cd','ef','gh']
print(' '.join(s))
print('——'.join(s))
print('XXX'.join(s))
 
3.3.11 replace 替换,只能从左到后替换    ***三颗星***
 
s = 'couaskjdlasidjskfxnzkcjklsjai'
s1 = s.replace('c',' X ')
print(s1)
 
3.3.12 format 格式化输出 ***三颗星***
 
#第一种方式:(与%d没太大区别)
s ='我叫{},我今年{}岁了,我的爱好是{},现在从事{}。'.format(name,age,hobbie,job)
#第二种方式:
s1 ='我叫{0},我今年{1}岁了,我的爱好是{0},现在从事{2}。'.format('hobbie','15','job')
#第三种方式:可以不管后面的顺序
s2 ='我叫{na},我今年{age}岁了,我的爱好是{s},现在从事{sa}。'.format(s = 'dsa',nae='hoe',age='15',sa ='job',)
 
3.3.13 is系列 返回 True False **两颗星**
 
判断输入是否为数字或字符串
 
3.3.14 count ***三颗星***
 
 
3.3.15公共方法(内置函数)
 
lens(s) #计算s中有多少个字节数。
 

posted on 2018-12-22 11:29  C_Jayson  阅读(133)  评论(0)    收藏  举报

导航