博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python字符串格式化
阅读量:6962 次
发布时间:2019-06-27

本文共 1771 字,大约阅读时间需要 5 分钟。

一、前言

Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。上海python培训-上海尚学堂编辑写作。

图片描述

Python vs. C: 格式化字符串,在 Python 中,字符串格式化使用与 C 中 sprintf 函数一样的语法。(大家还记得C语言中sprintf吗?不记得可以问百度)

二. 字符串的格式化

>>> k = "uid">>> v = "sa">>> "%s=%s" % (k, v) (1)'uid=sa'

整个表达式的值为一个字符串。第一个 %s 被变量 k 的值替换;第二个 %s被 v 的值替换。字符串中的所有其它字符 (在这个例子中,是等号) 按原样打印输出。

注意 (k, v) 是一个 tuple。我说过它们对某些东西有用。您可能一直在想,做了这么多工作只不过是为了做简单的字符串连接。您想的不错,只不过字符串格式化不只是连接。它甚至不仅仅是格式化。它也是强制类型转换。

三. 字符串格式化与字符串连接的比较

>>> uid = "sa">>> pwd = "secret">>> print pwd + " is not a good password for " + uid (1)secret is not a good password for sa>>> print "%s is not a good password for %s" % (pwd, uid) (2)secret is not a good password for sa>>> userCount = 6>>> print "Users connected: %d" % (userCount, ) (3) (4)Users connected: 6>>> print "Users connected: " + userCount (5)Traceback (innermost last):File "
", line 1, in ?TypeError: cannot concatenate 'str' and 'int' objects

(1) + 是字符串连接操作符。

(2) 在这个简单例子中,字符串格式化实现与连接一样的结果。

(3) (userCount, ) 是一个只包含一个元素的 tuple。是的,语法有一点奇怪,但是使用它的理由就是:显示地指出它是一个 tuple,而不是其他。实际上,当定义一个 list、tuple 或 dictionary 时,您可以总是在最后一个元素后面跟上一个逗号,但是当定义一个只包含一个元素的 tuple 时逗号是必须的。如果省略逗号,Python 不会知道 (userCount) 究竟是一个只包含一个元素的tuple 还是变量 userCount 的值。

(4) 字符串格式化通过将 %s 替换成 %d 即可处理整数。

(5) 试图将一个字符串同一个非字符串连接会引发一个异常。与字符串格式化不同,字符串连接只能在被连接的每一个都是字符串时起作用。如同 printf 在 C 中的作用,Python 中的字符串格式化是一把瑞士军刀。它有丰富的选项,不同的格式化格式符和可选的修正符可用于不同的数据类型。

四. 数值的格式化

>>> print "Today's stock price: %f" % 50.4625 (1)50.462500>>> print "Today's stock price: %.2f" % 50.4625 (2)50.46>>> print "Change since yesterday: %+.2f" % 1.5 (3)+1.50

(1) %f 格式符选项对应一个十进制浮点数,不指定精度时打印 6 位小数。

(2) 使用包含“.2”精度修正符的 %f 格式符选项将只打印 2 位小数。

(3) 您甚至可以混合使用各种修正符。添加 + 修正符用于在数值之前显示一个正号或负号。注意“.2”精度修正符仍旧在它原来的位置,用于只打印 2 位小数。

欢迎阅读上海python培训文章,获取更多内容推荐

《》

《》

《》

《?》

转载地址:http://mowsl.baihongyu.com/

你可能感兴趣的文章
navicat连接腾讯云MySQL
查看>>
嵌入式Linux加快物联网开发速度的方案研究
查看>>
java程序员如何拿到2万月薪
查看>>
redis常用命令总结
查看>>
ActiveMQ —— <一> 概述
查看>>
SylixOS内核打印调试方法.
查看>>
加号+和减号-
查看>>
详解Mysql分布式事务XA(跨数据库事务)
查看>>
移动端概述和hybird模式、响应式布局
查看>>
2018年,成功的创业公司网站是怎么设计的?
查看>>
MySQL数据库开发规范
查看>>
安装elasticsearch
查看>>
MySQL 创始人:写代码比打游戏还爽,程序员应该多泡开源社区
查看>>
构造器内部的多态方法的行为
查看>>
Android Studio库Module引用aar文件
查看>>
008-tar,gzip,bzip2的使用
查看>>
静态单元格
查看>>
浅谈 MySQL 集群高可用架构
查看>>
两个路径与四个centos7命令
查看>>
学习之初
查看>>