老男孩python学习_day003知识点
1.数据类型
1) int: 1,2,3
用于计算。
2) bool:True,False
用户判断。
3) str: 'fjdsal' '二哥','`13243','fdshklj'
'战三,李四,王二麻子。。。。'
存储少量数据,进行操作。
4) list:[1,2,3,'泰哥','12353234',[1,2,3]]
储存大量的数据。
5) 元祖:(1,2,3,'第三方',)
只读。
6) dict:字典{'name':'云姐','age':16}
字典{'云姐':[],'二哥':[200,200,200,。。。。。。]}
7) 集合:{1,2,34,'asdf'}
2.int
ctrl+左:查看类、方法
》i=5
print(i.bit_length()) --->3 # 转换成二进制后最小位数
bit_length
1 0000 0001 1
2 0000 0010 2
3 0000 0011 2
3.bool
1) int ----> str
i = 1
s = str(i) # 无条件
2) str ----> int
s = '123'
i = int(s) # 只能是数字
3) int ----> bool
i = 3
b = bool(i) # 只要是0-->False,非0就是True
4) bool----> int # True-->1,False-->0
PS:while True:
pass
while 1: # 效率高
pass
5) str ---> bool
s = "" ---> False
s = "0" ---> True # 非空字符串都是True
列表、字典都可转换成bool值。
4.str
#字符串的索引与切片
s = 'A B C D E F G'
0 1 2 3 4 5 6
-7 -6 -5 -4 -3 -2 -1
1) 索引:
S1 = S[0] --> A
S2 = S[2] --> C
S3 = S[-1] --> G
S4 = S[-2] --> F
2) 切片:
S5 = S[0:3] -->ABC # 顾头不顾尾
全取: S5 = S[0:]
S6 = S[ : ]
跳着取: S[首:尾:步长]
S7 = S[0:5:2] --> ACE
倒着取: S8 = S[4:0:-1] --> EDCB #取不到A
S9 = S[3: :-1] --> DCBA #能取到A
倒+跳 : S10= S[3: :-2] --> DB
倒取完: S11= S[-1::-1]
S12= S[ ::-1] --> GFEDCBA
#字符串的操作
s = 'a b c D E f'
1) 首字母大写,其他全小写:
s1 = s.capitalize() --> Abcdef
2) 全大写:
s2 = s.upper() --> ABCDEF
3) 全小写:
s3 = s.lower() --> abcdef
4) 输入验证码,不区分大小写:
》s = 'acEQ1'
you = input('请输入验证码,不区分大小写')
if s.upper() == you.upper():
print('输入成功')
else:
print('请重新输入')
5) 大小写翻转:
s4 = s.swapcase() --> ABCdeF
6) 每个隔开(特殊字符或者数字)的单词首字母大写:
》s = 'alex*egon-wusir'
s5 = s.title()
print(s5) --> Alex*Egon-Wusir
》s = 'fade,crazy*w4rri0r_songsong node_3'
s6 = s.title()
print(s6) --> Fade,Crazy*W4Rri0R_Songsong Node_3
7) 居中,空白填充:
s7 = s.center(20,'~')--> ~~~~~~~abcDEf~~~~~~~
8) \t:
前边0~3个字符时,用空格补齐到4个
前边4~7个字符时,用空格补齐到8个
前边8~11个字符时,用空格补齐到12个
.......
9) 公共方法 查元素个数:
s = '1234567'
l = len(s) --> 7
s = '12as二哥'
l = len(s) --> 6
10) 判断是否是以什么为开头结尾
》s = 'alexWUsir'
s8 = s.startswith('alex') --> True
s9 = s.startswith('e',2,5) --> True # 可结合切片,空默认全部
结尾 endswith
》if s8:
pass
elif s.startswith('bl'):
pass
11) 寻找元素对应下标:
find() : s = 'abcd'
s1= s.find('b') --> 1
s2= s.find('bc') --> 1 # print(s2,type(s2)) --> 1<class'int'>
find 通过元素找索引,找不到返回-1
可结合切片
index(): index通过元素找索引,找不到报错
首选find()
12) 去空格:
strip(): 默认删除前后空格,也可用来删指定元素,前后同时进行,直到卡住。
s = '*a%bcd%'
s1= s.strip('%*') --> a%bcd #与顺序无关,a后的%被a卡住过不来
rstrip(): 从右删
lstrip(): 从左删
》username = input('请输入名字:').strip() #名字前后误输入空格也可识别
13)数个数,返回个数,可结合切片:
s.count('a')
s.count('ab')
14)分割,拆分【用于数据类型转换str-->list列表】:
》s = ';abc;def;gh'
s1 = s.split(';') --> ['','abc','def','gh']
若是以空格分,则split()里面什么都不加。
以什么分,结果里什么就没了。
》s = ';alex;wusir;taibai'
s2 = s.split('a') --> [';','lex;wusir;t'.'ib','i']
15) format的三种玩法 格式化输出:
》s = '我叫{},今年{},爱好{},再说一下我叫{}'.format('太白',36,'girl','太白')
print(s)
》name = input('请输入名字:')
s = '我叫{0},今年{1},爱好{2},再说一下我叫{0}'.format(name,36,'girl')
print(s)
》name = input('请输入名字:')
s = '我叫{name},今年{age},爱好{hobby},再说一下我叫{name}'.format(age=18,name=name,hobby='girl') # 顺序可打乱
print(s)
16) 替换:
s = '123ab456ab789'
s1= s.replace('ab','cd') --> 123cd456cd789 # 默认全替
s2= s.replace('ab','cd',1) --> 123cd456ab789 # 替换一次
17) is系列:
name = 'jinxin123'
print(name.isalnum()) # 判断字符是否由字母或数字组成
print(name.isalpha()) # 判断字符是否只由字母组成
print(name.isdigit()) # 判断字符是否只由数字组成
返回T/F
5.for循环
s = 'abcdef'
for i in s:
print(i) -->abcdef # 竖着
6.if ...in...
s = 'abcsbdef'
if 'sb' in s:
print('有敏感词') # 也可not in