小白学python系列————【Day11】数据类型的内置方法(一)

今日内容概要

  • 数据类型的内置方法

数据类型的内置方法

定义:

内置方法可以理解为每个数据类型自带的功能。
如何使用:统一使用句点符号
结构:
数据类型. 方法名()
eg: ‘jason’.字符串具备的方法()

通常快速查看数据类型的内置方法可借助编译器自动提示!!!

整型

  • 关键字:

int()

  • 整型就是整数,主要用于计算,没有内置方法
  • 类型转换

1,类型转换
正确转换:
(1).age = input()
(2).age = int(age)
(3).print(type(int(‘123’))) # 字符串 内部是纯数字情况 可以转换
报错转换:
(4).print(type(int(‘123a321’))) # 字符串里面必须是纯数字才可以转换
(5).print(type(int(‘123.33’))) # 小数点也不可以转换

2.进制转换
‘’‘十进制转其他进制’‘’
bin() 将十进制转二进制:

print(bin(150))       0b10010110          0b是二进制数的标识

oct() 将十进制转八进制:

print(oct(150))          0o226            0o是八进制数的标识

hex() 将十进制转十六进制

print(hex(150))           0x96            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

浮点型

  • 关键字:

float()

  • 类型转换

1,类型转换
正确转换:
(1).print(float(‘123’)) # 123.0
(2)print(float(‘123.12’)) # 可以识别一个小数点
报错转换:
(3)print(float(‘123a123’)) #不可以识别字母
(4)print(float(‘123.123.1.2.2.2.2.2.2’)) # 不可以识别多个小数点
2.针对布尔值的特殊情况
print(float(True)) # 1.0
print(float(False)) # 0.0
print(int(True)) # 1
print(int(False)) # 0

  • 补充和说明:python对数字不是很敏感,容易出错
a = 23.00
b = 1.2
c = a * b  
print(c)  


D:\Python36\python36.exe "E:/桌面/6.24知识点/02 数据类型的内置方法.py"
27.599999999999998

Process finished with exit code 0

字符串

  • 关键字:

str()

  • 类型转换(兼容所有数据)

1.类型转换
整型(int):print(str(123), type(str(123)))
浮点型(float):print(str(123.11), type(str(123.11)))
列表(list):print(str([1, 2, 3, 4]), type(str([1, 2, 3, 4])))
字典(dict):print(str({‘name’: ‘jason’}), type(str({‘name’: ‘jason’})))
布尔值(bool):print(str(True), type(str(True)))
元组(tuple):print(str((1, 2, 3, 4)), type(str((1, 2, 3, 4))))
集合(set):print(str({1, 2, 3, 4}), type(str({1, 2, 3, 4})))

  • 需要掌握的方法:

1.索引取值:单个字符 支持负数

s1 = 'hello jason!'
print(s1[0])         # h
print(s1[-1])        # !
print(s1[-2])        # n

2切片取值:支持多个字符,支持负数,切片的顺序默认从左往右

s1 = 'hello jason!'
print(s1[0:3])    # hel      从索引0的位置开始切到索引2的位置 顾头不顾尾
print(s1[-1:-4])  #        切片的顺序默认从左往右,相互冲突,所以无法打印
print(s1[-1:-4:-1])  # !no          可以通过第三个参数的正负一 控制方向
print(s1[-4:-1])     # son                     顾头不顾尾

3.间隔/方向

s1 = 'hello jason!'
print(s1[:])                        # 取所有值
print(s1[::2])                      # 针对整个字符串 隔一个取一个
print(s1[0:5:1])                    # hello  默认1可以不写()
print(s1[0:5:2])                    # hlo      隔一个取一个

4.统计字符串中字符的个数

s1 = 'hello jason!'
print(len(s1))                # 12 

print(len('hello jason!'))    # 12       空格也算字符

5.移除字符串首位指导的字符

name = '  jason  '
print(len(name))             # 显示会有九位数,空格也算在内
print(name.strip(), len(name.strip()))     # jason             5位数

