首页 > 编程语言 >Python基础7

Python基础7

时间:2022-09-29 20:37:38浏览次数:53  
标签:name Python res s1 基础 jack l1 print

今日内容概要

  • 数据类型内置方法理论

  • 整型相关操作

  • 浮点型相关操作

  • 字符串相关操作

  • 列表相关操作

  • 可变与不可变

今日内容详细

数据类型内置方法理论

数据类型的内置方法,数据类型我们知道总共有八种,但是每个数据类型中间还有一些内置元素,接下来我们一一介绍每一个的用法。 内置方法可以简单的理解成是每个数据类型自带的功能(每个人的不同特长)

在python中数据类型调用内置的方法统一的句式为:句点符
# 使用方法
	'jack'.字符串内置方法  # 直接使用字符串使用内置方法
    name = 'jack'
    name.字符串内置方法  # 也可以使用绑定了字符串的变量名
    str.字符串内置方法
'''数据类型的内置方法比较多,如果想要掌握,不能光靠死记硬背,更多的时候靠的是熟能生巧'''

整型内置方法与操作

类型转换(将其他数据类型转换成整型)

# 使用方法
int(其他数据类型)

# 举例
print(int('11'))
print(int(11.11))

# 输出结果
11
11

'''注意浮点型可以直接转,字符串转换成整型需要内部是纯数字'''

进制数转换

十进制转换其他进制
	print(bin(100))   # 转换成二进制  0b1100100
	print(oct(100))   # 转换成八进制  0o144
	print(hex(100))   # 转换成十六进制  0x64
    
'''数字的开头如果是0b则为二进制 0o则为八进制 0x则为十六进制'''
    
其他进制转换十进制
	int(其他进制)
	print(int(0x64))  # 100
    
当要转换的进制为字符串时需要添加条件告诉int要这是什么进制
	print(int('0x64'))        # 错误方法  ValueError: invalid literal for int() with base 10: '0x64'
	print(int('0x64', 16))  # 100
  • Python自身对数字的敏感度较低(精确度低)

    num1 = 1.1
    num2 = 1
    
    print(num1 - num2)  # 0.10000000000000009
    
    '''如果需要进行精准的计算需要借助于模块numpy.....'''
    

浮点型内置方法与操作

类型转换

float(其他数据类型)

和整型转换同理,可以是字符串但内部得是纯数字							

print(float(123))				 # 123.0
print(float('123')) 			 # 123.0
print(type(float('123'))) 		 # float
print(float('123a123'))			 # 转换不了字符串 报错
print(float('123.12')) 			 # 可以识别一个小数点
print(float('123.123.1.2.2.2.2.2.2'))  # 不能识别多个小数点哦

字符串内置方法与操作

类型转换

​ 字符串类型能够转换的类型就多了8种类型都能转换,原理就是将所以数据值打上一个引号即可。

str(其他数据类型)

print(str(123), type(str(123)))
# 123 <class 'str'>
print(str(123.11), type(str(123.11)))
# 123.11 <class 'str'>
print(str([1, 2, 3, 4]), type(str([1, 2, 3, 4])))
# [1, 2, 3, 4] <class 'str'>
print(str({'name': '张三'}), type(str({'name': '张三'})))
# {'name': '张三'} <class 'str'>
print(str(True), type(str(True)))
# True <class 'str'>
print(str((1, 2, 3, 4)), type(str((1, 2, 3, 4))))
# (1, 2, 3, 4) <class 'str'>
print(str({1, 2, 3, 4}), type(str({1, 2, 3, 4})))
# {1, 2, 3, 4} <class 'str'>

索引取值

s1 = 'hello world'
# 索引取值起始位置从0开始,超出报错,并且支持负数
print(s1[0])   # h
print(s1[-1])  # d
print(s1[11])  # IndexError: string index out of range

切片操作

s1 = 'helloworld'

print(s1[0:3]) 		 # hel  从索引0的位置开始切到索引2的位置 顾头不顾尾
print(s1[-1:-4]) 	 # 错误写法 切片的顺序默认从左往右 什么都不打印
print(s1[-4:-1])  	 # rld  顾头不顾尾

# 修改切片方向以及间隔
print(s1[1:4:2])    # el 第三个参数不写默认为1 
print(s1[-1:-4:-1])  # dlr 可以通过第三个参数的正负一 控制方向

# 其他写法
print(s1[:])  # 不写数字就默认都要
print(s1[2:])  # 从索引2开始往后都要
print(s1[:5])  # 从索引0开始往后要到4
print(s1[::2])  # 从索引0开始间隔2取值

统计字符串中字符个数

len(字符串) 
s1 = 'hello world'
print(len(s1))  # 11

移除字符串首尾指定的字符

.trip

name = ' jack '
print(name.strip())      # 括号内不写默认移除首尾的空格

