1.数据类型
Python中常用的数据类型有多种,如下:
整数(int) ,字符串(str),布尔值(bool),列表(list),元组(tuple),字典(dict),集合(set).
int。整型:数字,主要用于运算。1 ,2,3...
bool。布尔:判断真假:True, False.
str。字符串:简单少量的储存数据,并进行相应的操作。name = 'alex',
tuple。元组:只读,不能更改。(1,'xiaobai')
list。列表:大量有序数据,[1,'ses',True,[1,2,3],{'name':'xiaohei'}]
dict。字典:大量数据,且是关联性比较强的数据 {'name':'xiaohei','age':18,'name_list':['张三','李四']}
set。集合:存储大量的数据,{1,2,3}
2.基础数据类型
1. 整型 int
首先要给大家讲下是十进制与二进制之间的转换。
十进制整数转换为二进制整数
采用"除2取余,逆序排列"法。具体做法是:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
42转换二进制为 101010
二进制整数转换为十进制整数
ob0001 1010b= 1 * 2**4 + 1 * 2**3 + 0 * 2**2 + 1 * 2**1 + 0 * 2**0print(b) #26
常用的方法:
bin_lenth 用于十进制数转换成二进制的有效长度
i = 4print(i.bit_length())
#3i= 42print(i.bit_length())
#6
2.布尔
布尔值就两种:True,False。就是反应条件的正确与否。
真 1 True。
假 0 False。
其他数据类型转换成布尔数据的假的数据
整形 :0
字符串 :“”
列表 :[]
元组: ()
字典: {}
集合:set()
3.字符串str
Python中凡是用引号引起来的数据可以称为字符串类型,组成字符串的每个元素称之为字符,将这些字符一个一个连接起来,然后在用引号起来就是字符串。
1.字符串的切片,索引
- 对字符串进行索引,切片出来的数据都是字符串类型。
索引即下标,就是字符串组成的元素从第一个开始,初始索引为0以此类推。
s1 = "蜉蝣及夕而死,夏蝉不知春秋"
print(s1[0])print(s1[3])print(s1[5])#输出结果为:
蜉
夕
死
切片就是通过索引(索引:索引:步长)截取字符串的一段,形成新的字符串(原则就是顾头不顾腚)。
a = "蜉蝣及夕而死,夏蝉不知春秋"
print(a[0:3]) #print(a[:3]) 从开头开始取0可以默认不写
print(a[2:5])print(a[:]) #默认到最后
print(a[:-1]) #-1 是列表中最后一个元素的索引,但是要满足顾头不顾腚的原则,所以取不到最后一个元素
print(a[:5:2]) #加步长
print(a[-1:-5:-1]) #反向加步长
print(a[-1:-5:-2]) #反向加步长
print(a[::-1]) #字符串反转
#输出结果为:
蜉蝣及
及夕而
蜉蝣及夕而死,夏蝉不知春秋
蜉蝣及夕而死,夏蝉不知春
蜉及而
秋春知不
秋知
秋春知不蝉夏,死而夕及蝣蜉
2.字符串常用的方法
upper() / lower() 大写与小写
v = "qwer"v2=v.upper()print(v2)#QWER
v= "QWER"v3=v.lower()print(v3)#qwer
应用:
username = input("请输入用户名")
password= input("请输入密码")
code= "qwER"code2= input("请输入验证码")if code2.upper() ==code.upper():if username == "小白" and password == "123":print("登录成功")else:print("用户名密码错误")else:print("验证码输入错误")
startswith() / endswith() 以什么开头/ 以什么结尾,返回布尔值
s = 'taifdsa'
print(s.startswith('t'))#True
print(s.startswith('tai'))#True
print(s.startswith('B',3,6))#False
replace() 替换
#replace参数的定义
replace(需要将要替换的元素,被替换成的元素,控制替换个数)
a= "为了寻找你,我住进了鸟的眼睛,可是我却迷路了"msg= a.replace("我","小白") #默认替换全部
print(msg)#为了寻找你,小白住进了鸟的眼睛,可是小白却迷路了
a= "为了寻找你,我住进了鸟的眼睛,可是我却迷路了"msg= a.replace("我","小白",1) #控制替换个数
print(msg)#为了寻找你,小白住进了鸟的眼睛,可是我却迷路了
strip() 去空白;包含空格,\t,\n
s4 = '\n小白\t's5=s4.strip()print(s5)#小白
s= 're小r白qsd's7= s.strip('reqsd')print(s7)#小r白
s4= 'rrrreee小r白qsd's5= s4.strip('reqsd')
s6= s4.strip('qrsed')print(s5)print(s6)#小r白#小r白
split() 分割,默认按照空格分割,返回一个列表
s6 = '西游记 红楼梦 三国演义'lis=s6.split()print(lis)#['西游记', '红楼梦', '三国演义']
s6= "西游记,红楼梦,三国演义"lis= s6.split(",")print(lis)#['西游记', '红楼梦', '三国演义']
s6= ':barry:nvshen:wu'
print(s6.split(':'))#['', 'barry', 'nvshen', 'wu']
可以指定分割的索引位置
s6= ':barry:nvshen:wu'
print(s6.split(":",2))#['', 'barry', 'nvshen:wu']
join() 链接
s6 = "西游记"msg= "+".join(s6)print(msg)#西+游+记
lis= ['西游记', '红楼梦', '三国演义'] #列表的元素不能出现整形,嵌套
s1 = "+".join(lis)print(s1)#西游记+红楼梦+三国演义
dic= {"吴承恩": "西游记","曹雪芹":"红楼梦"} #字典的键不能是整形
msg = "+".join(dic)print(msg)#吴承恩+曹雪芹
count() 元素出现的个数
s8 = 'sdfsdagsfdagfdhgfhgfhfghfdagsaa'
#计算a在s8中总共有多少个
print(s8.count('a'))#5
len() 计算字符串的长度
s8 = 'sdfgsf'
print(len(s8))
format() 格式化输出
#第一种用法:
msg = '我叫{}今年{}性别{}'.format('小白',25,'男')print(msg)#第二种用法:
msg = '我叫{0}今年{1}性别{2}我依然叫{0}'.format('小白', 25,'男')print(msg)#第三种用法:
a = 100msg= '我叫{name}今年{age}性别{sex}'.format(age=18,sex='男',name='小白')print(msg)
is 系列(返回布尔值)
name = 'xiaobai123'
print(name.isalnum()) #字符串由字母或数字组成
print(name.isalpha()) #字符串只由字母组成
print(name.isdecimal()) #字符串只由十进制数组成
s1= input('请输入您的金额:').strip()ifs1.isdecimal():print(int(s1))else:print('输入有误')
find 与 index:
s1 = 'barry'find :通过元素找索引,找到第一个就返回,找不到返回-1index:通过元素找索引,找到第一个就返回,找不到报错print(s1.find('a'))#1
print(s1.find('r'))#2
print(s1.find('o'))#-1
print(s1.index('r'))#2
print(s1.index('o'))#报错 substring not found
待续