python-基本数据类型(int,bool,str)
一.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类型
整数可以进⾏行行的操作: bit_length(). 计算整数在内存中占⽤用的⼆二进制码的⻓长度
三.布尔值(bool)
取值只有True, False. bool值没有操作.
转换问题:
str => int int(str)
int => str str(int)
int => bool bool(int). 0是False 非0是True
bool=>int int(bool) True是1, False是0
str => bool bool(str) 空字符串串是False, 不空是True
bool => str str(bool) 把bool值转换成相应的”值”
四.字符串(str)
把字符连成串串. 在python中⽤用’, “, ”’, “””引起来的内容被称为字符串串.
4.1 切片和索引
1. 索引. 索引就是下标. 切记, 下标从0开始
s1 = '野百合也有春天' print(s1[0]) #获取第0个 print(s1[1]) print(s1[2]) print(s1[3]) print(s1[9]) #没有第9,越界了,会报错 print(s1[-1]) #-1表示倒数第一个
2. 切片, 我们可以使⽤用下标来截取部分字符串串的内容
语法: str[start: end] 规则: 顾头不顾腚, 从start开始截取. 截取到end位置. 但不包括end
s2 = '野百合也有春天' print(s2[0:3]) # 从0获取到3,不包含3,结果:野百合 print(s2[5:9]) # 如果右边达到最大值,相当于获到最后 print(s2[4:]) # 如果想要获得最后,最后一个之可以不给 print(s2[-1:-5]) # 从-1 获取到 -5 这样是获取不到任何结果的. 从-1向右数. 你怎么数也数不到-5 print(s2[-5:-1]) # ⽜b, 取到数据了了. 但是. 顾头不顾腚. 怎么取后⼀个呢? print(s2[:-1]) # 这个是取到倒数第⼀个 print(s2[:]) # 原样输出
跳着截取
print(s2[1:5:2]) # 从第⼀一个开始取, 取到第5个,每2个取1个, 结果: 百也, 分析: 1:5=> 百合也有 => 百也 print(s2[:5:2]) # 从头开始到第五个. 每两个取⼀个 print(s2[4::2]) # 从4开始取到后. 每两个取⼀个 print(s2[-5::2]) # 从-5取到后.每两个取⼀个 print(s2[-1:-5:-1]) # 步⻓长是-1. 这时就从右往左取值了 print(s2[-5::-3]) # 从倒数第5个开始. 到开始. 每3个取⼀个
步⻓长: 如果是整数, 则从左往右取. 如果是负数. 则从右往左取. 默认是1
切片语法: str[start:end:step] start: 起始位置 end: 结束位置 step:步⻓长
4.2 字符串串的相关操作⽅方法
切记, 字符串串是不可变的对象, 所以任何操作对原字符串串是不会有任何影响的
1. ⼤⼩写转来转去
s = 'I Was a preTty boy' print(s.capitalize()) # 首字母大写 print(s.lower()) # 全部小写 print(s.upper()) # 全部大写 print(s.title()) # 每个被特殊字符隔开的字母首字母大写 print(s.swapcase()) # 大小写互相转换 print(s.casefold()) # 转换成小写, 和lower的区别: lower()对某些字符支持不够好.casefold()对所有字母都有效. 比如东欧的⼀一些字母 print(s.center(10,'*')) # 拉长成10, 把原字符串放中间.其余位置补* print(s.strip()) # 去掉左右两端的空格 如果切割符在左右两端. 那么一 定会出现空字符串.深坑请留意 print(s.split()) # 字符串切割, 根据,进行切割 print(s.replace('Was','am')) #把Was替换成am while 1: username = input('请输入用户名:') password = input('请输入密码:') if username == 'wang' and password == '123': print('登录成功') else: print('登陆失败')
2.格式化输出
s1 = "我叫%s,今年%s岁,我喜欢%s" % ('alex',18,'篮球') print(s1) s2 = '我叫{},今年{}岁,爱好{}'.format('宝宝',18,'网球') print(s2) s3 = '我叫{1},今年{2},喜欢{0}'.format('足球','阿达',19) print(s3) s4 = '我叫{name},今年{age}岁,喜欢{hobby}'.format(name='Bob',age=20,hobby='运动') print(s4)
4.查找
s13 = "我叫sylar, 我喜欢python, java, c等编程语⾔言." ret1 = s13.startswith("sylar") # 判断是否以sylar开头 ret2 = s13.endswith("语⾔言") # 是否以'语言'结尾 ret3 = s13.count("a") # 查找"a"出现的次数 ret4 = s13.find("sylar") # 查找'sylar'出现的位置 ret5 = s13.index("sylar") # 求索引位置. 注意. 如果找不到索引. 程序会报错
5.条件判断
s14 = "123.16" s15 = "abc" s16 = "_abc!@" # 是否由字母和数字组成 print(s14.isalnum()) print(s15.isalnum()) print(s16.isalnum()) # 是否由字母组成 print(s14.isalpha()) print(s15.isalpha()) print(s16.isalpha()) # 是否由数字组成, 不包括小数点 print(s14.isdigit()) print(s14.isdecimal()) print(s14.isnumeric()) # 这个比较牛B. 中文都识别. print(s15.isdigit()) print(s16.isdigit())
6.计算字符串的长度
s18 = "我是你的眼, 我也是a" ret = len(s18) # 计算字符串的⻓度 print(ret)
注意: len()是python的内置函数. 所以访问⽅方式也不⼀一样. 你就记着len()和print()⼀一样就⾏行行 了了
7. 迭代
我们可以使⽤用for循环来便便利利(获取)字符串串中的每⼀一个字符
语法:
for 变量量 in 可迭代对象:
pass
可迭代对象: 可以⼀一个⼀一个往外取值的对象
s19 = "大家好, 我是VUE, 前端的小朋友们. 你们好么?" # 用while循环 index = 0 while index < len(s19): print(s19[index]) # 利用索引切片来完成字符的查找 index = index + 1 # for循环, 把s19中的每⼀一个字符拿出来赋值给前面的c for c in s19: print(c) ''' in有两种用法: 1. 在for中. 是把每一个元素获取到赋值给前面的变量. 2. 不在for中. 判断xxx是否出现在str中. '''