python学习Day10

Day 10

今日内容概要

  • 数据类型的内置方法
    • 整型方法
    • 浮点型方法
    • 字符串方法
    • 列表方法

今日内容详细

1.数据类型的内置方法

内置方法:每个数据类型自带的功能

'使用数据类型的内置方法统一采用句点符:
	数据类型.方法名()
    eg:
      1):'张三'.字符串具备的方法()
      2): name='张三'
          neme.字符串具备的方法()
1.整型方法
1.关键字
    int()
2.整型就是整数 主要用于计算 没有内置方法
3.转换
  int(待转换的数据)
    
  1)类型转换
  print(type(int('123'))) #结果为int 纯数字可以转换
  print(type(int('1a1'))) #结果会报错 字符不可以转换
  print(type(int('12.12'))) #结果会报错 小数点不可以转换
  print(type(int([1,2,3]))) #结果会报错 列表不可以转换,必须是纯数字
    
  2)进制转换 (二进制、八进制、十进制、十六进制)

 '十进制转其他进制'
    print(bin(100)) #bin 结果是0b1100100  十>>二
    0b是二进制数的标识
    print(oct(100)) #oct 结果是0o144  十>>八
    0o是八进制数的标识
    print(hex(100)) #hex 结果是0x64  十>>十六
    0x是十六进制数的标识
    '数字前面没有任何标识 默认就是十进制数'
    
  '其他进制转十进制'
   #自动识别转换进制数
    print(int(0b1100100))  #结果是100
    print(int(0o144))  #结果是100
    print(int(0x64))  #结果是100
   #人为指定转换进制数
    print(int('0b1100100',2))  #结果是100
    print(int('0o144', 8))  #结果是100
    print(int('0x64', 16))  #结果是100
2.浮点型方法
1.关键字
   float
2.浮点型就是小数 主要用于计算 也没有内置方法
3.类型转换
   float(待转换的数据)
    
  print(float('123')) #结果为123.0 
  print(type(float('123'))) #结果为float 
  print(float('12.12')) #结果为12.12
  print(type(float('12.12'))) #结果为float 
  print(float('12.12.12'))  #结果会报错
4.针对布尔值的特殊方法
  print(float(True))  # 1.0
  print(float(False))  # 0.0
  print(int(True))  # 1
  print(int(False))  # 0

补充说明:

a = 23.00
b = 1.2
c = a * b  
print(c)  # 27.599999999999998
"""
python对数字不敏感 很容易出错

那python为什么还能做人工智能 数据分析 金融量化?
是因为有很多模块是基于python开发的
"""
3.字符串方法
1.关键字
   str
