一丶python基本数据类型
1.int 整数,主要用来进行数学运算.
2.str 字符串,可以保存少量数据并进行相应的操作
3.bool 判断真假.True.False
4.list 存储大量数据,用[]表示
5.tuple 元组,不可以发生改变 用()表示
6.dict 字典,{key:value} ,一样可以保存大量数据
7.set 集合,保存大量数据,不可以重复,其实就是不保存value的dict.
二丶整数(int)
bit_length().计算整数在内存中占用的二进制码的长度
三丶布尔值(bool)
布尔只有两个值,Ture,False 一般是没有什么操作的
类型转换问题:
把XX转换为YY: YY(XX)
数字 => 字符串 str(数字)
可以表示False的内容: 0,"",[],tuple(),{},None
所有的空都是False,所有的非空是True
四丶字符串(str)
把字符连成串,在python中用',","""引起来的内容被称为字符串
4.1:切片和索引
1.索引就是下标,从0开始
1 s1 = "python最牛B"
2 # 0123456 7 8 下标
3 print(s1[0]) #获取第一个
4 print(s1[1])
5 print(s1[2])
6 print(s1[3])
7 print(s1[4])
8 print(s1[5])
9 print(s1[6])
10 print(s1[7])
11 print(s1[8]) #获取最后一个
12 # print(s1[9]) #索引不能超过边界
13
14 print(s1[-1]) #负数为倒数 -1为倒数第一个
15 print(s1[-2]) #-2为倒数第二个
View Code
2.切片
我们可以使用下标来截取部分字符串的内容
语法: str[start:end]
规则:顾头不顾腚,从start开始截取,截取到end 位置,但不包括end
1 s2 = "python无敌BBQ"
2
3 print(s2[0:3]) #从下标零开始获取,获取到下标3,但是不包括下标3,就是获取到下标2了 ,结果为 pyt
4 print(s2[6:8])#从下标6开始获取,下标6为"无",获取到下标7,所以结果为 无敌
5 print(s2[9:11])# 顾头不顾腚,要想获取到10,必须到11 结果为 BQ
6 print(s2[9:12])#如果后面那个值超出最大下标的值,则只显示到最大坐标处 结果为 BQ
7 print(s2[4:]) #如果想直接获取到最后,那后面的那个值也可以不给 结果为 on无敌BBQ
8 print(s2[-5:-1]) # 负数为倒取,从后往前取 结果为 无敌BB
9 print(s2[-5:])# 从倒数第五个,直接获取到最好后 结果为 无敌BBQ
10 print(s2[-1]) # 取倒数第一个 结果为 Q
11 print(s2[:])# 范围不写 代表输出所有值 结果为 python无敌BBQ
View Code
3.步长
如果是整数,则从左往右取,如果是负数,则从右往左取,默认是1
语法:
str[start:end:step]
start:起始位置
end:结束位置
step:步长
1 s2 = "python无敌BBQ"
2 print(s2[1:6:2])#从下标1开始取,取到下标5,每两个取一个 结果为 yhn
3 print(s2[3:8:3])#同上,从下标3开始取,取到下标7,每三个取一个 结果为 h无
4 print(s2[4::2])#从下标4取到最后,每两个取一个 结果为 o无BQ
5 print(s2[-5::3])#从倒数下标5取到最好,每三个取一个 结果为 无B
View Code
4.2字符串相关操作
切记,字符串是不可变对象,所以任何操作对原字符串不会有任何影响的
1.大小写相互转换
1 # str字符串转换
2 s1 = "alex eggon,TaiBai*yinWang_麻花藤"
3 print(s1)
4 ret = s1.capitalize()
5 print(ret)
6 ret = s1.lower() #全部转换为小写
7 print(ret)
8 ret = s1.upper() #全部转换为大写
9 print(ret)
10 ret = s1.swapcase() #大小写互相转换
11 print(ret)
12 # 不常⽤
13 ret = s1.casefold() # 转换成⼩写, 和lower的区别: lower()对某些字符⽀持不够好.casefold()对所有字⺟都有效. ⽐如东欧的⼀些字⺟
14 print(ret)
15 s2 = "БBß" # 俄美德
16 print(s2)
17 print(s2.lower())
18 print(s2.casefold())
19 ret = s1.title() # Alex Eggon,Taibai*Yinwang_麻花藤 #特殊符号后的首字母大写
20 print(ret)
21 # 中文也算是特殊字符
22 s2 = "alex老男孩taibai"
23 ret = s2.title() #Alex老男孩Taibai
24 print(ret)
View Code
结果:
2.切片
1 #去空格
2 s3 = " alex taibai "
3
4 ret = s3.strip() #去掉两端的空格
5 print(ret)
6 ret = s3.lstrip() #去掉左边的空格
7 print(ret)
8 ret = s3.rstrip() #去掉右边的空格
9 print(ret)
10 #替换
11 s4 = "alex_taibai_taobao_eggon_xiaoniao"
12 ret = s4.replace("alex","金角大王") #把alex替换为金角大王
13 print(ret)
14 print(s4)
15 ret = s4.replace("t","T",2) #把t替换成T,替换两个
16 print(ret)
17 #切割
18 s5 = "alex_taibai_taobao_eggon_xiaoniao"
19 ret = s5.split("_") #字符串切割,根据_切割 结果为 ['alex', 'taibai', 'taobao', 'eggon', 'xiaoniao']
20 print(ret)
View Code
结果:
3.格式化输出
1 #格式化输出
2 s6 = "我叫%s,今年%d岁了,我喜欢%s"%('alex',26,'周杰伦') #之前的格式化输出
3 print(s6)
4 s6 = "我叫{},今年{}岁了,我喜欢{}" .format("alex",26,"周润发") #按位置格式化
5 print(s6)
6 s6 = "我叫{0},今年{2}岁了,我喜欢{1}" .format( "alex","周润发",26) #指定位置
7 print(s6)
8 s6 = "我叫{name},今年{age}岁了,我喜欢{singer}".format(name="alex", singer="周润发", age=28) # 指定关键字
9 print(s6)
View Code
结果:
4.查找
1 #查找
2 s6 = "我叫alex,我喜欢python,java,c等编程语言"
3 ret = s6.startswith("alex") #判断是否以alex开头
4 print(ret)
5 ret = s6.endswith("语言") #判断是否以语言结尾
6 print(ret)
7 ret = s6.count("a") #查找a出现的次数
8 print(ret)
9 ret = s6.find("叫的阿道") #查找叫 出现的位置 如果没有则返回-1
10 print(ret)
11 ret = s6.index("java") #索引"java"的位置,如果找不到,则会报错
12 print(ret)
View Code
结果:
5.条件判断
1 #条件判断
2 s7 = "123.456"
3 s8 = "abc"
4 s9 = " ad$%&89"
5 print(s7.isalnum()) #是否由字数和数字组成
6 print(s8.isalnum())
7 print(s9.isalnum())
8 print(s7.isalpha()) #是否由字母组成
9 print(s8.isalpha())
10 print(s9.isalpha())
11 print(s7.isdigit()) #是否由数字组成, 不包括小数点
12 print(s8.isdigit())
13 print(s9.isdigit())
View Code
结果:
6.计算字符串长度
1 #计算字符串长度
2
3 s10 = "alex is a page"
4 ret = len(s10)
5 print(ret)
6 # 注意: len()是python的内置函数. 所以访问方式也不一样. 你就记着len()和print()一样就行 了
View Code
7.迭代
1 #迭代
2 s11 = "我是xiaoniao,我从来都不放P"
3 a = 0
4 while a < len(s11):
5 print(s11[a]) #利用索引切片来完成字符的查找
6 a += 1
7 for c in s11: #利用for循环把s11中每一个字符拿出来 赋给c
8 print(c)
9 print("xiaoniao"in s11)
10 ''' in有两种⽤用法:
11 1. 在for中. 是把每一个元素获取到赋值给前⾯的变量.
12 2. 如果不在for中. 判断xxx是否出现在str中. '''
View Code