name = '$$jack$$'
print(name.strip('$'))    # jack

# 移除开头指定字符
print(name.lstrip('$'))   # jack$$
# 移除末尾指定字符
print(name.rstrip('$'))   # $$jack

切割字符串中指定的字符

.split

res = 'jack|123|read'
print(res.split('|'))  # ['jack', '123', 'read']  该方法的处理结果是列表

name, pwd, hobby = res.split('|')  # 解压赋值 通过split处理后是列表,可以用解压赋值方法分别赋值

# 指定切割次数
print(res.split('|', maxsplit=1))  # ['jack', '123|read']

# 从右往左切割
print(res.rsplit('|', maxsplit=1))  # ['jack|123', 'read'] 

字符串格式化输出

# format玩法1  等价于占位符
res = 'my name is {}, my age is {}'.format('jack', 18)
print(res) # my name is jack, my age is 18
# format玩法2 索引取值并且支持反复使用
res = 'my name is {0}, my age is {1},[1]'.format('jack', 18)
print(res) # my name is jack, my age is 18, 18
# format玩法3 占位符见名知意
res = 'my name is {name}, my age is {age},[1]'.format(name='jack',age= 18)
print(res) # my name is jack, my age is 18
# format玩法4 推荐使用  可以根据输入的不同,显示不同,不用定义固定数据
name = input('请输入您的名字:')
age = input('请输入您的年龄:')
res = f'my name is {name}, my age is {age}'
print()

转换大小写与判断

s1 = 'hElLo WorLd'

# 全部转换为大写
print(s1.upper())  # HELLO WORLD
# 全部转换为小写
print(s1.lower())  # hello world

应用场景
 '''图片验证码:生成没有大小写统一的验证码 展示给用户看 获取用户输入的验证码 将用户输入的验证码和当初产生的验证码统一转大写或者小写再比对
 '''
code = '9AfhD'
print('图片验证码为:', code)
w_code = input('请输入验证码:').strip()
if w_code.upper() == code.upper():
    print('验证码正确')
else:
    print('验证码错误')
    
# 判断是否纯大写
res = 'hello world'
print(res.isupper())   # False
# 判断是否纯小写
print(res.islower())   # True 

判断字符串是否是纯数字

res = ''
print(res.isdigit())    # False

替换字符串中的指定内容

res = 'my name is jack jack jack'
print(res.replace('jack', 'cxk'))  # my name is cxk cxk cxk  默认全部替换
print(res.replace('jack', 'cxk', 1))  # my name is cxk jack jack  从左往右替换指定个数内容

字符串的拼接

s1 = 'hello'
print('|'.join(s1))  # h|e|l|l|o 
print('|'.join(['hello', 'world']))  # hello|world
'''参与拼接的数据值必须都是字符串'''

统计指定字符出现的次数

s1 = 'hello world'
print(s1.count('l'))   # 3

判断字符串的开头或结尾

s1 = 'hello world'
# 判断开头是否为指定字符
print(s1.startswith('hello'))   # True  
print(s1.startswith('llo'))    # False
# 判断结尾是否为指定字符
print(s1.endswith('world'))    # True
print(s1.endswith('wor'))     # False

列表内置方法及操作

类型转换

list(其他数据类型)
能够被for循环的数据类型都可以转成列表
print(list('hello'))   # 字符串  ['h', 'e', 'l', 'l', 'o']
print(list({'name': 'jack', 'pwd': 123}))  # 字典 ['name', 'pwd']取key转换列表
print(list((1, 2, 3, 4)))   # 元祖 [1, 2, 3, 4]
print(list({1, 2, 3, 4, 5}))   # 集合 [1, 2, 3, 4, 5]

索引取值

l1 = [111, 222, 333, 444, 555, 666, 777, 888]
print(l1[0])    # 111
print(l1[-1])   # 888  列表索引取值支持负数

切片操作

与字符串的切片一致
print(l1[0:5])   # 顾头不顾尾 [111, 222, 333, 444, 555]
print(l1[:])    # 取所有  [111, 222, 333, 444, 555, 666, 777, 888]
print(l1[::-1])  # 倒着取  [888, 777, 666, 555, 444, 333, 222, 111]

统计列表中数据值的个数

len()
l1 = [111, 222, 333, 444, 555, 666, 777, 888]
print(len(l1))   # 8

数据值修改

l1 = [111, 222, 333, 444, 555, 666, 777, 888]
l1[0] = 123
print(l1)    # [123, 222, 333, 444, 555, 666, 777, 888]

列表添加数据值

方式一:尾部追加数据值
	l1 = [111, 222, 333, 444, 555, 666, 777, 888]
	l1.append('hello')
	print(l1)   # [111, 222, 333, 444, 555, 666, 777, 888, 'hello']
