首页 > 其他分享 >数据类型内置方法理论

数据类型内置方法理论

时间:2022-09-29 20:22:55浏览次数:38  
标签:内置 jason res 理论 数据类型 字符串 666 l1 print

今日内容详细

数据类型内置方法理论

我们之前所学习的每一种数据类型本身都含有一系列的操作方法,内置方法是其中最多的(自带的功能)

在python中数据类型调用内置方法的统一句式为>>>:句点符
	'jason'.字符串内置方法
 	绑定字符串的变量名.字符串内置方法
  	str.字符串内置方法
ps:数据类型的内置方法比较的多 我们如果想要掌握 不要光靠死记硬背 更多时候靠的是熟能生巧

整型内置方法与操作

1.类型转换

    int(其他数据类型)
ps:浮点型可以直接转 字符串必须满足内部是纯数字才可以
a = int(11.11)  # 11
a = int(11.57)  # 11
a = int('11')  # 11
a = int('11.11')  # 字符串中必须是纯数字才可以转  否则报错

2.进制数转换

	十进制转其他进制
    	print(bin(23))  # 0b10111
    	print(oct(23))  # 0o27
    	print(hex(23))  # 0x17
 	'''
 	数字的开头如果是0b则为二进制 0o则为八进制 0x则为十六进制
 	'''
	其他进制转十进制
    	print(int(0b10111))  # 23
    	print(int(0o27))  # 23
    	print(int(0x17))  # 23
	字符串进制数转十进制
        print(int("0b1100100", 2))  # 100
        print(int("0o144", 8))  # 100
        print(int("0x64", 16))  # 100

3.python自身对数字的敏感度较低(精确度低)

python这门语言其实真的一点都不厉害 主要是因为它背后有太多大佬
如果需要进准的计算需要借助于模块numpy.....
	s1 = 1.1
	s2 = 1
	print(s1 - s2)

image

浮点型内置方法与操作

1.类型转换

float(其他数据类型)
字符串里面可以允许出现一个小数点 其他都必须是纯数字
res = float(11)  # 11.0 <class 'float'>
res = float('11')  # 11.0 <class 'float'>
res = float('11.11')  # 11.11 <class 'float'>
res = float('1.1.1.1')  # 报错ValueError: could not convert string to float: '1.1.1.1'
res = float('abc')  # 报错could not convert string to float: 'abc'
print(res, type(res))

2.python自身对数字的敏感度较低(精确度低)

python这门语言其实真的一点都不厉害 主要是因为它背后有太多大佬
如果需要进准的计算需要借助于模块numpy.....

字符串内置方法与操作

1.类型转换

str(其他数据类型)
ps:可以转任意数据类型(只需要在前后加引号即可)

2.常用方法

2.1索引取值(起始位置0开始 超出范围直接报错)
	s1 = 'helloworld'
	print(s1[0])  # h
	print(s1[-1])  # d  支持负数 从末尾开始
2.2切片操作
	print(s1[1:5])  # 顾头不顾尾 从索引1一直切取到索引4
	print(s1[-1:-5])  # 默认的顺序是从左往右 虽然不会报错但并不会打印出想要的结果
	print(s1[-5:-1])  # 默认的顺序是从左往右 倒数第五个到倒数第二个 worl
2.3修改切片方向(间隔)
	print(s1[1:5:1])  # 步长默认是1 从索引1开始一步一步一直切取到索引4  运行ello
	print(s1[1:5:2])  # 步长改为2 从索引1开始到索引4 每个索引值步长差为2  运行el
	print(s1[-1:-5:-1])  # 修改了顺序 从末尾索引-1开始步长为-1到索引-4 运行dlro
	print(s1[:])  # 不写数字就默认都要 运行helloworld
	print(s1[2:])  # 从索引2开始往后都要 运行lloworld
	print(s1[:5])  # 从索引0开始往后要到4 运行hello
	print(s1[::2])  # 全都要但步长为2 运行hlool
2.4统计字符串中字符的个数

len()返回字符串、列表、字典、元组等长度。

	print(len(s1))  # 10
2.5移除字符串首尾指定的字符

strip() 方法用于移除字符串头尾指定的字符
括号内不写 默认移除首尾的空格

username = input('username>>>:').strip()
# username = username.strip()  # 这个步骤可以省略直接在输入用户名的时候就可以移除首尾误打的空格符号
if username == 'jason':
    print('登录成功')
