Python学习Day08

字符串 II

判断和检测

  • startswith(prefix[,start[,end]]):用于判断参数所指定的字符串是否出现在字符串的起始位置

  • endswith(prefix[,start[,end]]):用于判断参数所指定的字符串是否出现在字符串的结束位置

    方法中出现的参数表示索引的下标值

    >>> x = "唱跳rap"
    >>> x.startswith("唱")
    True
    >>> x.startswith("跳")
    False
    >>> x.endswith("p")
    True
    >>> x.endswith("rap")
    True
    >>> x.endswith("r")
    False
    >>> x.startswith("跳",1)
    True
    >>> #这里意为从索引下标值为1的元素(即“跳”)开始判断
    >>> x.endswith("ra",1,3)
    False
    >>> x.endswith("ra",1,4)
    True
    
  • isupper():判断一个字符串中所有的字母是否均为大写

  • islower():判断一个字符串中所有的字母是否均为小写

  • istitle():判断一个字符串中所有单词是否都是以大写字母开头,其余字母均为小写

    >>> x = "You need Python"
    >>> x.istitle()
    False
    >>> x = "You Need Python"
    >>> x.istitle()
    True
    >>> x.isupper()
    False
    >>> x.upper().isupper
    <built-in method isupper of str object at 0x000001DFF6F34AB0>
    >>> x.upper().isupper()
    True
    >>> #Python是先通过调用upper的方法将字符串全体转化成大写字母,然后在进行isupper方法的判断,所以这个顺序是从左到右的
  • isalpha():判断一个字符串中是否只是由字母构成

  • isspace():判断是否为一个空白字符串

    空白字符串:可以是空格、tab、转义字符

  • isprintable():判断一个字符串中,是否所有的字符都是可打印的

    转义字符不可以被打印

    >>> x = "I love Python"
    >>> x.isalpha()
    False
    >>> #空格不是字母
    >>> x = "IlovePython"
    >>> x.isalpha()
    True
    >>> "  \n".isspace()
    True
    >>> "  1".isspace()
    False
    >>> "A  B  C ".isprintable()
    True
    >>> "A  B  C \n".isprintable()
    
  • 以下三个方法均是检查数字的

  • isdecimal()

  • isdigit()

  • isnumeric()

    三者的区别:

  • isalnum():这是一个集大成者,只要isalpha()、isdecimal()、isdigit()、isnumeric()四个方法中任意一个方法的返回值是True,那么这个方法的结果都是True

  • isidentifier():判断字符串是否是一个合法的Python标识符

    >>> "I love Python".isidentifier()
    False
    >>> "I_love_Python".isidentifier()
    True
    >>> #空格不是标识符
    >>> "Python233".isidentifier()
    True
    >>> "233Python".isidentifier()
    False
    >>> #标识符不能以数字开头
    

截取

  • strip(chars=None)

  • lstrip(chars=None)

  • rtrip(chars=None)

    >>> ("   左侧不要留白").lstrip()
    '左侧不要留白'
    >>> ("右侧不要留白   ").rstrip()
    '右侧不要留白'
    >>> ("   左右都不要留白   ").strip()
    '左右都不要留白'
    

    chars的参数默认为None,意为去除的是空白

    >>> "www.baidu.com".lstrip("wcom.")
    'baidu.com'
    >>> "www.baidu.com".rstrip("wcom.")
    'www.baidu'
    >>> "www.baidu.com".strip("wcom.")
    'baidu'
    
  • removeprefix(prefix):允许指定删除的前缀

  • removesuffix(suffix):允许指定删除的后缀

