【0802 | Day 7】Python进阶(一)
1.find( )、rfind( )、index( )、rindex( )、count( )
2.center( )、ljust( )、rjust( )、zfill( )
4.captalize( )、swapcase( )、title( )
写在开篇:
可变:变量值发生改变,id地址不变【在原来的基础上】
不可变:变量值发生改变,id地址改变【开辟新的空间】
数字类型的内置方法
数字类型分为整型和浮点型。
一、整型内置方法(int)
用途:年龄、id、级别等
定义:可以使用int( )方法将纯数字的字符串转为十进制的整型
age = 19
age = int(10)
print(type(age))
#<class 'int'>
x = int('')
print(type(x))
#<class 'int'>
x = int('11.1')
print(x)
#报错,int(字符串需为整数)
常用操作+内置方法:算术运算+比较运算
有序or无序:
不存在有序无序之说
存值单个or多个:
单个
可变or不可变:
不可变
二、浮点型内置方法(float)
用途:薪资、身高、体重
定义:可以使用float()方法将纯数字的字符串转为浮点型数字
age = 3.1
age = float(3.1)
print(type(age))
#<class 'float'>
x = float('')
print(x)
print(type(x))
#111.0
#<class 'float'>
x = float('11.1') #非纯数字的字符串 报错
print(type(x))
#<class 'float'>
常用操作+内置方法:算术运算+比较运算
有序or无序:
无有序无序之说
存单值or多值:
单值
可变or 不可变:
不可变
字符串类型内置方法
一、字符串类型内置方法(str)
b'101':二进制编码的字符串
r'\n':原生字符串,r会令字符串里的命令失效
name = 'nick'
s1 = str(1.1)
s2 = str([1,2,3])
print(f's1:{s1},type:{type(s1)}')
print(f's2:{s2},type:{type(s2)}')
#s1:1.1,type:<class 'str'>
#s2:[1,2,3],type:<class 'str'>
常用操作+内置方法:常用操作和内置方法分为优先掌握,需要掌握和其他操作三个部分
有序or无序:
只要是有索引的,都是有序的,因此字符串是有序的
存单值or多值:
单值
可变or不可变:
不可变
二、常用操作和内置方法
优先掌握:
按索引取值
切片
长度len
成员运算in | not in
移除空白
切分split
循环
1.索引取值
mm = 'hello nick'
print(f'索引为6:{mm[6]}')
print(f'索引为-3:{mm[-3]}')
#索引为6: n
#索引为-3:i
2.切片
mm = 'hello nick'
print(f'切片3到最后:{m[3:]}')
print(f'切片3-8:{mm[3:8]}')
print(f'切片3-8,步长为2:{mm[3:8:2]}')
print(f'切片3-最后,步长为2:{mm[3::2]}')
print('\n**了解知识点**')
print(f'切片所有: {mm[:]}')
print(f'反转所有: {mm[::-1]}')
print(f'切片-5--2: {mm[-5:-2:1]}')
print(f'切片-2--5: {mm[-2:-5:-1]}' #切片3-最后: lo nick
#切片3-8: lo ni
#切片3-8,步长为2: l i
#切片3-最后,步长为2: l ik
#**了解知识点**
#切片所有: hello nick
#反转所有: kcin olleh
#切片-5--2: ni
#切片-2--5: cin
3.长度len
mm = 'hello nick'
print(len(mm))
#
4.成员运算in or not in
mm = 'my name is nick, nick handsome'
print(f"'nick' in mm:{'nick' in mm}")
print(f"'jason' not in mm:{'jason' not in mm}")
print(f"not 'jason' in mm:{not 'jason' in mm}")
#'nick' in msg: True
#'jason' not in msg: True
#not 'jason' in msg: True
5.移除空白strip( )
name = '&&&n ick'
print(f"name.strip('&'):{name.strip('&')"})
print(f"name:{name}")
pwd = input('password: ')
if pwd.strip() == '':
print('密码输入成功') print(f"'*-& nick+'.strip('*-&+'):{'*-& nick+'.strip('*-& +')}")
#name.strip('&'): n ick
#name: &&&n ick
#password: 123
#密码输入成功
#'*-& nick+'.strip('*-& +'): nick
6.切分split
info = 'nick:male:19'
info_list1 = info.split(':')
info_list2 = info.split(':',1)
print(f'info_list1:{info_list1}')
print(f'info_list2:{info_list2}')
#info_list1:['nick', 'male', '19']
#info_list2:['nick', 'male:19']
7.循环
mm = 'hello nick'
for i in mm:
print(i) #h
#e
#l
#l
#o
#n
#i
#c
#k
需要掌握:
lstrip&rstrip
lower&upper
startswith&endswith
rstrip
join
replace
isdigit
1.lstrip( )和rstrip( )
name = '&&nick&&'
print(f"{name.lstrip('&')}")
print(f"{name.rstrip('&')}")
#nick&&
#&&nick
2.lower( )和upper( )
name = 'Nick Chen'
print(f'{name.lower()}')
print(f'{name.upper()}') #nick chen
#NICK CHEN
3.startswith( )和endswith( )
name = 'Nick Chen'
print(f'{name.startswith("Nick")}')
print(f'{name.endswith("chen")}')
#True
#False
4.rsplit( )
info = 'nick:male:19'
print(f"{info.rsplit(':'),1}") #['nick:male','19']
5.join( )
lis = [1,2,'']
print(f"{':'.join(lis)}")
#报错 数字和字符串不可拼接
lis = ['nick','male','']
print(f"{':'.join(lis)}")
#nick:male:19
6.replace( )
name = 'nick shuai'
print(f"{name.replace('shuai','handsome')}")
#nick handsome
7.isdigit( )
salary = ''
print(salary.isdigit())
salary = '111.1'
print(salary.isdigit())
#True
#False
age = input('age: ')
if age.isdigit():
age = int(age) if age < 18:
print('小姐姐:)')
else:
print('阿姨好:)')
else:
print(f'你的年龄是这个{age}?') #结果一:
age: 18
阿姨好:)
#结果二:
age: 啊?
你的年龄是这个啊??
其他操作:
find | rfind | index |rindex | count
cente | ljust |rjust | zfill
expandtabs
captalize | swapcase | title
is 系列
1.find( )、rfind( )、index( )、rindex( )、count( )
mm = 'my name is tank, tank shi sb, hha'
print(f"{mm.find('tank')}")
print(f"{mm.find('tank',0,3)}") #从0开始索引,3结束索引,找不到返回-1
print(f"{mm.rfind('tank')}")
print(f"{mm.index('tank')}")
print(f"{mm.rindex('tank')}")
print(f"{mm.count('tank')}")
#
#-1
#
#
#
#
注意:find找不到返回-1,index找不到直接报错
2.center( )、ljust( )、rjust( )、zfill( )
print(f"{'info nick'.center(50,'*')}") #放置中央
print(f"{'info nick'.ljust(50,'*')}") #调整*居左
print(f"{'info nick'.rjust(50,'*')}") #调整*居右
print(f"{'info nick'.zfill(50)}") #填充0居右
********************info nick*********************
info nick*****************************************
*****************************************info nick
00000000000000000000000000000000000000000info nick
3.expandtabs( )
print(f"a\\tb\\tc: %s" %('a\tb\tc\t'))
print(f"'a\\tb\\tc'.expandtabs(32): %s" %('a\tb\tc\t'.eapandtabs(32)) #a\tb\tc: a b c
#'a\tb\tc'.expandtabs(32):a b c
注意:’ \ '加在‘ \t ’、' \n '等之前则命令失效,成为普通字符串
4.captalize( )、swapcase( )、title( )
name = 'nick handsome sWAPCASE'
print(f"name.capitalize(): {name.capitalize()}") #首字母大写,用在段落开始
print(f"name.swapcase(): {name.swapcase()}") # 大小写互转
print(f"name.title(): {name.title()}") #所有单词首字母大写
Nick handsome sWAPCASE
NICK HANDSOME Swapcase
Nick Handsome Swapcase
5.is数字系列(只是为了告诉你,判断是否为数字时除了中文数字以后使用isdigit( )即可)
isdecimal(): 检查字符串是否值包含十进制字符,如果是返回True,否则返回False。
isdigit(): 如果字符串只包含数字则返回True,否则返回False。(重要)
isnumeric(): 如果字符串中只包含数字字符,则返回True,否则返回False。
num = "" #unicode
num.isdigit() # True
num = "" # 全角
num.isdigit() # True
num = b"" # byte
num.isdigit() # True
num = "IV" # 罗马数字
num.isdigit() # True
num = "四" # 汉字
num.isdigit() # False
===================
isdigit()
True: Unicode数字,byte数字(单字节),全角数字(双字节),罗马数字
False: 汉字数字
Error: 无
================
import unicodedata
unicodedata.digit("") #
unicodedata.digit("") #
unicodedata.digit(b"") # TypeError: must be str, not bytes
unicodedata.digit("Ⅷ") # ValueError: not a digit
unicodedata.digit("四") # ValueError: not a digit
#"〇","零","一","壱","二","弐","三","参","四","五","六","七","八","九","十","廿","卅","卌","百","千","万","万","亿"
6.is其他
salpha(): 如果字符串至少有一个字符并且所有字符都是字母则返回True,否则返回False。
islower(): 如果字符串中只包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回True,否则返回False。
isupper(): 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回True,否则返回False。
【0802 | Day 7】Python进阶(一)的更多相关文章
- Python进阶:函数式编程实例(附代码)
Python进阶:函数式编程实例(附代码) 上篇文章"几个小例子告诉你, 一行Python代码能干哪些事 -- 知乎专栏"中用到了一些列表解析.生成器.map.filter.lam ...
- Python进阶 - 对象,名字以及绑定
Python进阶 - 对象,名字以及绑定 1.一切皆对象 Python哲学: Python中一切皆对象 1.1 数据模型-对象,值以及类型 对象是Python对数据的抽象.Python程序中所有的数据 ...
- Python进阶-继承中的MRO与super
Python进阶-继承中的MRO与super 写在前面 如非特别说明,下文均基于Python3 摘要 本文讲述Python继承关系中如何通过super()调用"父类"方法,supe ...
- Python进阶 - 命名空间与作用域
Python进阶 - 命名空间与作用域 写在前面 如非特别说明,下文均基于Python3 命名空间与作用于跟名字的绑定相关性很大,可以结合另一篇介绍Python名字.对象及其绑定的文章. 1. 命名空 ...
- python进阶学习笔记(一)
python进阶部分要学习的内容: 学习目标: 1.函数式编程 1.1,什么是函数式编程 函数式编程是一种抽象计算的编程模式 不同语言的抽象层次不同: 函数式编程的特点: python支持的函数式编程 ...
- 【python进阶】详解元类及其应用2
前言 在上一篇文章[python进阶]详解元类及其应用1中,我们提到了关于元类的一些前置知识,介绍了类对象,动态创建类,使用type创建类,这一节我们将继续接着上文来讲~~~ 5.使⽤type创建带有 ...
- 【python进阶】Garbage collection垃圾回收2
前言 在上一篇文章[python进阶]Garbage collection垃圾回收1,我们讲述了Garbage collection(GC垃圾回收),画说Ruby与Python垃圾回收,Python中 ...
- Python进阶 函数式编程和面向对象编程等
函数式编程 函数:function 函数式:functional,一种编程范式.函数式编程是一种抽象计算机的编程模式. 函数!= 函数式(如计算!=计算机) 如下是不同语言的抽象 层次不同 高阶函数: ...
- 【python进阶】深入理解系统进程2
前言 在上一篇[python进阶]深入理解系统进程1中,我们讲述了多任务的一些概念,多进程的创建,fork等一些问题,这一节我们继续接着讲述系统进程的一些方法及注意点 multiprocessing ...
- Python进阶:如何将字符串常量转化为变量?
前几天,我们Python猫交流学习群 里的 M 同学提了个问题.这个问题挺有意思,经初次讨论,我们认为它无解. 然而,我认为它很有价值,应该继续思考怎么解决,所以就在私密的知识星球上记录了下来. 万万 ...
随机推荐
- Appium+python自动化(十八)- 你难道是猴哥失散多年的混血弟弟还是妹妹???- Monkey事件(超详解)
操作事件简介 Monkey所执行的随机事件流中包含11大事件,分别是触摸事件.手势事件.二指缩放事件.轨迹事件.屏幕旋转事件.基本导航事件.主要导航事件.系统按键事件.启动Activity事件.键盘事 ...
- Tensorflow教程(1)Tensorflow的下载和安装
人工智能已经成为了目前的大趋势,作为程序员的我们也应该跟着时代进步.Tensorflow作为人工智能领域的重要工具,被广泛的使用在机器学习的应用当中. Tensorflow使用人数众多.社区完善,所以 ...
- 安卓学习资料推荐《深入理解Android:卷2》下载
下载地址:百度云下载地址 编辑推荐 <深入理解Android:卷2>编辑推荐:经典畅销书<深入理解Android:卷I>姊妹篇,51CTO移动开发频道和开源中国社区一致鼎力推荐 ...
- wincc C脚本如何调用第三方动态链接库dll
就Wincc本身脚本功能而言并不强大,但是wincc 脚本提供了第三方接口,如通用的Kernel32.dll,User32.dll,Gdi32.dll,大家如果对这些API接口感兴趣,可网上查找关于w ...
- LINUX安装源码软件经典三部曲
这几天一直在搞suse下的mplyaer.ffmpeg等源码编译安装,总结出源码软件安装三部曲,网上称为经典三部曲. 这三步分别为: 1. ./configure [options] 2. make ...
- Spring Boot微服务电商项目开发实战 --- 基础配置及搭建
根据SpringBoot实现分布式微服务项目近两年的开发经验,今天决定开始做SpringBoot实现分布式微服务项目的系列文章,帮助其他正在使用或计划使用SringBoot开发的小伙伴们.本次系列文章 ...
- Sublime Text 3 实现C语言代码的编译和运行
Sublime Text 3 是一款优秀的代码编辑软件.界面简洁,轻巧快速,很受大家的欢迎. 最近开始用他来编辑数据结构的C语言代码,这就需要在新建编译系统.具体方法如下: 首先: 接下来是关键的一步 ...
- 一次使用InfluxDB数据库的总结
前言 因当前的项目需要记录每秒钟服务器的状态信息,例如负载.cpu等等信息,这些数据都是和时间相关联的. 因为一秒钟就要存储挺多的数据.而且我还在前端做了echart的折线图,使用websocket实 ...
- 并发,并行,线程,进程,GIL锁
1.并发和并行 并发: 同时做某些事,但是强调同一时段做多件事 如:同一路口,发生了车辆要同时通过路面的时间. 并行: 互不干扰的在同一时刻做多件事 如:同一时刻,同时有多辆车在多条车道上跑,即同时发 ...
- C#开发OPC Client程序
前一段时间写了一个OPC Client程序,现在将简单介绍一下程序开发方法.测试环境最后将我写的程序开源到Github上去. 一.开发方法 我这里用的是一个OPC动态库OPCAutomation.dl ...