Python基础部分:9、数据的类型和内置方法
一、数据类型内置方法理论
1、什么是数据内置方法
数据类型是用来记录事物状态的,而事物的状态是不断变化的(如:一个人年龄的增长(操作int类型) ,单个人名的修改(操作str类型),学生列表中增加学生(操作list类型)等),这意味着我们在开发程序时需要频繁对数据进行操作,为了提升我们的开发效率, python针对这些常用的操作,为每一种数据类型内置了一系列方法。
2、如何调用数据内置方法
在python中数据类型调用内置方法的统一句式为>>>:句点符
方式1:
数据值. # 数据值加句点符(句号)
方式2:
变量名. #绑定数据值的变量名加句点符(句号)
方式3:
str. # 数据类型加句点符(句号)
二、整型(int)内置方法与操作
1、类型转换
将其他类型的数据转换成整型
int(其他类型数据值)
条件:
1、浮点型可直接转(取整,小数点后弃除)
2、字符串必须满足内部全是纯整数值才可以
3、其余非数字类型无法转整型
2、进制数转换
1、十进制转其它进制数:
转二进制:
print(bin(需要转换十进制数值)) # 二进制数字0b开头
转八进制:
print(oct(需要转换十进制数值)) #八进制数字0c开头
转十六进制:
print(hex(需要转换十进制数值)) #十六进制0x开头
2、其它进制数转十进制:
二进制转十进制:
print(int(需要转换的二进制数值))
八进制转十进制:
print(int(需要转换的八进制数值))
十六进制转十进制:
print(int(需要转换的十六进制数值))
字符串类型数值进行数据转换时,需要括号内注明进制数
print(int(需要转的进制数,注明进制数类型))
三、浮点型(float)内置方法与操作
1、类型转换
float(其他类型数据值)
条件
1、整数型数据可直接转
2、字符串类型转换
1、必须是纯数字
2、数字内只可含有一个小数点
四、字符串(str)内置方法与操作
1、类型转换
关键词:str(需要转换类型的数据值)
条件:
1、可转任意类型的数据值(只需在前后加引号)
2、必须要掌握内置方法
1、索引取值
①正向取值
# 生成一个字符串
a1 = 'holl world'
# 索引取值第四位
print(a1[3])
# 输出结果
l # 输出结果
②末向取值
# 生成一个字符串
a1 = 'holl world'
# 输入负数,从末尾取值
print(a1[-3])
# 输出结果
r
2、切片操作
①正向切片
# 生成一个字符串
a1 = 'holl world'
# 切片0-3位 (顾头不顾尾)
print(a1[0:4])
# 输出结果
holl
②修改切片间隔
# 生成一个字符串
a1 = 'holl world'
# 切片0-10位,每格5位取值
print(a1[0:10:5])
# 输出结果
hw
③修改切片方向
# 生成一个字符串
a1 = 'holl world'
"""
取值区间默认从左至右
切片倒数第三个数值到倒数第一个数值
"""
print(a1[-3:-1])
# 输出结果
rl
④切片操作其他使用方法
# 生成一个字符串
a1 = 'holl world'
# 不写数字就默认全部都要
print(a1[:])
# 从索引2开始往后都要
print(a1[2:])
# 从索引0开始往后要到4
print(a1[:5])
# 默认切片所有数值,间隔两格取值一次
print(a1[::2])
3、统计字符串中字符个数
关键词:len()
使用方式:
# 生成一个字符串
a1 = 'holl world'
# 输入关键字 len(需要统计数字的变量名(包含空格),并打印
print(len(a1))
# 输出结果
10
4、移除字符串首尾指定字符
①表现方式
关键词:strip()
使用方式:
# 设置一个数据值,绑定变量名
name = '@@kangkang@@'
# 关键字 strip() ,去除变量名首尾相同字符
print(name.strip('@'))
# 关键字 lstrip() ,去除变量名左侧开头相同字符
print(name.lstrip('@'))
# 关键字 rstrip() ,去除变量名右侧结尾相同字符
print(name.rstrip('@'))
# 对应输出结果
kangkang
kangkang@@
@@kangkang
②具体用法
'''
设置一个变量名,绑定并获取用户输入
在获取用户输入后,添加去除首位指定字符关键字
strip() 括号内不填,默认去除“空格”
'''
name = input('请输入您的用户名>>>:').strip()
# 设置条件,用户输入关键字,即使首位带空格,任能通过验证
if name == 'kangkang':
print('验证通过')
5、切割字符串中指定字符
关键词:split()
使用方式:
# 设置一个字符串,用管道符(|)隔开关键字,并绑定变量名
stud_name = 'kang|zhang|zhao'
# 使用切割关键词 split() , 括号内填入分割符号
print(stud_name.split('|'))
# 输出结果 默认为列表
['kang', 'zhang', 'zhao']
1、可在关键字前加L或R,来控制切割方向
2、可在关键字后括号内输入maxsplit加数字,控制切割数量
例1:
# 从左侧开始切割,切割数量为1
print(stud_name.split('|', maxsplit=1))
# 输出结果
['kang', 'zhang|zhao']
例2:
# 从右侧开始切割,切割数量为2
print(stud_name.rsplit('|', maxsplit=1))
# 输出结果
['kang|zhang', 'zhao']
6、字符串格式化输出
```python
关键词:format()
1、字符串格式化输出类似于%s\%d占位符
2、可以索引取值,并支持反复使用
```
使用方式:
1、等价于占位符
'''
1、设置一段介绍,后方添加关键词
2、format后方括号按顺序填入需要的关键字
'''
message = 'my name is {} my age is {}'.format('kangkang', 18)
# 打印介绍
print(message)
# 输出结果
my name is kangkang my age is 18
2、索引取值
'''
1、设置一段介绍,关键字部位用大括号括住
2、介绍后方添加format关键词
3、format()括号内填入信息
4、支持反复使用,需要介绍处括号内按索引取值方式填入数字
'''
res = 'my name is {0} my age is {1} {0} {1}'.format('康康', 18)
# 打印
print(res)
# 打印结果
my name is 康康 my age is 18 康康 18
3、见名知意
'''
1、设置一段介绍,关键字部位用大括号括住并注明关键字
2、介绍后方添加format关键词
3、format()括号内按等号方式填入信息
'''
res = 'my name is {name} my age is {age}'.format(name= 'kangk', age = 18)
# 打印
print(res)
# 输出结果
my name is kangk my age is 18
4、常规用法--配合input使用
# 获取用户输入信息
name = input('请输入姓名>>>:')
age = input('请输入年龄>>>:')
age = int(age)
hobby = input('请输入爱好>>>:')
# 设置一段自我介绍,关键字部位使用{}括起来,并在括号内填入对应变量名
message = f'my name is {name}, my age is {age}, my hobby is {hobby}'
# 打印
print(message)
# 用户输入信息
请输入姓名>>>:kangkang
请输入年龄>>>:18
请输入爱好>>>:打球
# 打印结果
my name is kangkang, my age is 18, my hobby is 打球
7、大小写转换、纯文字判断
```python
关键词:
大写:upper()
小写:lower()
1、可以将转换数据大小写
2、可以将用户输入的大小写进行转换,进行统一
使用方式:
1、常规使用
# 输入一串英文字符(大小写穿插),绑定变量名
res = 'helLo woRlD'
# 使用大写转换关键词,并打印
print(res.upper())
# 使用小写转换关键词,并打印
print(res.lower())
# 输出结果
HELLO WORLD
hello world
2、input用法
# 设置验证码
code = '0aBcD'
# 设置给用户看到的验证码
print('请按图输入验证码:', code)
# 获取用户输入
confirm_code = input('请输入验证码:').strip()
# 设置条件,并使用关键词统一大小写
if confirm_code.upper() == code.upper():
print('验证码正确')
# 打印结果
请按图输入验证码: 0aBcD
请输入验证码:0abcd
验证码正确
3、判断字符串是否纯大、小写
# 用法于与上述基本一致
代码表示:
isupper() 判断字符串是否是纯大写 False
islower() 判断字符串是否是纯小写 True
4、判断字符串是否纯文字
代码表示:
isdigit() 判断字符串是否是纯文字 True/False
input使用方式
# 获取用户输入
guess_age = input('guess_age>>>:').strip()
# 判断文字是否纯数字
if guess_age.isdigit():
# 转换数字为整数类型
guess_age = int(guess_age)
else:
# 验证用书输入有误
print('您输入的有误,请重新输入')
8、替换字符串指定内容
关键词 : replace()
使用方式:
1、常规使用
# 自定义一串文字
res = 'my mane is kangkang'
# 使用关键词 在后方括号内添加需要替换的关键字,并填入重新修改的关键字
print(res.replace('kangkang', 'xiaoli'))
# 打印结果
my mane is xiaoli
2、指定替换个数
# 关键词(需要需改的,修改后的,修改的个数)
代码表现:
res = 'my mane is kangkang,kangkang'
print(res.replace('kangkang', 'xiaoli',1))
9、字符串的拼接
关键词:join()
使用方式:
# 参与拼接的数据值必须是字符串
# 输入拼接的字符,关键词,输入需要拼接的数据值库
print('|'.join(['123', '456', '789']))
# 打印结果
123|456|789
10、统计字符出现的次数
关键词:count()
使用方式:
# 在关键词后方括号内输入需要统计的字符
res = 'hello world'
print(res.count('l'))
# 打印结果
2
11、判断字符串开头或结尾
关键词:
开头:startswith()
结尾:endswith()
使用方法:
# 关键词后括号内输出猜测的字符
res = 'jason say hello'
print(res.endswith('o')) #开头
print(res.endswith('o')) #结尾
12、其他用法补充
关键词
1、title() 变量名内所有单词首字母大写
2、capitalize() 变量名内因为仅首字母有大写
3、swapcase() 变量名内所有单词大小写互换
4、index() 判断字符所在位置,仅能判断第一位 ,若无报错
5、index() 判断字符所在位置,仅能判断第一位 ,若无False
五、列表(list)内置方法与操作
1、类型转换
关键词:list(其他数据类型)
条件:
ps:能够被for循环的数据类型都可以转成列表
print(list('hello'))
print(list({'name': 'jason', 'pwd': 123}))
print(list((1, 2, 3, 4)))
print(list({1, 2, 3, 4, 5}))
2、需要掌握方法
1、索引取值
与字符串基本一致
11 = [111, 222, 333, 444, 555, 666, 777, 888]
print(l1[0])
print(l1[-1])
2、切片操作
与字符串基本一致,切片方向与字符串基本一致
11 = [111, 222, 333, 444, 555, 666, 777, 888]
print(l1[0:5])
print(l1[:])
3、数值修改
11 = [111, 222, 333, 444, 555, 666, 777, 888]
l1[0] = 123 # 0位数据值修改为123
4、统计列表数据个数
与字符串方法基本一致
关键词:len()
11 = [111, 222, 333, 444, 555, 666, 777, 888]
print(len(l1)
5、列表添加数据值
①、尾部添加
关键词:append()
11 = [111, 222, 333, 444, 555, 666, 777, 888]
l1.append(999) # 括号内填写需要插入的数据值
print(l1)
# 输出结果 [111, 222, 333, 444, 555, 666, 777, 888, 999]
②、任意位置添加
关键词:insert()
11 = [111, 222, 333, 444, 555, 666, 777, 888]
l1.insert(0, '999') # 按索引插入数值
print(l1)
# 输出结果 [999, 111, 222, 333, 444, 555, 666, 777, 888]
6、扩展列表 合并列表
关键词:extend()
# 设置两个列表,赋予变量名
a1 = [11, 22, 33]
b2 = [44, 55, 66]
# 使用关键词合并列表
a1.extend(b1)
# 输出结果
[11, 22, 33, 44, 55, 66]
7、删除列表数据
①方式一:
关键字:del
使用方法:
a1 = [111, 222, 333, 444, 555, 666, 777, 888]
del a1[0] # 按索引填写需要删除的数值
②方式二:
关键词:remove()
使用方法:
a1 = [111, 222, 333, 444, 555, 666, 777, 888]
a1.remove(444) # 填写需要删除的数值
# 特点:
1、括号内数据直接删除
③方式三:
关键词:pop()
使用方法:
a1 = [111, 222, 333, 444, 555, 666, 777, 888]
a1.pop(3) # 括号内填写索引值
# 特点:
1、按索引弹出数值
1、括号内不填写默认弹出尾部数值
2、弹出数值不会被直接删除,可设置变量名接收
8、列表排序
关键词:
1、升序:sort()
2、降序:sort(reverse=True)
使用方法:
count = [55, 33, 11, 44, 22]
count.sort() # 默认是升序
count.sort(reverse=True) # 降序
# 输出结果
[11, 22, 33, 44, 55]
[55, 44, 33, 22, 11]
9、统计列表中某个数值出现次数
关键词:count()
使用方法:
# 设置一个数据值列表,绑定变量名字
ct_ = [11, 22 ,11, 44, 11]
print(ct.count(11)) # 输入需要统计的数值
10、颠倒列表顺序
关键词:reverse()
使用方法:
# 设置一个数据值列表,绑定变量名字
ct_ = [11, 22 ,33, 44, 55]
ct_.reverse() # 设置需要颠倒的列表
# 打印结果
[55, 44, 33, 22, 11]
六、可变与不可变类型
1、可变类型
列表、集合、字典(可以进行更改,并且更改后物理地址不会发生改变)
2、不可变类型
数字、字符串、元组(不可以进行更改,更改后就是一个新的对象了,物理地址发生了变化)
练习
第一题:
data_source = ['jason|123', 'kevin|321', 'oscar|222']
count = 0
while True:
name = input('请输入您的用户名:')
password = input('请输入您的密码:').strip()
if count == 2:
break
if name == data_source[0].split('|')[0] and password == data_source[0].split('|')[1] or name == data_source[1].split('|')[
0] and password == data_source[1].split('|')[1] or name == data_source[2].split('|')[1] and password ==
data_source[2].split('|')[1]:
print('登录成功')
break
else:
print('用户名或密码错误,请重新输入')
count += 1