拆分&拼接

  • partition(sep):将字符串以参数指定的分割符为依据进行切割,将切割后的结果返回一个三元组(三个元素的元组),从左到右寻找分割符

  • rpartition(sep):将字符串以参数指定的分割符为依据进行切割,将切割后的结果返回一个三元组(三个元素的元组),从右到左寻找分割符

    >>> "Biology".partition("o")
    ('Bi', 'o', 'logy')
    >>> "Biology".rpartition("o")
    ('Biol', 'o', 'gy')
    
  • split(sep=None,maxsplit=-1):如果不指定任何参数值,那么该函数就会按照自己的想法来(默认情况下切割空格),从左到右寻找分割符,第一个参数可以设置分割符,第二个参数用来设置分割次数。

  • rsplit(sep=None,maxsplit=-1):如果不指定任何参数值,那么该函数就会按照自己的想法来(默认情况下切割空格),从右到左寻找分割符,第一个参数可以设置分割符,第二个参数用来设置分割次数。

    >>> "You need Python".split()
    ['You', 'need', 'Python']
    >>> #切割了空格 返回一个列表
    >>> "苟日新,日日新,又日新".split(",")
    ['苟日新', '日日新', '又日新']
    >>> "苟日新,日日新,又日新".split(",",1)
    ['苟日新', '日日新,又日新']
    >>> "苟日新,日日新,又日新".rsplit(",",1)
    ['苟日新,日日新', '又日新']
  • splitlines(keepends=False):将字符串按行进行分割,将结果以列表的形式返回

    >>> "苟日新\n日日新\n又日新".splitlines()
    ['苟日新', '日日新', '又日新']
    >>> "苟日新\r日日新\r又日新".splitlines()
    ['苟日新', '日日新', '又日新']
    >>> "苟日新\n\r日日新\n\r又日新".splitlines()
    ['苟日新', '', '日日新', '', '又日新']
    >>> "苟日新\n\r日日新\n\r又日新".splitlines(True)
    ['苟日新\n', '\r', '日日新\n', '\r', '又日新']
    
  • join(iterable): 该方法的参数是一个可迭代对象,其字符串是作为分割符来使用的

    ".".join(["www","baidu","com"])
    'www.baidu.com'>>> #一般来说,我们用加号进行拼接
    >>> s = "Python"
    >>> s += s
    >>> s
    'PythonPython'
    >>> #用join达到同样的效果
    >>> "".join(("Python","Python"))
    'PythonPython'
    

格式化字符串的方法

format方法

使用一对花括号来表示替换字段,即在字符串中占一个坑位的意思,而真正的内容是放在format的参数中

>>> "1 + 2 = {} 2的平方是{} 3的立方是{}".format(1+2,2*2,3*3*3)
'1 + 2 = 3 2的平方是4 3的立方是27'

我们也可以在花括号中写上数字表示参数的位置,而参数中的字符串会被当作元组中的元素来对待

>>> "{} 是 {}".format("我","你霸霸")
'我 是 你霸霸'
>>> "{1} 是 {0}".format("我","你霸霸")
'你霸霸 是 我'

下标索引值是可以被多次引用的,并且可以通过关键字进行索引

>>> "{0}{0}{1}{1}".format("开","心")
'开开心心'
>>> "{n} is short,you need {thing}".format(thing = "Python",n = "Life")
'Life is short,you need Python'

如果想要在单独地输入花括号,我们可以用以下两种方法

>>> #1.在format参数中直接使用花括号
>>> "{} {} {}".format(1,"{}",3)
'1 {} 3'
>>> #2.用花括号来注释花括号
>>> "{} {{}} {}".format(1,2)
'1 {} 2'

[align]

align指定对齐的方式

含义
‘<’ 强制字符串在可用空间内左对齐(默认)
‘>’ 强制字符串在可用空间内右对齐
‘=’ 强制将填充放置在符号(如果有)之后但在数字之前的位置(这适用于以“+000000120”的形式打印字符串)
‘^’ 强制字符串在可用空间内居中
>>> "{:^20}".format(250)
'        250         '
>>> #该代码意为在20个字符串中强制居中250这个数据,其中冒号是必须的,冒号左边是位置或者关键字索引,右边才是格式化选项
>>> "{1:>10}{0:<10}".format(233,520)
'       520233       '
>>> "{left:>10}{right:<10}".format(left = 233,right = 520)
'       233520       '>>> #填充
>>> "{:%>10}{:%<10}".format(233,520)
'%%%%%%%233520%%%%%%%'
>>> "{:0=10}{:0=10}".format(233,520)
'00000002330000000520'