‘’‘字符串调用内置方法 不是改变原数据 而是产生了新的数据’‘’

name = '  jason  '
res = name.strip()
print(name, len(name))        #   jason          9位数
print(res, len(res))          # jason            5位数

除了可以移除空格以外,还可移除其他符号

desc1 = '$$jason$$'
print(desc1.strip('$'))      # jason
print(desc1.lstrip('$'))     # jason$$          移到left(左边)
print(desc1.rstrip('$'))      # $$jason          移到right(右边)

举个栗子:
用户登录代码:

username = input('username>>>:').strip()  
# 先获取用户输入 再立刻移除首尾空格 最后绑定给变量名username
if username == 'jason':  # 'jason ' == 'jason'
   print('登录成功')
else:
   print('你不是jason!')

6.按照指定的字符切割字符串
使用条件:如果字符串中出现了连续的特征符号,则优先考虑使用切割操作

info = 'jason|123|read'
res = info.split('|')             
# 切割字符串之后结果是一个列表
print(res, type(res))      # ['jason', '123', 'read']  <class 'list'>

先切割后赋值

info = 'jason|123|read'
name, pwd, hobby = info.split('|')      # 解压赋值
#等价于 name, pwd, hobby = ['jason', '123', 'read']

其他用法

print(info.split('|', maxsplit=1))  
# 从左往右 只切一次 结果一就是一个列表                 ['jason', '123|read']
print(info.rsplit('|', maxsplit=1))  
# 从右往左 只切一次  结果依旧是一个列表              ['jason|123', 'read']

7.字符串大小写相关

s1 = 'Hello World 666 我是python小白'
print(s1.lower())              # hello world 666 我是python小白
print(s1.upper())             # HELLO WORLD 666 我是PYTHON小白
# 判断字符串中所有的字母是否是全小写
print(s1.islower())           # False
print('aaa'.islower())        # True
# 判断字符串中所有的字母是否是全大写 
print(s1.isupper())           # False
print('AAA'.isupper())        # True

举个栗子:验证码大小写登录

code = 'JaSon666'
print('这是网页给你返回的随机验证码:%s' % code)
confirm_code = input('请输入验证码>>>:')
if confirm_code.upper() == code.upper():  
# 统一转大写 或者小写 再做比对
   print('验证码正确')
else:
   print('验证码错误')

8.字符串的格式化输出
方式1: 等价于%s占位 没有什么优势

res1 = 'my name is {} my age is {}'
print(res1.format('jason', 18))         
# my name is jason my age is 18

方式2: 支持索引取值 并且支持重复使用

res2 = 'my name is {0} my age is {1} {0} {1} {1} {1}'
print(res2.format('jason', 18))      
# my name is jason my age is 18 jason 18 18 18

方式3: 支持关键字取值(按k取值) 并且支持重复使用

res3 = '{name} {name} {age} my name is {name} my age is {age}'
print(res3.format(name='jason', age=18))        
# jason jason 18 my name is jason my age is 18

方式4:推荐使用(******)

name = 'jason'
age = 18
print(f'my name is {name} my age is {age} {name} {age}')        
# my name is jason my age is 18

9.统计字符串中指定字符出现的次数

res = 'sdashdjasdwjjkashdjasdjqwhasjdjahdjwqhdjkasdhwsdaadadadadad'
print(res.count('j'))             # 出现9次
print(res.count('ad'))            # 出现5次

10.判断字符串的开头或者结尾

res = 'jason say ha ha ha heiheihei'
# 判断开头
print(res.startswith('jason'))           # True
print(res.startswith('j'))               # True
print(res.startswith('b'))               # False
# 判断结尾
print(res.endswith('heiheihei'))         # True
print(res.endswith('hei'))               #True
print(res.endswith('h'))                 #False

11.字符串的替换

res = 'jason jason jason NB NB NB'
# 从左往右全部替换
print(res.replace('jason', 'tony'))      # tony tony tony NB NB NB
# 从左往右替换指定个数
print(res.replace('jason', 'tony', 1))   # tony jason jason NB NB NB

