python的学习之旅---开始篇(二)
来源:互联网 发布:复旦软件工程硕士 编辑:程序博客网 时间:2024/06/07 12:22
字符串进阶
1、string模板提供另外一个格式化的方法:模板字符串,substitute这个模板方法会用传递进来的关键词参数foo替换字符串中的$foo
>>> from string import Template>>> s = Template('$x, glorious $x!')>>> s.substitute(x='slurm')'slurm, glorious slurm!'除了关键词参数之外,还可以使用字典变量提供值/名称对
>>> s = Template('A $thing must never $action.')>>> d={}>>> d['thing'] = 'gentleman'>>> d['action'] = 'show his sock'>>> s.substitute(d)
格式化操作符的右操作数可以是任意类型,如果是元组或者映射类型(如字典),那么字符串格式化将会有所不同。
如果右操作数是元组的话,则其中的每一个元素都会被单独格式化,每个值都需要一个对应的转换说明符。
>>> '%s plus %s equals %s' % (1,1,2)'1 plus 1 equals 2'基本转换说明符的项的顺序:
1:%字符:标记转换说明符的开始
2:转换标志:- 表示左对齐; + 表示在转换值之前要加上正负号;“”(空白字符)表示正数之前保留空格;0表示转换值若位数不够则用0填充
3:最小字段宽度:转换后的字符串至少应该具有该值的宽度。如果是*,则宽度会从值元组中读出。
4:点(.)后跟精度值:如果转换的是实数,精度值就表示出现在小数点后的位数。如果转换的是字符串,那么该数字就表示最大字段宽度。如果是*,那么精度将会从元组中读出。
>>> f=1.2234>>> '%4f' %f'1.223400'>>> '%8f' %f'1.223400'>>> '%10f' %f' 1.223400'>>> '%-10f' %f'1.223400 '>>> '%-10.3f' %f'1.223 '>>> '%-10.3f' % 1.2345678'1.235 '>>> '%-.3s' % 1.2345678'1.2'>>> '%-.3r' % 1.2345678'1.2'>>> '%-.5r' % 1.2345678'1.234'可以使用*(星号)作为字段宽度或者精度(或者两者都使用*),此时数值会从元组参数中读出
>>> '%.*s' % (5,'Guido van Rossum')'Guido'
>>> print ('%+5d' % 10) + '\n' + ('%+5d' % -10)+10-10字符串的一个例子(python 3. 3版本)
#使用给定的宽度打印格式化后的价格列表width = input('Please enter width: ')width = int(width)price_width = 10price_width = int(price_width)item_width = int(width) - int(price_width)header_format = '%-*s%*s'Format = '%-*s%*.2f'print ('=' * width )print (header_format % (item_width, 'Item', price_width, 'Price'))print ('-' * width)print (Format % (item_width, 'Apple', price_width, 0.4))print (Format % (item_width, 'Pears', price_width, 0.4))print (Format % (item_width, 'Cantaloupes', price_width, 0.4))print (Format % (item_width, 'Dried Apricots(16 oz.)', price_width, 0.8))print (Format % (item_width, 'Prunes(4 lbs.)', price_width, 12))print ('=' * width)
>>> ================================ RESTART ================================>>> Please enter width: 35===================================Item Price-----------------------------------Apple 0.40Pears 0.40Cantaloupes 0.40Dried Apricots(16 oz.) 0.80Prunes(4 lbs.) 12.00===================================
下面介绍一些有用的字符串常量:
string,digits:: 包含数字0~9的字符串
string.letters:包含所有字母的字符串
string.lowercase:包含所有小写字母的字符串
string.printable:包含所有可打印字符的字符串
string.punctuation:包含所有标点的字符串
string.uppercase:包含所有大写字母的字符串
---------------------------------------------------------------------
join方法是非常重要的字符串方法,用来连接序列中的元素
>>> dirs = '','usr','bin','env'>>> dirs('', 'usr', 'bin', 'env')>>> '/'.join(dirs)'/usr/bin/env'>>> print 'C:' + '\\'.join(dirs)SyntaxError: invalid syntax>>> print ('C:' + '\\'.join(dirs))C:\usr\bin\env
注意一:python3里面input默认接收到的事str类型
以上案例取自《Python基础教程第二版》
- python的学习之旅---开始篇(二)
- Python的学习之旅---开始篇
- Python的学习之旅---开始篇(五)
- Python的学习之旅---开始篇(六)
- 开始我的Python之旅(二)
- 开始自己的python学习之旅
- 开始Python的学习之路
- 开始我的python学习之路
- Spring-Cloud 学习之旅 --- 快速开始(二)
- Python,学习的开始
- 开始python的学习
- 开始Python之旅!
- 开始Python之旅!
- 开始Python之旅
- 开始Python之旅
- 开始python 之旅
- 开始python之旅
- 开始我的Python之旅(一)
- 一些不错的博客网址
- 详细解释:java中null 和“” 的区别
- 【U盘安装Fedora-...】U盘安装Fedora20
- python 配置篇
- DrawerLayout实现侧滑(简洁,高效)
- python的学习之旅---开始篇(二)
- 梦一场
- Java工具及技巧篇
- 1.2.3 Name That Number
- Intent和PendingIntent的区别
- 委托到底是什么?
- wp8.1 Launcher 跳转页面
- 2015年240个数据库引擎排名参考
- zoj 2060 Fibonacci Again