第三章  字符串

3.1 基本字符串操作

Python的字符串和元组差不多,是不可以进行改变的,如果想改变值,可以尝试list序列化之后在进行修改。

{

   website = 'http://www.Python.org';

   website = [-3:] = 'com'; 

   上面操作违法。

}

3.2 字符串格式化:精简版

字符串格式化使用字符串格式化操作符(这个名字还是很恰当的)即%来实现。

基本用法例子

1.

  >>> format = "Hello, %s. %s enough for ya?";

  >>> values = ('world' ,'Hot');

  >>> print (format % values);

  Hello, world. Hot enough for ya?

2.

  >>> format = "Pi with three decimals: %.3f";

  >>> from math import pi

  >>> print(format % pi)

  Pi with three decimals: 3.142

3.模板字符串

  <基本用法>

  >>> from string import Template;

  >>> s = Template('$x. glorious $x!');

  >>> s.substitute(x='slurm')

  'slurm. glorious slurm!'

  <模板字符串如果和别的单词一起,那么要{x}区分>

  >>> s = Template("It's ${x}tastic!")

  >>> s.substitute(x='slurm')

  "It's slurmtastic!"

  >>>

  <显示美元字符用两个$>

  >>> s=Template("Make $$ selling $x!");

  >>> s.substitute(x='slurm')

  'Make $ selling slurm!'

 <除了关键字参数之外,还可以使用字典变量提供值/名称对>

  >>> s = Template('A $thing must never $action.');

  >>> d = {}

  >>> d['thing'] = 'gentleman'

  >>> d['action'] = 'show his socks'

  >>> s.substitute(d)

  'A gentleman must never show his socks.'

  <safe_substitute 在查找不到的时候不会报错>

  >>> s = Template('A $x');

  >>> s.substitute(a='x')   这个会报错,因为查找不到

  >>> s.safe_substitute(a='x')  不会报错,并且输出下面值

  'A $x'

3.3 字符串格式化:完整版

  格式化操作符的右操作数可以是任何东西,如果是元组或者映射类型(如字典)那么字符串格式化讲会有所不同。
 

注意:

  如果转换表达式一部分是元组,那么必须将它用括号括起来,以避免出错。

  {

   Ok

   >>> '%s plus %s equals %s' % (1 ,1 ,2)

   '1 plus 1 equals 2'

   Error

   >>> '%s plus %s equals %s' % 1,1,2

   Traceback (most recent call last):

   File "<pyshell#27>", line 1, in <module>'%s plus %s equals %s' % 1,1,2

   TypeError: not enough arguments for format string

   >>> 

  }

基本转换说明符-(以下描述循序至关重要(就是使用顺序))
   (1)%字符:标记转换说明符的开始。
   (2)转换标志(可选): -表示左对齐; 
                 +表示在转换值之前要加上正负号

                 “” 正数之前保留空格
                 
0  0填充

   3) 最小字段宽度(可选):转换后的字符串至少应该具有该指定值的宽度。
   如果是*,则宽度会从值元组中读取。

   (4)点(.) 后跟随精度值(可选):如果转换的是实数,精度值就表示出现在小数点后的位数。如果转换的是字符串,那么该数字就表示最大字段宽度。如果是*,那么精度将会从元组中读出。

   (5)转换类型

          d,i 带符号的十进制整数

          o   不带符号的八进制

          u   不带符号的十进制

          x,X 十六进制

          e,E  科学计数法

          f,F  十进制浮点型

          g,G

          C     单字符

          r     字符串(使用repr转换任意Python对象)

          s     字符串(使用str转换任意Ptthon对象)

3.3.1简单转换

   >>> 'Price of eggs: $%d' %42

   'Price of eggs: $42'

   >>> 'Price of eggs: $%d' %42

   'Price of eggs: $42'

   >>> 'Hexadecimal price of eggs:%x' %42

   'Hexadecimal price of eggs:2a'

   >>> from math import pi

   >>> 'Pi: %f...' %pi

   'Pi: 3.141593...'

   >>> 'Very inexact estimate of pi: %i' %pi

   'Very inexact estimate of pi: 3'

   >>> 'Using str: %s' % 42L  

   SyntaxError: invalid syntax   (我用的3.5 高版本里买没有显示L了)

   >>> 'Using str: %s' % 42

   'Using str: 42'

   >>> 'Using repr: %r' %42

   'Using repr: 42'

   >>> 

