Day03 课程大纲
一.今日内容大纲
1. 基础数据类型总览
2. int
3. bool
4. str
-
索引,切片
-
常用操作方法
5. for 循环
二.昨日内容以及作业讲解
-
Pycharm 简单使用
ctrl + d ,ctrl + ?continue :代表底部并返回判断条件
-
while 循环
1.结构
2.pass
-
格式化输出:str:让字符串的某些位置变成动态可变的,可传入的。
1. % , s(str) ,d(digit),i(int)
2.单纯表示百分号: %%
-
编码的初识:
-
编码: 密码本: 二进制与文字的对应关系
-
ASCII:最早的密码本:二进制 与 英文字符,数字,特殊字符的对应关系
01100001 a
01100010 b
'abc':01100001 01100010 01100101:三个字节
-
GBK国标:
- 英文字符,数字,特殊字符,完全沿用ASCII
- 中文自己编写的,一个中文占2个字节
'ab太白':6个字节
-
Unicode:万国码。兼容性高,与任何密码本都有映射关系
01100001 01100001 01100001 01100001 a
01100001 01100001 01100001 01100001 中
-
UTF-8:
01100001 a 使用的ASCII
01100001 01100001 欧洲 葡萄牙文等(2个字节)
01100001 01100001 01100001 中文(3个字节)
'ab太白':8个字节
-
-
三.具体内容
-
基础数据类型总览:
- 123 1234 3348 int 加减乘除
- '今天吃了没' str 存储少量数据 加,乘数字(遍数) 切片,其他操作方法
- True False bool 判断真假
- [12,True,'alex',[1,2,3]] list 存储大量的数据
- (12,True,'alex',[1,2,3]) tuple ** 存储大量**的数据 不可改变里面的变量
- {'name':'太白金星'} dict 存储大量的关联型数据,查询速度非常快。
- set 交集,并集差集
-
int
-
主要用于运算 加减乘除
-
不同进制的转换,十进制,二进制
-
二进制转换成十进制 (从后往前,2的0次方到2的7次方)
0001 1010------->26 b=0*2^0+1*2^1+0*2^3+1*2^4+1*2^5 print(b)=26
-
十进制转换成二进制(除以2的余数,逆序排列)
42-------->0010 1010
-
-
i.bit_length():二进制的有效长度
i = 4 print(i.bit_lenfth()) #3
-
-
bool : 非0即True,0是False
-
str
-
str ----> int:
s1 = 10 int(s1)#必须是数字 i = 100 str(i)
-
str- ----> bool
s1 = ' ' #空格 print(bool(s1)) #True s1 = '' #空字符串 print(bool(s1)) #False
s = input('请输入内容') #字符串可以转换成bool值,可以充当if条件 if s: print('有内容') else: print('没有输入任何内容')
-
str 取值
s1 = 'Python全栈22期' # 01234567891011 #对字符串进行索引,切片出来的数据都是字符串类型。 #按照索引取值 #从左至右有顺序,下标,索引,012345 # s2 = s1[0] # print(s2,type(s2)) # s4 = s1[-1] # print(s4)
-
按照切片取值
#按照切片取值 #顾头不顾腚 # s5 = s1[0:5] # print(s5) #pytho # s5 = s1[0:6] # print(s5) #python # s6 = s1[6:-1] # print(s6) #全栈22 # s6 = s1[6:] # print(s6) #全栈22
-
切片步长
s7 = s1[:5:2] #步长2 print(s7)
-
倒叙
#倒序: s8 = s1[-1:-5] print(s8) #不报错 但 取不出 s8 = s1[-1:-6:-1] #往左加1位,不是-5 是-6 print(s8) #按索引:s1[index] #按照切片:s1[start_index;end_index+1] #按照切片步长:s1[start_index;end_index+1:2] #反向按照切片步长:s1[start_index;end_index后延一位:2]
-
思考题:能否倒序全部取出???
-
练习题:
1.有字符串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" 能否倒序全部取出???
-
-
字符串的常用操作方法
- upper lower:
-
s = 'taiBai中国' #字符串的常用操作方法 #upper lower #s1与原字符串无关,不会对原字符串产生任何操作,都是产生一个新的字符串 s1 = s.upper() print(s1) s1 = s.lower() print(s1,type(s1))
-
应用
username = input('用户名:') password = input('密码:') code = 'QWer' your_code = input('请输入验证码,不区分大小写') if your_code.upper() == code.upper(): #统一大小写 if username == '353913575' and password == 'daaipengge123': print('登陆成功') else: print('用户名或密码错误') else: print('验证码错误')
-
startswith endswith:
s = 'taiBai' print(s.startswith('t')) *** print(s.startswith('taiBai'))*** 了解 print(s.startswith('B',3,6)) # 3--6是否以B为开头 replace msg = 'alex 很nb,alex是老男孩教育的创始人之一,alex长得很帅' msg1 = msg.replace('alex','太白',2) # 从左至右替换2个alex print(msg) #alex 很nb,alex是老男孩教育的创始人之一,alex长得很帅 print(msg1) #太白 很nb,太白是老男孩教育的创始人之一,alex长得很帅
-
strip: 空白:空格, (tab制表符) , (换行)
s4 = ' 太白 ' print(s4) s5 = s4.strip() # 去除换行符制表符 print(s5)
-
了解
#可以去除指定的字符 s4 = 'rre太rr白qsd' s5 = s4.strip('qsdre') #不需要去除 print(s5) #太rr白
-
-
split 非常重要********
-
默认按照空格分隔,返回一个列表
-
指定分隔符
-
str ------> list
s6 = '太白 女神 吴超' l = s6.split() print(l) #['太白', '女神', '吴超'] s6 = '太白:女神:吴超' #指定 ':' 为分隔符 l = s6.split(':') print(l) #['太白', '女神', '吴超'] 了解: s6 = ':barry:nvshen:吴超' print(s6.split(':')) #['', 'barry', 'nvshen', '吴超'] 第一个 空字符串 print(s6.split(':',2)) #['', 'barry', 'nvshen:吴超'] #按前两个分割
-
-
join 非常好用(字符串类型)
s1 = ['太白', '女神', '吴超'] s2 = '+'.join(s1) #iterable 可迭代字符,由多个元素组成 print(s2,type(s2)) # 太白+女神+吴超 <class 'str'> s3 = ':'.join(s1) # 太白:女神:吴超 print(s3)
-
count 计数
s8 = 'djhasgdjasjhghfgklakajasdjfagh' print(s8.count('a'))
-
format 格式化输出
第一种方法: msg = '我叫{}今年{}性别{}'.format('大壮','25','男') # {}代表%,无空格 print(msg) 第二种方法: msg = '我叫{0}今年{1}性别{2}我依然叫{0}'.format('大壮','25','男') #带索引 print(msg) 第三种方法: msg = '我叫{name}今年{age}性别{sex}'.format(name = '大壮',age = '25',sex = '男') #不要求顺序
-
is 系列
name = 'taibai123' name1 = '100' print(name.isalnum()) #字符串由字母或数字组成 print(name.isalpha()) # #字符串只由字母组成 print(name.isdecimal()) # #字符串只由十进制数字组成 s1 = input('请输入您的金额:') if s1.isdecimal(): print(int(s1)) else: print('输入有误')
-
-
for 循环:
-
in
s1 = '老男孩edu' print('老'in s1) #True print('老男' in s1) #True print('老ed' in s1) #False 整体 print('老ed' not in s1) #True
-
len
# len: 获取可迭代对象的元素总个数 s1 = '老男孩教育最qweqwdasdasd好的讲师:太白'#12 ''' 老 s1[0] 男 s1[1] 孩 s1[2] 教 s1[3] 育 s1[4] 最 s1[5] ..... ''' #0~12 print(len(s1)) index = 0 while index < len(s1): print(s1[index]) index += 1
-
for 循环
''' 有限循环 for 变量 in iterable: #iterable可以是字符串 可以是列表..... pass ''' s1 = '老男孩教育最好的讲师:太白' # for i in s1: # print(i) # 到'讲'为止 for i in s1: print(i) if i == '讲': break # break continue # for else == while else
- break continue
- for else == while else(中断就不else)
-