2.类型转换
  # 类型转换:字符串可以转换所有数据类型,兼容所有数据值
    print(str(123) #整型
    print(str(123.11)  #浮点
    print(str([1, 2, 3, 4])  #列表
    print(str({'name': 'jason'})  #字典
    print(str(True)  #布尔值
    print(str((1, 2, 3, 4))  #元组
    print(str({1, 2, 3, 4})  #集合
          
3.需掌握的方法
     s1 = 'hello 张三'
  1)索引取值:单个字符
     print(s1[0]) #h
     print(s1[-1]) #三
  2)切片取值:多个字符 '顾头不顾尾'
     print(s1[:]) #打印所有
     print(s1[0:3]) #hel  从索引0的位置到索引2的位置
     print(s1[-4:-1])#0 张  从索引-3的位置到索引-1的位置
     print(s1[-1:-5:-1]) #三张 o  需第三个参数-1来控制方向才可以从右往左切
  3)间隔/方向
     print(s1[::2])#hlo张  隔一位取一个值
     print(s1[0:7:1])#hello 张
     print(s1[0:7:2])#hlo张
     print(s1[1:7:1])#ello 张
  4)统计字符串中字符的个数
     print(len(s1)) #8  需注意空格也算字符
  5)移除字符串首尾指定的字符
      eg:
          name = '  张三'
          print(name.strip())#张三
          print(len(name))#4  
      '是因为字符串调用内置方法时不是改变原数据,而是产生了新的数据。 如果想要用修改后的数据需重新绑定一个名字'
          name1=name.strip()
          print(name1)#张三
      eg:
          name = '$$张三$$'
          print(name.strip('$'))#张三 移除左右两边
          print(name.lstrip('$'))#张三$$ 只移除左边
          print(name.rstrip('$'))#$$张三 只移除右边
     案例:用户登录界面当用户输入数据时加了空格
          name=input('输入名字:').strip()#让用户输入完直接更改信息并绑定给前面的name
   6)按照指定的字符切割字符串:#切割后会成为列表
     '当字符串出现了连续的特征符号 就用切割操作'
      eg:
          xx = '张三|123|run'
          xx1 = xx.split('|')
          print(xx)#张三|123|run
          print(xx1)#['张三','123','run']
          
          xx = '张三|123|run'.split('|')
          print(xx)#['张三', '123', 'run']
          
          xx = '张三|123|run'.split('三')
          print(xx)#['张','|123|run']
          
          xx = '张三|123|run'
          name,pwd,hobby = xx.split('|')#解压赋值让name=张三,pwd=123,hobby=run
          
          xx='张三|123|run'
          print(xx.split('|',maxsplit=1))#['张三', '123|run']  
          #从左往右只切一次
          
          xx='张三|123|run'
          print(xx.rsplit('|',maxsplit=1))#['张三|123', 'run']
          #从右往左只切一次  
   7)字符串大小写转换(常见输入验证码时)
        lx = 'HeLLo66阿'
        print(lx.lower())#hello66阿
        '大写转小写'
        print(lx.upper())#HELLO66阿
        '小写转大写'
        print(lx.islower())#False
        print('aaa'.islower())#True
        '判断字符串中所有字符是否都是小写'
        print(lx.isupper())#False
        print('AAA'.isupper())True
        '判断字符串中所有字符是否都是大写'

     eg:创建一个验证码输入界面
	yzm = 'CsUp66'#创建一个固定验证码
	print('给你的验证码为:%s' % yzm)#给用户显示验证码时什么
	yzm1 = (input('请输入验证码:'))#让用户输入验证码
	if yzm.lower() == yzm1.lower():#把yzm与yzm1一起改为小写然后对比
	   print('正确')
	else:
	   print('错误')
   8)字符串的格式化输出
    方式一:等价于%s 没优势
      lx = '我的名字是{},我的年龄是{}'
      print(lx.format('张三',18))#我的名字是张三,我的年龄是18
    方式二:支持索引取值,可以重复使用
      lx = '我的名字是{0},我的年龄是{1}{0}{1}'
      print(lx.format('张三',18))#我的名字是张三,我的年龄是18张三18
    方式三:支持关键字取值(按K取值),可重复使用
      lx = '名字是{name}{name}年龄是{age}'
      print(lx.format(name='张三',age=18))#名字是张三张三年龄是18
    方法四:最常用!!
      name = '张三'
      age = 18
      print(f'名字是{name}年龄是{age}{age}')#名字是张三年龄是1818
   9) 统计字符串中指定字符出现的次数(可单可多)
      lx = 'ababdddd'
      print(lx.count('a'))#2
      print(lx.count('ab'))#2
   10)判断字符串的开头或结尾
      lx = 'hello my baby'
      print(lx.startswith('he'))#True
      print(lx.startswith('e'))#False
      print(lx.endswith('by'))#True
      print(lx.endswith('b'))#False
   11)字符串的替换
      lx = 'cat cat one one'
      print(lx.replace('cat','dog'))#dog dog one one
      #从左往右全部替换
      lx = 'cat cat one one'
      print(lx.replace('cat','dog',1))#dog cat one one
      #从左往右替换指定个数
   12)字符串的拼接
      lx1 = 'hello'
      lx2 = 'cat'
      print(lx1+lx2)#hellocat
      #容易占内存 量少可以用+
      print((lx1*2))#hellohello
      #把一个字符重复N次
        
      print(''.join(['hello','world','ha']))#helloworldha
      print('|'.join(['hello','world','ha']))#hello|world|ha
      #量多时建议使用.join 它可以自动优化内存
    13)判断字符串中是否是纯数字(常用在用户输入密码等)
      print('123'.isdigit())#True
      print('123a'.isdigit())#False
      print(''.isdigit())#False
        eg:判断用户输入的是否为纯数字
          age=input('你的年龄是:')
          if age.isdigit():
             age = int(age)
          else:
             print('必须输入纯数字')
     14)查找某个字符对应的索引值
        lx = 'hello my baby'
        print(lx.index('m'))#6
        print(lx.find('m'))#6
        print(lx.index('m',0,5))#如果在索引0~索引5之间没有则会报错
        print(lx.find('m',0,5))#-1 如果在索引0~索引5之间没有就会返回-1(没有)
     15)正文相关方法(把首字母大写)
       lx = 'my name is zhangsan'
       print(lx.title())#My Name Is Zhangsan
       #将所有首字母都大写
       print(lx.capitalize())#My name is zhangsan
       #将第一个单词首字母大写

4.列表型方法
1.关键字
   list
2.类型转换
  #能被for循环的数据类型都可以转换成列表
   print(list(123)) #整数型不可转换
   print(list(123.1)) #浮点型不可转换
   print(list(True)) #布尔值不可转换
   print(list([1,2,3])) #列表可转换 [1,2,3]
   print(list({'name':'张'})) #字典可转换 ['name']
   print(list((1,2,3))) #元组可转换 [1,2,3]
   print(list({1,2,3})) #集合可转换 [1,2,3]
3.需要掌握的方法
    lx = ['cat','tony','kevin']
  1)索引取值
    print(lx[0])#cat
    print(lx[-1])#kevin
  2)切片操作
    print(lx[0:2])#['cat', 'tony']
    print(lx[:])#['cat', 'tony', 'kevin']
    print((lx[-3:-1]))#['cat', 'tony']
  3)间隔/方向
    print(lx[::2])#['cat', 'kevin']
  4)统计列表中数据值的个数
    print(len(lx))#3
作业:
1.基于字符串充当数据库完成用户登录(基础练习)
	data_source = 'jason|123'  # 一个用户数据
  	获取用户用户名和密码 将上述数据拆分校验用户信息是否正确

2.基于列表充当数据库完成用户登录(拔高练习)  # 多个用户数据
	data_source = ['jason|123', 'kevin|321','oscar|222']
 
3.整理今日内容及博客
4.周日下午或晚上完成本周内容总结

————————————————————————————————————————————————————————————————————————————
1.基于字符串充当数据库完成用户登录(基础练习)
data_source = 'jason|123' # 一个用户数据
获取用户用户名和密码 将上述数据拆分校验用户信息是否正确
image
2.基于列表充当数据库完成用户登录(拔高练习) # 多个用户数据
data_source = ['jason|123', 'kevin|321','oscar|222']
image

posted @ 2022-06-26 16:32  逢诱  阅读(24)  评论(0)    收藏  举报