符号选项

含义
‘+’ 正数在前面添加正号(+),负数在前面添加负号(-)
‘-’ 只有负数在前面添加符号(-),默认行为
空格 正数在前面添加一个空格,负数在前面添加一个负号(-)
>>> "{:+} {:-} {:-}".format(520,-250,250)
'+520 -250 250'
>>> #如果需要适用千位的分隔符,我们可用逗号或者下划线表示,如果位数不足,则分隔符不显示
>>> "{:,} {:_} {:,} {:_}".format(1234,1234,123,123)
'1,234 1_234 123 123'

精度

.f表示小数点后的位数

.g表示小数点前后的位数

.加参数 表示截取的字符

>>> "{:.2f}".format(3.1415926)
'3.14'
>>> "{:.2g}".format(3.1415926)
'3.1'
>>> "{:.6}".format("I love Python")
'I love'

type类型选项

决定数据应当如何来呈现

含义
‘b’ 将参数以二进制的形式输出
‘c’ 将参数以Unicode字符的形式输出
‘d’ 将参数以十进制的形式输出
‘o’ 将参数以八进制的形式输出
‘x’ 将参数以十六进制的形式输出
‘X’ 将参数以十六进制的形式输出
‘n’ 跟’d’类似,不同之处在于它会适用当前语言环境设置的分隔符插入到恰当的位置
None 跟’d’一样
>>> "{:b}".format(24)
'11000'
>>> "{:c}".format(24)
'\x18'
>>> "{:d}".format(24)
'24'
>>> "{:o}".format(24)
'30'
>>> "{:x}".format(24)
'18'
>>> "{:X}".format(24)
'18'
>>> #  "#"可以作为前缀提示当前进制
>>> "{:#b}".format(24)
'0b11000'
>>> "{:#x}".format(24)
'0x18'

适用于浮点数和负数的类型

含义
‘e’ 将参数以科学计数法的形式输出(以字母’e’来标示指数,默认精度为6)
‘E’ 将参数以科学计数法的形式输出(以字母’E’来标示指数,默认精度为6)
‘f’ 将参数以定点表示法的形式输出(“不是数”用’nan’标示,无穷用’inf’标示,默认精度为6)
‘F’ 将参数以定点表示法的形式输出(“不是数”用’NAN’标示,无穷用’INF’标示,默认精度为6)
‘G’ 通用格式,小数以’F’形式输出,大数以’E’的形式输出
‘g’ 通用格式,小数以’f’形式输出,大数以’e’的形式输出
‘n’ 跟’g’类似,不同之处在于它会适用当前语言环境设置的分隔符插入到恰当的位置
‘%’ 以百分比形式输出(将数字乘以100并显示为定点表示法(‘f’)的形式,后面附带一个百分号)
‘None’ 跟’g’类似,不同之处在于当使用定点表示法时,小数点后将至少表示一位,默认精度与给定值所需的精度一样
>>> "{:e}".format(3.1415)
'3.141500e+00'
>>> "{:E}".format(3.1415)
'3.141500E+00'
>>> "{:f}".format(3.1415)
'3.141500'
>>> "{:g}".format(123456789)
'1.23457e+08'
>>> "{:g}".format(1234.56789)
'1234.57'
>>> "{:%}".format(0.99)
'99.000000%'
>>> "{:.2%}".format(0.99)
'99.00%'
>>> "{:.{pre}f}".format(3.14159,pre = 2)
'3.14'

f-字符串

>>> years = 14
>>> "我今年{}岁了".format(years)
'我今年14岁了'
>>> f"我今年{years}岁了"
'我今年14岁了'
>>> "1+2 = {},2的平方是{}".format(1+2,2*2)
'1+2 = 3,2的平方是4'
>>> f"1+2 = {1+2},2的平方是{2*2}"
'1+2 = 3,2的平方是4'
>>> "{-520:010}"
'{-520:010}'
>>> f"{-520:010}"
'-000000520'
>>> "{:,}".format(123456789)
'123,456,789'
>>> f"{123456789:,}"
'123,456,789'

