Python自学之路之day03-基本数据类型(int、str、bool)
一、python基本数据类型
1、int ==> 整数. 主要⽤用来进⾏行行数学运算
2、str ==> 字符串串. 可以保存少量量数据并进⾏行行相应的操作
3、bool ==> 判断真假, True, False
4、list ==> 存储大量数据.用[ ]表⽰
5、tuple=> 元组, 不可以发⽣改变 ⽤用( )表⽰
6、dict==> 字典, 保存键值对, ⼀样可以保存⼤量数据
7、set==> 集合, 保存⼤量数据. 不可以重复. 其实就是不保存value的dict
二、整数(int)
说明: 在python3中所有的整数都是int类型. 但在python2中如果数据量量比较⼤大. 会使用long类型. 在python3中不存在long类型
1、整数可以进行的操作:
bit_length():计算整数在内存中占⽤的二进制码的长度

三、布尔值(bool)
布尔值取值只有:True, False。
1、类型转换
字符串转换数字(str => int): int(str)
s = "256" i = int(s) print(i,type(i)) ss = str(i) print(ss,type(ss)) 打印结果: 256 <class 'int'> 256 <class 'str'>
bool类型转换成数字(bool=>int):int(bool) True是1, False是0
b = False c = int(b) print(c) 打印结果: 0
int转换成bool(int=>bool) 零: False 非零: True
a = 0 b = bool(a) print(b) 打印结果: False
字符串转换bool(str=>bool) bool(str) 空字符串表示False, 非空字符串表示:True
s = "" if s: print("哈哈") else: print("呵呵") 打印结果: 呵呵
注意:None代表空,判断时也作为False。
四、字符串(str)
把字符连成串. 在python中⽤用', ", ''', """引起来的内容被称为字符串
4.1 切片和索引
1. 索引. 索引就是下标. 切记, 下标从0开始
s = "我是来自德玛西亚的召唤师。"
## 获取对应下标的字符串值 print(s[0]) ## 我 print(s[1]) ## 是 print(s[2]) ## 来 print(s[3]) ## 自 print(s[4]) ## 德
## 倒叙取值 print(s[-1]) ## 。 print(s[-2]) ## 师 print(s[-3]) ## 唤 print(s[-4]) ## 召
2.切片, 我们可以使用下标来截取部分字符串的内容
语法: str[start: end]
规则: 顾头不顾尾, 从start开始截取. 截取到end位置. 但不包括end
s = "我是来自德玛西亚的召唤师。" ## 截取德玛西亚 s1 = s[4:8] print(s1) # 德玛西亚 ## 从第四个截取到最后一个,包括最后一个 s2 = s[4:] print(s2) # 德玛西亚的召唤师。 ## 从头开始截取到第15个,如果长度不够15则取到最后一个。 s3 = s[:15] print(s3) #我是来自德玛西亚的召唤师。 ## 从头到尾全部取出来 s4 = s[:] print(s4) # 我是来自德玛西亚的召唤师。 ## 从-3到到结尾 默认从左往右取,不包括倒数第三个 s5 = s[-3:] print(s5) # 唤师。 ## 从倒数第三取到倒数第一,不包括倒数第一 s6 = s[-3:-1] print(s6) #唤师 ## 取到倒数第一个,不包括倒数第一个 s7 = s[:-1] print(s7) # 我是来自德玛西亚的召唤师
3. 带步长切片
语法:
str[start:end:step]
start: 起始位置
end: 结束位置
step:步⻓
s = "我是来自德玛西亚的召唤师。"
## 从1开始, 到5结束, 每2个取1个,默认取第一个
s1 = s[1:5:2]
print(s1)
## 所有值,每三个取一个
s2 = s[::3]
print(s2)
## 从左往右不包括倒数第五个值
print(s[-5::2])
#取值结果:的唤。
## 步长为负值,取值从右往左
print(s[-1:-5:-1])
#取值结果:。师唤召
## 从倒数第五个开始,到第一个,从右往左步长为三
print(s[-5::-3])
# 取值结果:的玛来
## 步长为负数,则从右往左取,从第七个到开始位置,没2个取一个
print(s[7::-2])
4.2 字符串的相关操作方法
1、字符串转来转去
s = "huahua and xiaohua and boy" ## 首字母大写 print(s.capitalize())
打印结果:
Huahua and xiaohua and boy
## 小写变大写(全部) print(s.upper())
## 大写变小写(全部) print(s.lower()) ## 大小写转换 print(s.swapcase()) ## 每个被特殊字符隔开的字⺟母⾸首字⺟母⼤大写(空格、特殊符号、中文) print(s.title())
2、切来切去
## 居中 拉长成10, 把原字符串放中间.其余位置补* s10 = "流浪" print(s10.center(10, "*")) ## 去空格,只能去字符串两端的空格 s11 = "流浪 " print(s11.strip()) ## 指定去掉元素,只能去掉两端 s12 = "-------------流--浪---" print(s12) print(s12.strip("-")) 打印结果: -------------流--浪--- 流--浪 ## 字符串替换 s13 = "流浪 光辉 火男 冰鸟" print(s13) print(s13.replace(" ",""))
打印结果:
流浪光辉火男冰鸟 ## 替换数量,流浪替换为德玛,这里只能按照顺序更换,没办法指定更换第几个值 s14 = "流浪 光辉 火男 冰鸟 流浪" print(s14) print(s14.replace("流浪","德玛",1)) ## 字符串切割 s15 = "流浪 光辉 火男 冰鸟 流浪" print(s15) print(s15.split(" ")) ## 这里根据 空格切割,切割后为列表
打印结果:
流浪 光辉 火男 冰鸟 流浪
['流浪', '光辉', '火男', '冰鸟', '流浪'] ## 如果切割符在左右两端,那么一定会出现空字符串 s15 = "流浪 光辉 火男 冰鸟 流浪" print(s15.split("流浪")) 打印结果: ['', ' 光辉 火男 冰鸟 ', '']
3、格式化输出
# 之前的写法 s1 = "我叫%s, 今年年%d岁了了, 我喜欢%s" % ('sylar', 18, '周杰伦') print(s1) # 按位置格式化 s2 = "我叫{}, 今年年{}岁了了, 我喜欢{}".format("周杰伦", 28, "周润发") print(s2) # 指定位置,位置需要一一对应 s3 = "我叫{0}, 今年年{2}岁了了, 我喜欢{1}".format("周杰伦", "周润发", 28) print(s3) # 指定关键字 s4 = "我叫{name}, 今年年{age}岁了了, 我喜欢{singer}".format(name="周杰伦", singer="周润发", age=28) print(s4)
4、查找
s = "我叫sylar, 我喜欢python, java, c等编程语言." # 判断是否以sylar开头,返回True或者False print(s1.startswith("sylar")) # 是否以'语言'结尾 print(s1.endswith("语言.")) # 查找"a"出现的次数 print(s1.count("a")) # 查找'sylar'出现的位置,返回索引位置,如果不存在返回-1 print(s1.find("sylar")) # 求索引位置,如果不存在则报错 print(s1.index("java"))
5、条件判断
# 是否由字⺟母和数字组成,返回True或者False s20 = "123a" print(s20.isalnum()) # 是否由字母组成 s20 = "123a" print(s20.isalpha()) # 是否由数字组成, 不包括⼩小数点 s20 = "123.123" print(s20.isdigit())

浙公网安备 33010602011771号