Python基础数据类型之整型,布尔值,字符串
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 1010 b = 1 * 2**4 + 1 * 2**3 + 0 * 2**2 + 1 * 2**1 + 0 * 2**0 print(b) # 26
常用的方法:
bin_lenth 用于十进制数转换成二进制的有效长度
i = 4 print(i.bit_length())
# 3
i = 42 print(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 = 100 msg = '我叫{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() if s1.isdecimal(): print(int(s1)) else: print('输入有误')
find 与 index:
s1 = 'barry' find :通过元素找索引,找到第一个就返回,找不到返回-1 index:通过元素找索引,找到第一个就返回,找不到报错 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
待续