12.字符串的拼接

res1 = 'hello'
res2 = 'world'
# 字符串支持加号拼接
print(res1 + res2)                      # helloworld
# 字符串支持乘号重复
print(res1 * 5)                         # hellohellohellohellohello
# join方法拼接
print(''.join(['hello', 'world', 'hahaha']))    # helloworldhahaha
print('|'.join(['hello', 'world', 'hahaha']))   # hello|world|hahaha

列表中的数据都必须是字符串类型

print('$'.join(['jason', 'say', 666]))       # 直接报错提示

13.判断字符串中是否是纯数字

print('123'.isdigit())              # True
print('123a'.isdigit())             # False
print(''.isdigit())                 # False

举个栗子:猜年龄游戏之输入年龄

age = input('age>>>:')
# 先判断是否为串数字
if age.isdigit():
	age = int(age)
else:
	print('你能不能好好输入')
# 如果输入为非数字则会提示

14.查找某个字符对应的索引值

res = 'hello world jason'
# 方法一:
print(res.index('d'))           # 10
# 方法二:
print(res.find('d'))           # 10

index与find区别:

'''index查找索引 如果没有则报错'''
print(res.index('d',0,5))       #直接报错
'''find查找索引 如果没有则返回-1'''
print(res.find('d',0,5))        # -1 

15.正文相关操作

res = 'my name is jason'
# 将所有单词首字母大写
print(res.title())               # My Name Is Jason  
# 将第一个英语的首字母大写
print(res.capitalize())          # My name is jason

列表

  • 关键字:

list()

  • 类型转换

1.类型转换
数字(整型,浮点型)不能转成列表
print(type(list(123)))
print(type(list(123.22)))
字符串可以转换列表
print(type(list(‘12jas’)), list(‘12jas’))
只有字典的键参与转换
print(type(list({‘name’:“jason”,‘pwd’:123})), list({‘name’:“jason”,‘pwd’:123}))
“”“能够被for循环的数据类型都可以转换成列表”“”

  • 需要掌握的方法:

1.索引取值(相同于字符串取索引值)

l1 = ['jason', 'kevin', 'oscar', 'tony']
print(l1[0])                   #jason
print(l1[-1])                  #tony

2.切片操作

l1 = ['jason', 'kevin', 'oscar', 'tony']
print(l1[0:3])                 # ['jason', 'kevin', 'oscar']
print(l1[:])                   # ['jason', 'kevin', 'oscar', 'tony']
print(l1[-4:-1])               # ['jason', 'kevin', 'oscar']

3.间隔/方向

l1 = ['jason', 'kevin', 'oscar', 'tony']
print(l1[::2])                 # ['jason', 'oscar']

4.统计列表中数据值的个数

l1 = ['jason', 'kevin', 'oscar', 'tony']
print(len(l1))                 # 4

作业提交

作业一:

1.基于字符串充当数据库完成用户登录(基础练习)
data_source = ‘jason|123’ # 一个用户数据
获取用户用户名和密码 将上述数据拆分校验用户信息是否正确

# 作业一:
data_source = 'jason|123'
res = data_source.split('|')
while True:
    name = input('name>>>:').strip()
    pwd = input('pwd>>>:').strip()
    if name == res[0] and pwd == res[1]:
        print('登录成功')
        break
    else:
        print('你不是jason!')

作业二

2.基于列表充当数据库完成用户登录(拔高练习) # 多个用户数据
data_source = [‘jason|123’, ‘kevin|321’,‘oscar|222’]

# 作业二
data_source = ['jason|123', 'kevin|321','oscar|222']
while True:
    name = input('name>>>:').strip()
    pwd = input('pwd>>>:').strip()
    for i in data_source:
        res = i.split('|')
        if name == res[0] and pwd == res[1]:
        # if '|'.join((name,pwd)) == i:
            print('登录成功')
            break
    else:
        print('你不是jason!')
        continue
    break
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值