三、for int str
一. 今日内容大刚
- 基础数类型总览
- int
- bool
- str
- 索引,切片
- 常用操作方法
5.for 循环
二. 昨日内容以及作业讲解
-
pycharm 简单使用
-
while 循环
- 结构
- pass
-
格式化输出:str :让字符串的某些位置变成动态可变的,可传入的。
- % s str d digit i int r
- %%
-
编码的初识:
- 编码:密码本:二进制 与 文字的对应关系。
- ASCII:最早的密码本:二进制与 英文字母,数字,特殊字符的对应关系
01100001 a
01100010 b
'abc' : 01100001 01100010 01100011 : 3个字节 - GBK 国标: 英文.... 1个字节 中文 2个字节
- 英文字母,数字,特殊字符 ASCII
- 中文自己编写的。
'ab太白' :6个字节
- Unicode: 万国码。(兼容性高,他与任何的密码本都有映射关系)
01100001 01100001 01100001 01100001 a
01100001 01100001 01100101 01100001 中 - UTF-8:
01100001 a 使用的ASCII
01100001 01100001 欧洲.. 2字节
01100001 01100101 01100001 中 3 字节
'ab太白' 8个字节
- ASCII:最早的密码本:二进制与 英文字母,数字,特殊字符的对应关系
三.具体内容:
1.基础数据类型总览
- 编码:密码本:二进制 与 文字的对应关系。
- int 例:100,20,3 可进行 + - * / 等等
- str 例:'今天吃饭了吗' 存储少量的数据,+ ,*int 切片,其他操作方法
- boor 布尔类型 判断真假 True False
- list 例: [12, True, 'alex', [1,2,3 ]] 存储大量的数据
- tuple 例:(1,2,3,[1,2,3],'alex') 存储大量的数据,不可改变里面的元素
- dict 例: {'name':'九日天'} 存储大量的关联型的数据,查询速度非常快
- set 交集,并集,差集
2.int-
十进制 二进制 转换
'''
二进制转换成十进制
0001 1010 ------> ? 26
'''
b = 1 * 24 + 1 * 23 + 0 * 22 + 1 * 21 + 0 * 2**0
print(b) # 26 -
bit_lenth 十进制转化成二进制的有效长度
i = 4
print(i,bit_length()) # 3
i = 5
print(i,bit_length()) # 3
i = 42
print(i,bit_length()) # 4
3.bool -
bool str int 三者之间的转换
bool str int
bool <----> int
'''
True 1 False 0
非零即True 0 是 False
'''str <------> int *****
'''
s1 = '10' int(s1) : 必须是数字组成
i = 100 str(i)
'''str bool ***
非空即True
s1 = ' '
print(bool(s1)) # Trues1 = '' # 空字符串
print(bool(s1)) # Falesbool -----> str 无意义
print (str(True))
应用
s = input('请输入内容')
if s:
print('有内容')
else:
print('没有输入任何内容')
- str
-
索引切片步长
s1 = 'python全栈22期'对字符串进行索引,切片出来的数据都是字符串类型
按照索引取值
从左至右有顺序,下标,索引
s2 = s1[0]
print(s2,type(s2))s3 = s1[2]
print(s3)s4 = s1[-1]
print(s4)按照切片取值
顾头不顾尾
s5 = s1[0:6]
s5 = s1[:6]
print(s5)
s6 = s1[6:]
print(s6)切片步长
s7 = s1[:5:2]
print(s7)
print(s1[:])倒序
s8 = s1[-1:-6:-1]
print(s8)按索引:s1[index]
按照切片:s1[star_index:end_index + 1]
按照切片步长:s1[star_index:end_index + 1:2]
反向按照切片步长:s1[star_index:end_index 后延一位:2]
思考题:倒序全部取出来
s9 = s1[::-1]
print(s9) -
练习题
2.有字符串s = "123a4b5c"通过对s切片形成新的字符串s1,s1 = "123"
通过对s切片形成新的字符串s2,s2 = "a4b"
通过对s切片形成新的字符串s3,s3 = "1345"
通过对s切片形成字符串s4,s4 = "2ab"
通过对s切片形成字符串s5,s5 = "c"
通过对s切片形成字符串s6,s6 = "ba2"s = '123a4b5c'
s1 = s[:3]
print(s1)s2 = s[3:6]
print(s2)s3 = s[:7:2]
print(s3)s4 = s[1:6:2]
print(s4)
s5 = s[-1]
print(s5)
s6 = s[-3::-2]
print(s6) -
常用操作方法
s = 'taiBAifdsa'
# 字符串常用操作方法
# 不会对原字符串进行任何操作,都产生一个新的字符串
# upper 大写
# lower 小写s1 = s.upper() print(s1) s2 = s.lower() print(s2) # 应用 # username = input('user>') # password = input('passwd>') # code = 'QweR' # print(code) # # your_code = input('请输入code(不区分大小写)>') # if your_code.upper() == code.upper(): # if username == 'rjt' and password == '123': # print('登录成功') # else: # print('用户名/密码错误') # else: # print('验证码错误') # # startswith 以....开头 endswith 结尾 print(s.startswith('t')) # *** print(s.startswith('taiBAi')) # *** # 了解 print(s.startswith('B',3,6)) # index [3:6] # replace msg = 'alex 很nb,alex是老男孩教育的创始人之一,alex长得很帅' msg1 = msg.replace('alex','太白') # 默认全部替换 msg2 = msg.replace('alex','太白',2) # 从左至右 依次替换 替换两次 print(msg1) print(msg2) # strip 空白---> 空格,\t,\n str01 = ' \n太白\t' print(str01) str02 = str01.strip() # 去掉空白 print(str02) # 了解 # 可以去除指定的字符 str03 = 'rre太r白qsd' str05 = str03.strip('qrsed') print(str05) # split 非常重要 # 默认按照空格分隔,返回一个列表 # 指定分隔符 # str ----> list a = '太白 女神 吴超' l = a.split(' ') print(l,type(l)) b = '太白:女神:吴超' l = b.split(':') print(l,type(l)) # 了解: c = ':barry:nvshen:wu' print(c.split(':')) # ['', 'barry', 'nvshen', 'wu'] print(c.split(':',2)) # join 非常好用 f = 'alex' f1 = '+'.join(f) print(f1,type(f1)) # l1 = ['太白', '女神', '吴超'] # # 前提: 列表里面的元素必须都是str类型 s3 = ':'.join(l1) print(s3,type(s3)) # count 计数 str10 = 'sdfsdagsfdagfdhgfhgfhfghfdagsaa' print(str10.count('a')) # format : 格式化输出 # 用法一 msg3 = '我叫{},今年{},性别{}'.format('日九天',25,'男') print(msg3) # 用法二 msg4 = '我叫{0},今年{1},性别{2},我依然叫{0}'.format('日九天',25,'男') print(msg4) # 用法三 mgs5 = '我叫{name},今年{age},性别{sex}'.format(age = 26,sex = '男',name = '日九天') print(mgs5) # is 系列 name = 'taibai123' name1 = '100①' print(name.isalnum()) # 字符串由字母或数字组成 print(name.isalpha()) # 字符串只是由字母组成 print(name1.isdecimal()) # 字符串只有十进制组成 e1 = input('请输入金额:') if e1.isdecimal(): print(int(e1)) else: print('输入有误')
-
# s1 = '老男孩edu' # print('老' in s1) # print('老男' in s1) # print('老ed' in s1) # print('老ed' not in s1)
-
-
s1 = '老男孩教育最好的讲师:太白'
'''
老 s1[0]
男 s1[1]
孩 s1[2]
教 s1[3]
育 ....
最
...
'''
# len : 获取可迭代对象的元素总个数
print(len(s1))
s1 = '老男孩教育最好的讲师:太白'
index = 0
while index < len(s1):
print(s1[index])
index += 1
-
for 循环
'''
有限循环
for 变量 in iterable:
pass
'''
s1 = '老男孩教育最好的讲师:太白'
for i in s1:
print(i)s1 = '老男孩教育最好的讲师:太白' for i in s1: print(i) if i == '好': break
break continue
for else: while else:用法一样。