3.3.2 字段宽度和精度

   >>> '%10f' %pi'  

      3.141593'

   >>> '%10.2f' %pi
'      3.14'

   >>> '%.2f' %pi

    '3.14'

    >>> '%.2s' %pi

    '3.'

    >>> '%.5s' % 'Guido van Rossum'

    'Guido'

    <长度可以用*代替,然后在元组里给出>

    >>> '%.*s' %(5,'Guido van Rossum')

    'Guido'

3.3.3 符号,对齐和0填充

     <0填充>
   >>> '%010.2f' %pi
'0000003.14'
   <左对齐>
>>> '%-10.2f' %pi
   '3.14      '

     <空格填充>

        >>> print(('% 5d' %10) + '\n' + ('% 5d' % -10))

        10

        -10
 

     <正负号>
   >>> print(('%+5d' %10) + '\n' + ('%+5d' % -10))
   +10
   -10
 

3.4 字符串方法

  字符串常量

  {
    string.digits  0~9
    string.letters 所有字母 大小写
    string.lowercase 所有小写字母
    string.printable 所有课打印的字符的字符串
    string.punctuation 包含所有标点的字符串
    string.uppercase   所有大写字母的字符串

   }  
    字符串常量(例如string.letters)与地区有区别,其本身取决于Python所配置的语言,如果可以确定自己使用的是ASCII那么就可以例如这样 string.ascii_letters

3.4.1 find (找到输出最左边,找不到输出-1)
>>> mark = "123456789123456789"
>>> mark.find("123456")
0
>>> mark.find("aasd")
-1

可接受区间定义   [)
{
>>> subject = "$$$ Get rich now!!! $$$"
>>> subject.find("$$$")
0
>>> subject.find("$$$" ,1)
20
>>> subject.find("!!!" ,0 ,16)
-1
}

3.4.2 join  非常重要的字符串方法,它是split方法的逆方法,用来在队列中添加元素
{
   >>> seq = [1,2,3,4,5]
>>> sep = '+'
>>> sep.join(seq)
Traceback (most recent call last):
 File "<pyshell#2>", line 1, in <module>
sep.join(seq)
TypeError: sequence item 0: expected str instance, int found

>>> seq = ['1' ,'2' ,'3' ,'4' ,'5']
>>> sep.join(seq)
'1+2+3+4+5'

>>> sep
'+'

>>> seq
['1', '2', '3', '4', '5']

>>> dirs = '','usr','bin','env'
>>> '/'.join(dirs)
'/usr/bin/env'

>>> print ('C:' + '\\'.join(dirs))
C:\usr\bin\env
>>> 
}

3.4.3 lower  (title 所有首字母大写,其他小写)

     lower方法返回字符串的小写字母版

     {
>>> 'asdaADdasdwDsdw'.lower()
'asdaaddasdwdsdw'
>>> name = 'Gumby'
>>> names = ['gumby' ,'smith' ,'jones']
>>> if name.lower() in names : print ('Fount it!')
Fount it!
>>>

      }

3.4.4 replace替换
{
  >>> "This is a test".replace('is','eez')
  'Theez eez a test'
}

3.4.5  split(jion的逆方法,用来将字符串分割成序列)。

    {
>>> '1+2+3+4+5+6'.split('+')
['1', '2', '3', '4', '5', '6']

>>> '/use/dasd/w/ad/we'.split('/')
['', 'use', 'dasd', 'w', 'ad', 'we']

<如果不提供分割符,会把所有空格作为分隔符>
>>> "using the default ".split()
['using', 'the', 'default']

}

3.4.6 strip 去除字符串两边的空格(也可以指定去除字符)
{
>>> '  asdasd   '.strip()
'asdasd'

>>> '000asd000asd00012'.strip('012')
'asd000asd'
}  

3.4.7 translate  这3.5已经取消了,这个先不看了。

