Python入门基础第十二课--知识补充

    1.前言

    在前面的学习中,我们已经讲了很多基础知识。包括变量、字符编码、模块、字符串、序列、列表、元组、字典、语句一系列基础知识,不知道你掌握了多少。这些基础知识是我们必须得牢记的,在后续的章节中,我们要进入比较大的程序的设计和编写,自然而然就需要用到前面的基础知识。温故而知新,可以为师矣。在继续学习的过程中,记得返回去看一看。

    这一节,来介绍一些以前没有介绍到的基础知识。相信会有很大的帮助!

    2. 字符串格式化

    字符串我们已经介绍过,而且介绍的很详细。利用索引和分片访问字符串中的单个字符也是没有问题,下面会讲到如何使用字符串格式化其他的值,并会了解一下字符串的分割、连接、搜索等方法的用法和功能。

    格式化操作符的右操作符可以是任意类型的数,如果是元组或者映射类型,那么字符格式化将会有所不同。如果是元组的话,则其中的每一个元素都会被单独格式化,每个值都需要一个对应的转换说明符。

    基本的转换说明符包括下面的这些部分:

  • %字符:标记转换说明符的开始
  • 转换标志:-表示左对齐,+表示在转换值之间要加上正负号,“”表示正数之间保留空格,0表示转换值若位数不够则用0填充。
  • 最小字段宽度:转换以后的字符至少应该具有该指定的宽度,如果给定的是*,则宽度值会从元组中读出。
  • 点(.)后面跟精度值:如果转换的是实数,精度值就表示出现在小数点后面的位数。如果表示的是字符串,那么该参数就是表示最大字段宽度。
  • 转换类型:

s字符串(使用str转换任意类型的python对象)
d,i带符号的十进制整数
o   不带符号的八进制

u

不带符号的十进制
x不带符号的十六进制(小写)
X不带符号的十六进制(大写)
e科学计数法表示的浮点数(小写)
E科学计数法表示的浮点数(大写)
f,F十进制浮点数
g如果指数大于-4或者小于精度值则和e相同,其他情况和f相同
G如果指数大于-4或者小于精度值则和E相同,其他情况和F相同
C单字符
r字符串(使用reper转换任意python对象)

    简单转换

    简单的转换只需要写出相对应的转换类型便可,很简单,我们来看看:

>>> 'Price of eggs: $%d' %100
'Price of eggs: $100'
>>> from math import pi
>>> 'Pi: %f....' %pi
'Pi: 3.141593....'
>>> 'Using str: %s' %42L
'Using str: 42'

    在上面的例子里面,我们可以看到简单转换真的很简单,记住上面表格里所l列举的转换类型就可以得到你想要的东西。此外,我们的转换说明符还可以包括宽度和精度。字段宽度是转换后的值所保留的最小字符个数,精度则是结果中应该包含的小数位数,或者是转换后的值所能包含的最大字符个数。

    宽度和精度这两个参数都应该是整数,首先是宽度,然后再是精度,两者之间通过点号来分隔。对于我们来说这两个参数都是可选参数,但是一旦给出了精度就必须要有点号。来看一看一些例子:

>>> '%10f' %pi #宽度10
'  3.141593'
>>> '%10.2f' %pi #宽度10 精度2
'      3.14'
>>> '%.2f' %pi #精度2
'3.14'

    我们在前面说过,还可以使用*号来作为字段宽度或者精度,这时候,数值会从元组参数中读出:

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

    再一个,我们还讲过符号、对齐和利用0填充,这部分让我直接来看一些例子,更加明了。

>>> '%010.2f' %pi  #使用0来填充,而并不表示010数字 为8
'0000003.14'
>>> '%-10.2f' %pi  #左对齐
'3.14      '
>>> print ('% 5d' % 10)+ '\n' +('% 5d' % -10) #中间有空格的输出,在对齐正负数时候会很有用
   10
  -10
>>> print ('%+5d' % 10)+ '\n' +('%+5d' % -10) #+号不管是正数还是负数都标出符号(同样是在对齐的时候很有用)
  +10
  -10

    3.字符串方法

    前面介绍了一些常用的字符串方法,很常用也很基础,现在我们在这里再补充一些实用的字符串方法,提供给大家参考。

  • find方法

    find方法可以在一个比较长的字符串中查找子串。返回子串所在位置的最左端索引,如果没有找到则返回-1.来看看例子:

>>> title="Monty Python's Flying Circus"
>>> title.find('Monty')
0
>>> title.find('Python')
6
>>> title.find('Flying')
15
>>> title.find('Zirquss')
-1
  • join方法

    join方法是非常重要的字符串方法,它是split方法的逆方法,用来连接序列中的元素

>>> seq=[1,2,3,4,5,6,7,8,9,10]
>>> sep='+'
>>> sep.join(seq) #连接数字列表
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: sequence item 0: expected string, int found
>>> seq=['1','2','3','4','5','6','7','8','9','10']
>>> sep.join(seq) #连接字符串列表
'1+2+3+4+5+6+7+8+9+10'

    可以看到,需要连接的序列元素必须都是字符串,连接数字列表的时候会出错。

  • split方法

    这是join的逆方法,用来将字符串分割成序列,来看看:

>>> '1+2+3+4+5+6+7+8+9+10'.split('+')
['1', '2', '3', '4', '5', '6', '7', '8', '9', '10']

    矮油,是不是很神奇,对比一下上面的程序。如果不提供任何分割符,程序会把所有的空格作为分隔符(空格、制表。换行)

    4.python zip()函数

    zip()函数用于将课迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回这些元组组成的列表。如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用*操作可以将元组解压为列表。来看看具体的例子:

>>> a=[1,2,3]
>>> b=[4,5,6]
>>> c=[4,5,6,7,8]
>>> zipped=zip(a,b) #打包为元组的列表
>>> print zipped    #元素个数与最短的列表一致
[(1, 4), (2, 5), (3, 6)]
>>> print zip(a,c)
[(1, 4), (2, 5), (3, 6)]
>>> zip(*zipped) #与zip相反,可以理解为解压,返回二维矩阵式
[(1, 2, 3), (4, 5, 6)]

 好咯,常用的也就在这里给大家添加这么多,希望大家能够记住并掌握。下一章节预告-抽象


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值