res = '  jason  '  # 首尾各有两个空格字符个数9
print(len(res))  # 字符个数9
print(len(res.strip()))  # 去除了首尾的空格后字符个数5
res1 = '$$jason$$'
print(res1.strip('$'))  # jason  去除首尾$字符
print(res1.lstrip('$'))  # jason$$ lstrip去除左边的$字符
print(res1.rstrip('$'))  # $$jason rstrip去除右边的$字符
2.6切割字符串中指定的字符

split()可以对任意string型的字符串,文字,按照指定的规则(文字,符号等)进行分割,并返回list值。

res = 'jason|123|read'
print(res.split('|'))  # ['jason', '123', 'read']  该方法的处理结果是一个列表
name, pwd, hobby = res.split('|')
print(res.split('|', maxsplit=1))  # ['jason', '123|read']  从左往右切指定个数
print(res.rsplit('|', maxsplit=1))  # ['jason|123', 'read']  从右往左切指定个数
2.7字符串格式化输出

format()格式化输出把传统的%替换为{}来实现格式化输出

format玩法1:等价于占位符
res = 'my name is {} my age is {}'.format('jason', 123)
print(res)  # my name is jason my age is 123
format玩法2:索引取值并支持反复使用
res = 'my name is {0} my age is {1} {0} {0} {1}'.format('jason', 123)
print(res)  # my name is jason my age is 123 jason jason 123
format玩法3:占位符见名知意
res = 'my name is {name1} my age is {age1} {name1} {age1} {name1} '.format(name1='jason', age1=123)  # 跟索引取值异曲同工 不同就是见名知意
print(res)
format玩法4:推荐使用(******)
推荐使用不用提前定义好数值,当情况而定自定义数值
name = input('username>>>:')
age = input('age>>>:')
res = f'my name is {name} my age is {age}'
print(res)

3.需要了解的方法

3.1大小写相关

upper()作用于字符串中的小写字母转为大写字母。
lower()将字符串中的所有大写字母转换为小写字母

res = 'hElLO WorlD 666'
print(res.upper())  # HELLO WORLD 666 字符串全部转换成大写
print(res.lower())  # hello world 666 全部全部转转换成小写
'''图片验证码:生成没有大小写统一的验证码 展示给用户看
   获取用户输入的验证码 将用户输入的验证码和当初产生的验证码统一转大写或者小写再比对
'''
code = '8Ja6Cc'
print('展示给用户看的图片验证码', code)
confirm_code = input('请输入验证码').strip()
if confirm_code.upper() == code.upper():  # 将输入的验证码和当初产生的验证码统一转大写或者小写比对
    print('验证码正确')
else:
    print('验证码错误')
res = 'hello world'
print(res.isupper())  # 判断字符串是否是纯大写  False
print(res.islower())  # 判断字符串是否是纯小写  True
3.2判断字符串中是否是纯数字

isdigit()方法检测字符串是否只由数字组成,只对 0 和 正数有效。
如果字符串只包含数字则返回 True 否则返回 False

res = '0'
print(res.isdigit())  # True
guess_age = input('guess_age>>>:').strip()  # 输入年龄 并移除首尾误打出的空格
if guess_age.isdigit():  # 判断输入的年龄是否是纯数字
    guess_age = int(guess_age)  # 条件成立 将输入的数值转换成整型
else:
    print('年龄都不知道怎么输吗???')
3.3替换字符串中指定的内容

Replace()是把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。

res = 'my name is qyf qyf qyf qyf qyf qyf'
print(res.replace('qyf', '666'))  # my name is 666 666 666 666 666 666
print(res.replace('qyf', '333', 3))  # my name is 333 333 333 qyf qyf qyf  从左往右替换指定个数内容  从左往右替换指定个数内容
3.4字符串的拼接

join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串

ss1 = 'hello'
ss2 = 'world'
print(ss1 + '$$$' + ss2)  # hello$$$world
print(ss1 * 10)  # hellohellohellohellohellohellohellohellohellohello
print('|'.join(['jason', '123', 'read', 'JDB']))  # jason|123|read|JDB
print('|'.join(['jason', 123]))  # 参与拼接的数据值必须都是字符串 否则会报错!!!
3.5统计指定字符出现的次数

count()统计在字符串/列表/元组中某个字符出现的次数,可以设置起始位置或结束位置。

res = 'hello world lalla'
print(res.count('l'))  # 6
print(res.count('l', 4))  # 4
print(res.count('l', 5, 13))  # 2
3.6判断字符串的开头或者结尾