Python第三章-字符串的更多相关文章

  1. python 第三章 字符串-例1

    1.字段宽度和精度 >>>'%.*s' % (10,'Gruido') '     Guido' >>>'%.-*s' % (10,'Gruido') 'Guido ...

  2. 简学Python第三章__函数式编程、递归、内置函数

    #cnblogs_post_body h2 { background: linear-gradient(to bottom, #18c0ff 0%,#0c7eff 100%); color: #fff ...

  3. Python第三章(北理国家精品课 嵩天等)

    一.数字类型及其操作 整数:pow(x,y),想算多大,就算多大:以0b或0B开头表示二进制:以0o或0O开头表示八进制:以0x或0X开头表示十六进制. 浮点数:取值范围-10^308至10^308, ...

  4. <<C++ Primer>> 第三章 字符串, 向量和数组 术语表

    术语表 第 3 章 字符串, 向量和数组 begin: 是 string 和 vector 的成员,返回指向第一个元素的迭代器.也是一个标准库函数,输入一个数字,返回指向该数字首元素的指针.    缓 ...

  5. python第三章:循环语句--小白博客

    Python条件语句 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 可以通过下图来简单了解条件语句的执行过程: Python程序语言指定任何非0和非 ...

  6. 2 python第三章文件操作

    1.三元运算 三元运算又称三目运算,是对简单的条件语句的简写,如: 简单条件语句: if 条件成立: val = 1 else: val = 2 改成三元运算: val = 1 if 条件成立 els ...

  7. Python第三章-输入输出和运算符

    输入输出和运算符 一.输入和输出 1.1 输出 `print()`函数用来向终端输出数据(其实也可以向文件输出数据,后面再讲) 可以传递多个参数,则输出的时候 python 会把多个参数的值用空格隔开 ...

  8. python基础三之字符串

    Python的数据类型 数字(int),如1,2,3,用于计算. 字符串(str),如s = 'zxc',储存少量数据,进行操作. 布尔值(bool),True和False,用于进行判断. 列表(li ...

  9. python第三章:函数

    在前面章节中,介绍了一些input(),print(),len()等内建函数,还有random,math等标准库相关函数,这些都是可以直接使用的,但是很多时候,我们也是可以编写自己的函数. 看个例子: ...

随机推荐

  1. 无需编程,通过配置零代码生成CRUD RESTful API

    Hello,crudapi!(你好,增删改查接口!) 本文通过学生对象为例,无需编程,通过配置实现CRUD RESTful API. 概要 CRUD简介 crud是指在做计算处理时的增加(Create ...

  2. Azure Front Door(一)为基于.net core 开发的Azure App Service 提供流量转发

    一,引言 之前我们讲解到使用 Azure Traffic Manager.Azure LoadBalancer.Azure Application Gateway,作为项目的负载均衡器来分发流量,转发 ...

  3. SpringCloud-服务与注册

    SpringCloud- Eureka服务注册与发现 1.概述 springcloud是一个非常优秀的微服务框架,要管理众多的服务,就需要对这些服务进行治理,管理每个服务与每个服务之间的依赖关系,可以 ...

  4. 新石器时代码农的Typescript开发总结

    如果评定前端在最近五年的重大突破,Typescript肯定能名列其中,重大到各大技术论坛.大厂面试都认为Typescript应当是前端的一项必会技能.作为一名消息闭塞到被同事调侃成"新石器时 ...

  5. 优化自动化测试流程,使用 flask 开发一个 toy jenkins工具

    1.自动化 某一天你入职了一家高大上的科技公司,开心的做着软件测试的工作,每天点点点,下班就走,晚上陪女朋友玩王者,生活很惬意. 但是美好时光一般不长,这种生活很快被女主管打破.为了提升公司测试效率, ...

  6. Shell编程中变量用法

    1. 变量替换 语法 说明 ${变量名#匹配规则} 从变量开头进行规则匹配,将符合最短的数据删除 ${变量名##匹配规则} 从变量开头进行规则匹配,将符合最长的数据删除,贪婪匹配 ${变量名%匹配规则 ...

  7. vue项目安装sass步骤等遇到的问题

    1.安装sass依赖包 npm install --save-dev sass-loader 注释(可能会出现问题:sass-loader版本过高导致,可以将其package.json中的版本改为7. ...

  8. 使用伪类(::before/::after)设置图标

    使用伪类(::before/::after)设置文本前后图标.减少标签的浪费,使页面更加整洁. 如图: <!DOCTYPE html> <html> <head> ...

  9. DevExpress主要常用控件

    DevExpress主要常用控件说明:1. TestEdit: 一个单行文本编辑器. 常用属性:Name:该控件的名称.Text:该控件中的内容.Enabled:该控件是否激活. Visible:控件 ...

  10. springboot源码解析-管中窥豹系列之BeanDefine如何加载(十三)

    一.前言 Springboot源码解析是一件大工程,逐行逐句的去研究代码,会很枯燥,也不容易坚持下去. 我们不追求大而全,而是试着每次去研究一个小知识点,最终聚沙成塔,这就是我们的springboot ...