方式二:任意位置添加数据值
	l1.insert(1, 'world')  # 从指定索引值添加指定数据值
	print(l1)   # [111, 'world', 222, 333, 444, 555, 666, 777, 888, 'hello']
方式三:扩展列表 合并列表
	ll1 = [11, 22, 33]
	ll2 = [44, 55, 66]
	ll1.extend(ll2)
	print(ll1)   # [11, 22, 33, 44, 55, 66]

删除列表数据

方式一:通过删除关键字del
	l1 = [111, 222, 333, 444, 555, 666, 777, 888]
	del l1[0]
	print(l1)   # [222, 333, 444, 555, 666, 777, 888]
方式二:通过remove
	l1.remove(444)
	print(l1)   # [111, 222, 333, 555, 666, 777, 888]
方式三:通过pop
	l1.pop(3)   # 括号内填写索引值 不填写默认尾部弹出数据值
	print(l1)   # [111, 222, 333, 555, 666, 777, 888]
pop与remove的区别
	res = l1.pop(3)
	print(res)  # 444
	res1 = l1.remove(3)
	print(res1)  # None
'''使用pop会返回删除数据的值 remove不会返回值'''

排序

ss = [99, 44, 77, 11, 88]
ss.sort()   # 默认是升序
print(ss)   # [11, 44, 77, 88, 99]

ss.sort(reverse=True)  # 改为降序
print(ss)   # [99, 88, 77, 44, 11]

统计列表中某个数据值出现的次数

l1 = [11, 44, 55, 11, 88, 11]
print(l1.count(11))   # 3

颠倒列表顺序

l1 = [11, 44, 55, 11, 88, 11]
l1.reverse()
print(l1)    # [11, 88, 11, 55, 44, 11]

可变与不可变类型

可变数据类型是当该数据类型对应变量的值发生变化时,对应内存地址并没有开辟新的内存。

'''列表,字典是可变类型'''
l1 = [11, 22, 33]
print(id(l1))  # 2360344440768
l1.append(44)
print(l1)  # [11, 22, 33, 44]
print(id(l1))  # 2360344440768

不可变数据类型是当该数据类型对应变量的值发生变化时,原来内存中的值不变,而是会开辟一块新的内存,变量指向新的内存地址。

'''整型,浮点型,布尔,字符串,元祖都是不可变类型'''
res = '$$hello world$$'
print(res)  # $$hello world$$
print(id(res))  # 2324132526960
res = res.strip('$')
print(res)  # hello world
print(id(res))  # 2324132547952

标签:name,Python,res,s1,基础,jack,l1,print
From: https://www.cnblogs.com/lzjjjj/p/16742949.html

相关文章

  • vite中定义全局基础样式
    vite中定义全局基础样式importpathfrom'path'css:{preprocessorOptions:{less:{javascriptEnabled:true,additionalData:`@import"......
  • Python3安装psutil报错
    报错:pip3installpsutilcompilationterminated.error:command'gcc'failedwithexitstatus1解决:yuminstallpython3-devel继续安装:[root@centos......
  • 快手Python笔试题【杭州多测师】【杭州多测师_王sir】
    deftest():foriinrange(10):ifi%2!=0:print("helloworld")else:passtest()#调用函数packagecom.duoc......
  • 学习python-Day66
    今日学习内容前后端开发模式API接口postman使用序列化和反序列化restful规范drf:第三方app>>>快速实现符合restful规范的接口视图类,都是继承APIView......
  • python如何制作并安装自建包?
    一、依赖首先检查python是否安装了wheel、setuptools包,没有则使用pip安装pipinstallwheel--force-reinstallpipinstallsetuptools--force-reinstall 二、准......
  • C++ 调用python方法
    主流方法将python程序编程文本形式的动态链接库,在c/c++程序中调用其中定义的函数。本质上是在c++中启动了一个python解释器,由解释器对python相关的代码进行执行,执行......
  • Python基础
    1.为什么学习Python2.Python和其他语言的区别从三个方面看Python语言特点语言类型第三方库3.Python的优势4.Python的解释器种类?5.python2和python3区别6.深拷贝......
  • Python面向对象
    1.面向对象2.什么是类和类变量?3.实例和实例化以及实例变量4.数据成员5.方法和静态方法以及类方法6.什么是方法重写7.__init__8.self9.类的初始化:new()和i......
  • Python数据库编程
    1.什么是MySQLdb?2.如何连接数据库?3.如何创建数据库表?4.如何执行数据插入?5.如何执行数据库查询操作?6.如何更新数据库数据?7.如何删除数据库数据?8.如何使用数据库事......
  • Python常用类库
    1.什么是时间元组?2.使用datetime获取今天日期及前N天日期3.获取以秒为单位的浮点时间time():4.获取人可以直观理解的时间ctime():5.浮点时间转化为直观时间:6.获取格......