startswith()判断字符串是否以指定字符或子字符串开头
endswith()用于判断字符串中某段字符串是否以指定字符或子字符串结尾

res = 'jason say hello'
print(res.startswith('jason'))  # True
print(res.startswith('j'))  # True
print(res.startswith('jas'))  # True
print(res.startswith('a'))  # False
print(res.startswith('son'))  # False
print(res.startswith('say'))  # False
print(res.endswith('o'))  # True
print(res.endswith('llo'))  # True
print(res.endswith('hello'))  # True
3.7其他方法补充

title( )返回'标题化'的字符串,就是单词的开头为大写,其余为小写
capitalize()它以大写形式返回字符串其中句子的第一个字符为大写其余字符为小写
swapcase()用于对字符串的大小写字母进行转换
index()用于从列表中找出某个值第一个匹配项的索引位置 如果没有找到对象则抛出异常
find()函数就是实现检索字符串,并且输出运算值,没有的直接返回-1

res = 'helLO wORld hELlo worLD'
print(res.title())  # Hello World Hello World
print(res.capitalize())  # Hello world hello world
print(res.swapcase())  # HELlo WorLD HelLO WORld
print(res.index('O'))  # 4
print(res.find('O'))  # 4
print(res.index('c'))  # 找不到直接报错
print(res.find('c'))  # 找不到默认返回-1
print(res.find('LO'))  # 3

列表内置方法及操作

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.需要掌握的方法

2.1索引取值(正负数)
11 = [111, 222, 333, 444, 555, 666, 777, 888]
print(l1[0])  # 111
print(l1[-1])  # 888
2.2切片操作 与字符串讲解操作一致
print(l1[0:5])  # [111, 222, 333, 444, 555]
print(l1[:])  # [111, 222, 333, 444, 555, 666, 777, 888]   全都要
2.3间隔数 方向 与字符串讲解操作一致
print(l1[::-1])  # [888, 777, 666, 555, 444, 333, 222, 111] 更改方向并全都要
2.4统计列表中数据值的个数
print(len(l1))  # 8
2.5数据值修改
l1[0] = 123
print(l1)  # [123, 222, 333, 444, 555, 666, 777, 888]
2.6列表添加数据值
方式1:尾部追加数据值
l1.append('干饭')
print(l1)  # [111, 222, 333, 444, 555, 666, 777, 888, '干饭']
l1.append(['jason', 'kevin', 'jerry'])
print(l1)  # [111, 222, 333, 444, 555, 666, 777, 888, ['jason', 'kevin', 'jerry']]
方式2:任意位置插入数据值
insert()可将给定元素插入列表中的给定索引
l1.insert(0, 'jason')
print(l1)  # ['jason', 111, 222, 333, 444, 555, 666, 777, 888]
l1.insert(1, [11, 22, 33, 44])
print(l1)  # [111, [11, 22, 33, 44], 222, 333, 444, 555, 666, 777, 888]
方式3:扩展列表 合并列表
ll1 = [11, 22, 33]
ll2 = [44, 55, 66]
print(ll1 + ll2)  # [11, 22, 33, 44, 55, 66]
extend()函数主要是用于在列表末尾一次性追加另一个序列中的多个值(即用新列表扩展原来的列表)。
ll1.extend(ll2)  # for循环+append
print(ll1)  # [11, 22, 33, 44, 55, 66]
for i in ll2:
    ll1.append(i)
print(ll1)  # [11, 22, 33, 44, 55, 66]
2.7删除列表数据
方式1:通用的删除关键字del根据索引删除;删除索引范围内的元素;删除整个列表。
del l1[0]
print(l1)  # [222, 333, 444, 555, 666, 777, 888]
方式2:remove根据元素检索删除;删除第一个出现的对应元素;确定列表种有某个元素,删除它
l1.remove(444)  # 括号内填写数据值
print(l1)  # [111, 222, 333, 555, 666, 777, 888]
方式3:pop()将列表指定位置的元素移除,同时可以将移除的元素赋值给某个变量
l1.pop(3)  # 括号内填写索引值
print(l1)  # [111, 222, 333, 555, 666, 777, 888]
l1.pop()  # 默认尾部弹出数据值
print(l1)  # [111, 222, 333, 444, 555, 666, 777]
res = l1.pop(3)
print(res)  # 444
res1 = l1.remove(444)
print(res1)  # None
2.8排序
ss = [54, 99, 55, 76, 12, 43, 76, 88, 99, 100, 33]
ss.sort()  # 默认是升序
print(ss)  # [12, 33, 43, 54, 55, 76, 76, 88, 99, 99, 100]
ss.sort(reverse=True)  # 改为降序
print(ss)  # [100, 99, 99, 88, 76, 76, 55, 54, 43, 33, 12]
2.9统计列表中某个数据值出现的次数
print(l1.count(111))  # 1
2.10颠倒列表顺序
l1.reverse()  # reverse是python一个列表的内置函数,是列表独有的,用于列表中数据的反转,颠倒
print(l1)  # [888, 777, 666, 555, 444, 333, 222, 111]

