在格式化字符串中有两种方法:

  1、%s

  2、format

大家常用的是哪一种方法?为什么要用你选的这种方法?

我们先看一个例子:

首先我们定义一个我军需要击杀的恐怖分子的地理坐标为 c=(128,128)

# 利用%进行字符串格式化
print("向他开炮:%s" % c) #报错 TypeError: not all arguments converted during string formatting print("向他开炮:%s" % (c, )) #正确的写法 # 用format进行字符串的格式化
print("向他开炮:{}".format(c))

format的常见方法:

#通过关键字
d1 = {"name": "duoduo", "age": 18}
# s = "{name} is {age} years old.".format(d1["name"], d1["age"])
s = "{name} is {age} years old.".format(**d1)
print(s) #通过对象属性
class Person(): def __init__(self, name, age):
self.name = name
self.age = age def __str__(self):
return "{self.name} - {self.age}".format(self=self) p1 = Person("duoduo", 18)
print(p1) #通过下标
l1 = ["duoduo", 18]
# s = "{} is {} years old. {} 帅。".format(l1[0], l1[1], l1[0])
# s = "{0} is {1} years old. {0} 帅。".format(l1[0], l1[1])
s = "{0[0]} is {0[1]} years old. {0[0]} 帅。".format(l1)
print(s) #填充与对齐
print("duoduo".center(20, "*")) #填充左右
print("{:>10}".format("duoduo")) #左边空格填充
print("{:0>10}".format("duoduo")) #左边0填充
print("{:*>10}".format("duoduo")) #左边*填充
print("{:*^10}".format("duoduo")) #左右填充
print("{:*<10}".format("duoduo")) #右边用*填充 print("duoduo".zfill(18)) # 0填充 print("{:.2f}".format(3.141592653)) #保留两位小数
print("{:b}".format(10)) #二进制
print("{:d}".format(10)) #十进制
print("{:o}".format(10)) #八进制
print("{:x}".format(10)) #十六进制 print("{:,}".format(1000000)) # 千分位格式化

python3 开发面试题(%s和format的区别)5.31的更多相关文章

  1. python3 开发面试题(面向对象)6.6

    """ 封装.继承.多态 1. 谈谈你对面向对象的理解? 2. Python面向对象中的继承有什么特点? 3. 面向对象深度优先和广度优先是什么? 4. 面向对象中sup ...

  2. python3 开发面试题(collections中的Counter)6.7

    ''' 编写Python脚本,分析xx.log文件,按域名统计访问次数 xx.log文件内容如下: https://www.sogo.com/ale.html https://www.qq.com/3 ...

  3. python3 开发面试题(创建表结构)6.9

    纯sql语句写出: '''设计 图书管理系统 表结构: - 书 - 书名 - 作者 - 姓名 - 出版社 - 出版社名称 - 地址 一本书只能由一家出版社出版 --> 多对一(书对出版社) 一本 ...

  4. python3 开发面试题(常用模块以及第三方库)6.5

    """ 1. os和sys都是干什么的? 2. 你工作中都用过哪些内置模块? 3. 有没有用过functools模块? """ #sys模块 ...

  5. python3 开发面试题(装饰器必须考)6.4

    def f(): print("2018-06-04") # 每次调用f的时候 在打印"2018-06-04" 之前打印一句 开始, 之后再打印一句 结束 de ...

  6. python3 开发面试题(去重保持原来的顺序)6.2

    """ l1 = [11, 2, 3, 22, 2, 4, 11, 3] 去重并保持原来的顺序 """ #方式一 for 循环方法 l1 = ...

  7. python3 开发面试题(字典和拷贝)5.30

    """ 问:执行完下面的代码后, l,m的内容分别是什么? """ def func(m): for k,v in m.items(): m ...

  8. python3 开发面试题(生成列表)6.1

    话不多说直接上题: 生成如下列表: [[0, 0, 0, 0, 0], [0, 1, 2, 3, 4], [0, 2, 4, 6, 8], [0, 3, 6, 9, 12]] # 方式一 list1 ...

  9. 【理论面试篇】收集整理来自网络上的一些常见的 经典前端、H5面试题 Web前端开发面试题

    ##2017.10.30收集 面试技巧 5.1 面试形式 1)        一般而言,小公司做笔试题:大公司面谈项目经验:做地图的一定考算法 2)        面试官喜欢什么样的人 ü  技术好. ...

随机推荐

  1. npm安装node-sass失败,EACCES: permission denied

    增加--unsafe-perm,即 sudo npm install node-sass --unsafe-perm --save-dev 成功安装node-sass

  2. Nginx配置配置文件详解

    文章目录 配置文件 nginx.conf配置文件详解 用于调试.定位问题的配置参数 正常运行必备的配置参数 优化性能的配置参数 事件相关配置 Fastcgi相关配置参数 常需要调整的参数 nginx作 ...

  3. DOM遍历查找结点

    一.遍历API(2个) 1.深度优先原则遍历NodeIterator 节点迭代器 创建遍历API对象: var iterator=document.createNodeIterator(开始的父节点对 ...

  4. Tomcat启动报错:java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addServlet

    测试tomcat的comet Java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addServlet 异常 因为工程 ...

  5. TCP的三次握手和四次挥手+TCP和UDP的区别

    TCP的三次握手: LISTEN:表示服务器端的某个socket处于监听状态,可以接收连接了. SYN_SENT:当客户端SOCKET执行connect连接时,它首先发送syn报文,随即会进入到此状态 ...

  6. CHM文件出现的常见错误及解决办法

    一.chm文件内容乱码: 解决方式:将IE浏览器的编码换成自动选择,或者选择UTF-8和GBK看那个能使用.因为chm文件默认的是IE浏览器的内核. 二.easy chm软件编译文件时左侧索引乱码,源 ...

  7. SSM+Maven的JavaWeb项目中的异常的可能性

    1.404 可能:1):被拦截了,即:springmvc中的controller可能不存在,可能没有被配置,可能配置出错 2):资源确实不存在 3):路径出错 2.500,程序异常,但是业务逻辑什么都 ...

  8. [ 总结 ] nginx 编译参数中文详解

    贴出来,方便查找和学习. nginx 编译参数: --prefix=PATH    指向安装目录--sbin-path=PATH    指向(执行)程序文件--conf-path=PATH    指向 ...

  9. html实现点击章节自动调到开头

    #转载请联系 原理是用id的值结合a链接实现锚点效果.比较简单,直接放一段代码好了. <!DOCTYPE html> <html lang="en"> &l ...

  10. 错误: 在类 Main 中找不到 main 方法, 请将 main 方法定义为: public static void main(String[] args) 否则 JavaFX 应用程序类必须扩展javafx.application.Application

    错误: 在类 Main 中找不到 main 方法, 请将 main 方法定义为: public static void main(String[] args)否则 JavaFX 应用程序类必须扩展ja ...