当前位置: 移动技术网 > IT编程>脚本编程>Python > python3 开发面试题(%s和format的区别)5.31

python3 开发面试题(%s和format的区别)5.31

2018年06月02日  | 移动技术网IT编程  | 我要评论

广电禁播动漫,yy5520,刘伯温语录

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

  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))   # 千分位格式化

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网