现在有一个需求, 询问用户的姓名, 年龄, 工作, 爱好, 然后打印成以下格式

************  info of Conan  ************
name: Conan
age: 23
job: student
hobbies: code
***************** end *****************

在没学格式化输出之前, 你会怎么实现呢? 你会发现, 如果直接用字符串拼接的方式去实现, 这也太麻烦了吧...

所以, 今天就学一下格式化输出的用法.

你会发现这一大堆字符串只有很少一部分是变化的, 其余部分都是一个样子. 所以我们可以先在那些需要变化的内容下放一个占位符, 然后通过把字符串里的占位符与外部变量做一个映射关系就可以了.

具体如下所示

name = input('name: ')
age = input('age: ')
job = input('job: ')
hobbies = input('hobbies: ') # 下面的每一个%s都是一个占位符
info = """
************ info of %s ************ # 代表 后面括号里的name
name: %s # 代表 后面括号里的name
age: %s # 代表 后面括号里的age
job: %s # 代表 后面括号里的job
hobbies: %s # 代表 后面括号里的hobbies
***************** end *****************
""" % (name, name, age, job, hobbies) # 这行的 % 就是把前面的字符串与括号后面的变量关联起来 print(info)

%s 就是代表字符串占位符, 除此之外, 还有%d(数字占位符).

如果把上面的age后面的%s 换成%d, 就代表必须是数字.

假如现在又有一个需求, 需要按照下列格式打印

我是 Conan, 年龄 18, 目前学习进度为1%.

如果这样写, 程序会报错:

name = input('name: ')
age = int(input('age: ')) msg = "我是%s, 年龄%d, 目前学习进度为1%." % (name, age) print(msg)

报错原因: 在格式化输出中, 只要出现 % 就认为是占位符的 % , 但是如果想向上面那样, 1%就是表示1%, 而不是占位符, 应该按照下面的方法:

name = input('name: ')
age = int(input('age: ')) msg = "我是%s, 年龄%d, 目前学习进度为1%%." % (name, age) print(msg)

我们注意到, 当我们真的只是想表达一个%的时候, 只需要写两个%就可以了, 第一个%是对第二个%的转义, 是告诉Python解释器这只是一个单纯的%, 而不是占位符.

最新文章

  1. 开发中 常用 js 记录(一)
  2. prototype数组方法的实现
  3. FastReport 中添加二维码功能.(Delphi)
  4. Windows Server 2012中安装Active Directory域服务
  5. iOS 启动图那些坑
  6. Myeclipse+maven时Tomcat部署时maven的依赖文件不能部署到Tomcat上
  7. 免费api大全(更新中)
  8. Android progressbar 详解
  9. python日志输出
  10. [LOJ 1038] Race to 1 Again
  11. 解决:Eclipse导入工程后全是错误,连基本类型都不识别
  12. 正则表达式的先行断言(lookahead)和后行断言(lookbehind)
  13. OpenRisc-45-or1200的ID模块分析
  14. SQLServer 中实现类似MySQL中的group_concat函数的功能
  15. hdu_5795_A Simple Nim(打表找规律的博弈)
  16. 网易笔试题:浏览器中输入一个url后回车到返回页面信息的过程
  17. 基于UVM的verilog验证
  18. UEditor (富文本编译器)
  19. 纯html页面中js如何获得项目路径
  20. java代码示例(4)

热门文章

  1. php 502 无错误行和报错文件的情况下使用gdb调试方法
  2. Unity编辑器环境在Inspector面板中显示变量
  3. Laravel--文件管理及上传自定义目录及文件名
  4. Flink 之 Data Source
  5. 003 接触elasticsearch的Restful Api【快速入门】
  6. PHP如何防止注入及开发安全
  7. Python脚本实现Linux/MAC中Xmind Zen去水印等其他功能的过程(V0.1)
  8. 【BIGEMAP一键离线地图服务】
  9. Linux记录-SVN+Jenkins+jdk+maven自动化集成部署
  10. centos7上安装mysql8(上)