Python学习Day08相关推荐

  1. Python学习:day21正则表达式

    写在前面: 此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 传送门: day01基础知识 day02知识分类 day03 ...

  2. Python学习:day20正则表达式

    写在前面: 此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 传送门: day01基础知识 day02知识分类 day03 ...

  3. Python+大数据-Python学习(七)

    Python+大数据-Python学习(七) 1.文件的基本操作 文件打开的格式: file = open(文件路径,读写模式) ​ - open默认打开的式r模式 文件路径:可以写相对路径,也可以写 ...

  4. pygame是python的一个库吗,python学习pygame,,基本库导入impor

    python学习pygame,,基本库导入impor 基本库导入 import pygame import sys from pygame.locals import * 初始化 pygame.ini ...

  5. python科学计数法转换_对比Python学习Go 基本数据结构

    公众号文章不方便更新,可关注底部「阅读原文」博客,文章随时更新. 本篇是「对比 Python 学习 Go」[1] 系列的第三篇,本篇文章我们来看下 Go 的基本数据结构.Go 的环境搭建,可参考之前的 ...

  6. python学习------tab补全

    python学习------tab补全   python也可以进行tab键补全 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #!/usr/bin/env  ...

  7. Python学习day5作业-ATM和购物商城

    Python学习day5作业 Python学习day5作业 ATM和购物商城 作业需求 ATM: 指定最大透支额度 可取款 定期还款(每月指定日期还款,如15号) 可存款 定期出账单 支持多用户登陆, ...

  8. Python学习系列(六)(模块)

    Python学习系列(六)(模块) Python学习系列(五)(文件操作及其字典) 一,模块的基本介绍 1,import引入其他标准模块 标准库:Python标准安装包里的模块. 引入模块的几种方式: ...

  9. 最新Python学习项目Top10!

    作者 | Mybridge 译者 | Linstancy 整理 | Jane 出品 | AI科技大本营 [导读]过去一个月里,我们对近1000个Python 学习项目进行了排名,并挑选出热度前10的项 ...

最新文章

  1. 为什么阿里巴巴不建议在for循环中使用+进行字符串拼接
  2. Pythorch使用总览
  3. 做项目时用到的linux知识
  4. TeamViewer 14 on Nvidia Jetson TX2
  5. 试卷批分pascal程序
  6. QT的QLineSeries类的使用
  7. SAP WebIDE编辑器的主题设置
  8. 如果没准备这些面试题,找工作还是缓一缓吧
  9. 关于call的使用和原理分析
  10. 【转】成为一名推荐系统工程师永远都不晚
  11. A - 敌兵布阵 - hdu 1166
  12. 关于在Windows64上编译程序出现相邻变量地址偏移相差32字节问题
  13. 实战 | 使用Slack、Docker来打造你的运维机器人
  14. java kettle jar包_Kettle中调用用户自定义的jar包
  15. Markdown的使用心得
  16. ue4风格化材质_风格化材质 - 游戏蛮牛 - Unreal中文翻译用户手册
  17. 基于golang的手机号格式验证和邮箱格式验证(正则表达式)
  18. HBase MOB特性介绍
  19. python相对路径找不到文件_Python里使用相对路径的坑
  20. ztext - 简单几行代码创建酷炫 3D 特效文字的开源 JS 库

热门文章

  1. MySQL必知必会学习历程(一)
  2. 打印机有重影 校正对齐喷头
  3. 虚拟机安装centos6.5,提示Unsupported Hardware Detected检测到不支持的硬件
  4. 一起来看流星雨--------魏晨
  5. 提升研发效率的基本工作原则
  6. App can't be opened because it is from an unidentified developer
  7. 解决方法 curl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to bit.ly:443
  8. ..\Src\INA226.c(142): error: #20: identifier “GPIO_IDR_IDR9“ is undefined
  9. windows重要信息(键盘、鼠标、计时器)
  10. 构建 django项目