03、day03_基础数据类型总览,int、bool、字符串常用操作,for循环
基础数据类型总览
-
1232, 234, -123 int + - * /等等
-
'今天吃了吗','123123aaa', str 存储少量的数据:+ * 切片,其它操作方法
-
True,False, bool 判断真假
-
[12, True, 'murphy', [1,2,3]] list (列表) 存储大量的数据
-
([12, True, 'murphy', [1,2,3]]) tuple (元组) 存储大量数据,但是元组里的数据一旦填入就不能修改里面的元素
-
{'name':'张三'} dict 存储大量的关联型的数据,查询速度非常快
-
set 交集,并集,差集。。。。
int
-
主要用于计算 + - * /
-
不同的进制之间的转换。十进制,二进制(据说python有专门的转换函数,这里主要为了理解进制转换)
-
二进制转换成十进制
# 0001 1010 -----------> ? # 从左到右依次为,2的0次方,2的1次方,2的2次方...2的7次方 # 2的2次方为:2**2 b = 0*2**7 + 0*2**6 + 0*2**5 + 1*2**4 + 1*2**3 + 0*2**2 + 1*2**1 + 0 * 2**0 print(b)# 0001 1010 -----------> 26 -
十进制转换成二进制
42 --------------------> ?
每次对2取余
42 / 2 ------0
24 / 2 ------1
10 / 2 ------0
5 / 2 ------1
2 / 2 ------0
1 / 2 ------1
跟进结果从下往上读数: 101010---------补全:0010 1010
-
字符串str
字符串的切片索引
-
按索引:s1[index]
-
按切片:s1[start_index: end_index + 1]
-
按切片步长:s1[start_index: end_index + 1: 2]
-
反向按切片步长:s1[start_index: end_index + 后延一位: 2]
s1 = 'python全栈学习' # 字符串从左至右有顺序,有下标、索引的 # 对字符串进行索引,切片出来的数据都是字符串类型 ''' p y t h o n 全 栈 学 习 0 1 2 3 4 5 6 7 8 9 ''' # 按照索引取值 s2 = s1[0] # s2使用的是一个新的内存空间,他和s1没有任何关系(尽管p是从s1索引过来的) print(s2, type(s2)) s3 = s1[2] print(s3) s4 = s1[-1] print(s4) s5 = s1[-2] print(s5) # 按照切片取值 # 顾头不顾腚,比如要取0-5的值,索引要写0:6往后顺延一位 # 如果从头开始取则不用写前面的0也可以 s6 = s1[0:6] print(s6) # 如果取到最后,则不用写最后一位 s7 = s1[6:] print(s7) # 切片 步长 s8 = s1[:5:2] # 我这脑子这得备注一下: s1[0:5:2]中 0:开头首位可以省略,5:想要取的长度,2:步长,代表隔一位取一个值 print(s8) # 倒序:只要是倒序就必须加一个反向步长 s9 = s1[-1:-5:-1] print(s9) # 全取 print(s1[:]) # 倒序全取 print(s1[-1::-1])
字符串常用操作
对字符串的任何操作,都是生成一个新的字符串
-
upper lower
-
s = 'Murphy' s1 = s.upper() print(s1) s2 = s.lower() print(s2) -
# 应用示例:输入验证码时不区分大小写 username = input('用户名:') password = input('密码:') code = 'Qwer' your_code = input('验证码:') if your_code.upper() == code.upper(): if username == 'Murphy' and password == '123': print('登陆成功') else: print('验证码错误') -
startswith endswith
判断以什么为开头/结尾
s = 'Murphy' print(s.startswith('M', 0, 4)) print(s.endswith('y')) -
replace:替换
msg = 'Mikie是一个python初学者,Mikie是一个超级老帅哥,Mikie不想再迷茫了' msg1 = msg.replace('Mikie', 'Murphy') print(msg1) -
strip:去除空白
在Python中字符串处理函数里有三个去空格(包括'\n', '\r', '\t', ' ')的函数:
strip 同时去掉左右两边的空格
lstrip 去掉左边的空格
rstrip 去掉右边的空格 -
split 【非常重要】
分割,切割。默认按照空格分割 返回一个列表
s = 'Murphy 海哥 岚妹' l = s.split() print(l)返回为:['Murphy', '海哥', '岚妹']
-
join 【非常好用】
s1 = 'Murphy' s2 = '+'.join(s1) print(s2) # M+u+r+p+h+y li = ['Murphy', '海哥', '岚妹'] s = ':'.join(li) print(s) # Murphy:海哥:岚妹 -
count 【数出字符串某个字符出现的次数】
s1 = 'sdfkjlaskjfwijfadslkjfalioef' n = s1.count('f') print(n, type(n)) -
format 【格式化输出】
# 第一种用法 msg = '我叫{},今年{},性别{}'.format('Murphy', '24', '老哥哥') print(msg) # 第二种用法 msg = '我叫{0},今年{1},性别{2},我还是{0}'.format('Murphy', '24', '老哥哥') print(msg) # 第三种用法 a = 100 msg = '我叫{name},今年{age},性别{sex}'.format(age=a, sex='老哥哥', name='Murphy') print(msg) -
is系列 【判断用】
# is系列 # 判断用 name = 'Murphy123' isdigit(): # 判断字符串是否只由数字组成 print(name.isalnum()) # 字符串由字母或数字组成 print(name.isalpha()) # 字符串只由字母组成 print(name.isdecimal()) # 字符串只由十进制组成s1 = input('请输入金额:') if s1.isdecimal(): print(int(s1)) else: print('输入有误')s1 = '我用python' print('我' in s1) # True print('我用' in s1) # True print('我python' in s1) # False print('我python' not in s1) # True
for循环
-
首先用while循环做一做下题
s = '人生苦短,我用python' ''' 将字符串逐字换行打印出来: 人 s[0] 生 s[1] 苦 s[2] 短 s[3] ...... ''' # while n = 0 while n < len(s): # len()可以获取可迭代对象的元素个数,而字符串索引是从0开始,所以索引的最后一位是 len() - 1 print(s[n]) n += 1 -
接下来用for循环做一次
for 循环的基本格式:【有限循环】
for 变量 in iterable:
pass
-
s = '人生苦短,我用python' for i in s: print(i) -
可以break,continue
-
for else: 和 while else:用法一样

浙公网安备 33010602011771号