老男孩python学习_day003知识点

时间:2022-05-19 21:52:58

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