可变类型与不可变类型

s1 = '$$jason$$'
l1 = [11, 22, 33]
s1.strip('$')
print(s1)  # $$jason$$
res = s1.strip('$')
print(res)  # jason
'''
字符串在调用内置方法之后并不会修改自己 而是产生了一个新的结果
如何查看调用方法之后有没有新的结果 可以在调用该方法的代码左侧添加变量名和赋值符号
'''


ret = l1.append(44)
print(l1)  # [11, 22, 33, 44]
print(ret)  # None
'''列表在调用内置方法之后修改的就是自身 并没有产生一个新的结果'''

可变类型:值改变 内存地址不变
# l1 = [11, 22, 33]
# print(l1)
# print(id(l1))  # 2180443267776
# l1.append(44)
# print(l1)
# print(id(l1))  # 2180443267776

不可变类型:值改变 内存地址肯定变
res = '$$hello world$$'
print(res)  # $$hello world$$
print(id(res))  # 2177293876720
res1 = res.strip('$')
print(res)  # hello world
print(id(res))  # 2177298789552

作业

标签:内置,jason,res,理论,数据类型,字符串,666,l1,print
From: https://www.cnblogs.com/qian-yf/p/16741770.html

相关文章

  • 数据类型内置方法与操作
    目录一.数据类型内置方法理论二.整型int的内置方法与操作1.类型转换2.进制数转换三.浮点型内置方法与操作1.类型转换2.针对布尔值的特殊情况四.字符串float的内置方法与操......
  • java的八大基本数据类型和类型扩展
    学习中老师提到的一道经常考的笔试题java的数据类型分为两大类 (一)基本类型分为数值类型和boolean类型数值类型:byte占一个字节范围:-127-128short占两个字节范......
  • java要学到的关键字和数据类型
    java要学到的关键字在取类名和方法名时不能用这些关键字当名字//例子:在类名处就能写和上面一样的publicclass类名publicclassHelloWorld{  publicstaticvoid......
  • 数据类型内置方法
    数据类型内置方法之前我们所学习的每一种数据类型本身就含有一系列的操作方法,内置方法是其中最多的。以字符串为例,介绍一下调用内置方法的格式:print('jason'.upper())......
  • 八大基本数据类型
    //八大基本数据类型//整数intnum1=10;bytenum2=20;shortnum3=30;longnum4=30L;//Long类型要在数字后面再加个L//小数:在Java里要叫浮点数floatnum5=50.1F;/......
  • 数据类型内置方法1
    目录数据类型内置方法理论整型内置方法与操作浮点型内置方法与操作字符串内置方法与操作列表内置方法与操作可变类型与不可变类型作业数据类型内置方法理论我们之前所学......
  • Shader理论合集
    ​​Shader理论《一》渲染流水线渲染流程​​  ​​Shader理论《二》GPU流水线之几何阶段​​​​Shader理论《三》GPU流水线之光栅化阶段​​​​Shader理论《四》概述Sh......
  • 百度工程师带你探秘C++内存管理(理论篇)
    作者|daydreamer在互联网的服务中,C++常用于搭建高性能、高并发、大流量、低延时的后端服务。如何合理的分配内存满足系统高性能需求是一个高频且重要的话题,而且因为内存自......
  • Flink helloworld及理论(一)
    Flink理论flink安装我使用的是flink的单机版,过程在这:https://www.cnblogs.com/wuxiaolong4/p/16548910.htmlhelloworld      import org.apache.flink.api.s......
  • 【C语言_2】整型和浮点型数据类型
    一、整型数据类型1、整型数据类型名称及关键词   2、为什么要定义不同的整型类型?   因为不同的数据类型所占用的内存大小是不同的,他们可表示的数据范围也......