一.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 =0while index
index = index + 1
#for循环, 把s19中的每⼀一个字符拿出来赋值给前面的c
for c ins19:print(c)'''in有两种用法:
1. 在for中. 是把每一个元素获取到赋值给前面的变量.
2. 不在for中. 判断xxx是否出现在str中.'''