用format()格式化输出

目录

基本格式化输出

整数输出

浮点数输出

字符串输出

多个变量

通过format()输出

填充方法

基本格式化输出

整数输出

%o:八进制        %d:十进制        %x:十六进制

num = 1234
print("%o" % num)
print("%d" % num)
print("%x" % num)

用format()格式化输出_第1张图片

浮点数输出

num = 3.1415926
print('%f' % num)	#默认保留6位小数
# 3.141593
print('%.1f' % num)	#取1位小数
# 3.1
print('%e' % num)	#默认6位小数,用科学计数法
# 3.141593e+00
print('%g' % num)#默认6位有效数字
# 3.14159
print('%.5g' % num)#取5位有效数字
# 3.1416
print('%.2g' % num)#取2位有效数字,自动转换为科学计数法
# 3.1

字符串输出

print('%s' % 'hello world')  # 字符串输出
hello world
print('%20s' % 'hello world')  # 右对齐(20位)
         hello world
print('%-20s' % 'hello world')  # 左对齐(20位)
hello world         
print('%.2s' % 'hello world')  # 2位
he
print('%10.2s' % 'hello world')  # 右对齐(10位),取2位字符
        he
print('%-10.2s' % 'hello world')  # 左对齐(10位),取2位字符
he

多个变量

print("Hex = %x Dec = %d Oct=%o" % (num, num, num))
# Hex = 4d2 Dec = 1234 Oct=2322

通过format()输出

format() 是python中的一个格式化输出的方法,作用上近于% ,使用上有很多它自身的优点:

1. 不需要关注数据类型的问题,(在%方法中%s只能替代字符串类型)。

2. 单个参数可以多次输出,参数顺序可以不相同。

3. 填充方式十分灵活,对齐方式十分强大。

4. 使用大括号‘{}’代替‘%’

填充方法

1. 通过位置填充

print('{} {}'.format('hello', 'world'))
# hello world
print('{0} {1}'.format('hello', 'world'))
# hello world
print("{1} {1}".format('hello', 'world'))
# world world
print('{0} {1} {0}'.format('hello', 'world'))
# hello world hello
print('{a} {b} {a}'.format(b='hello', a='world'))
# world hello world
print('X: {0}  Y:{2}'.format(*'abc'))  # *'abc' = 'a', 'b', 'c'
# X:a Y:c

编号可写也可不写,不写编号时要保证{}的个数与字符串或字符的数目相同,以免发生错误。

2. 通过字典填充

names = ['Sarah', 'John']
print('hello {names[0]} my name is {names[1]}'.format(names=names))
# hello Sarah my name is John

3. 通过名称填充

print('name: {names}, age: {ages}'.format(names='Sarah', ages='18'))
# name: Sarah, age: 18

4. 通过key匹配

names = ['Sarah', 'John']
print('hello {0[0]} my name is {0[1]}'.format(names))
# hello Sarah my name is John

5. 通过对象的属性

class Names:
    name1 = 'Sarah'
    name2 = 'John'
print('hello {names.name1} my name is {names.name2}'.format(names=Names))
# hello Sarah my name is John

6. 通过魔法参数 *   **

args=['ming']
kwargs = {'name1': 'xiao', "name2": 'John'}
print('hello {name1} {} my name is {name2}'.format(*args, **kwargs))
# hello xiao ming my name is John

6. 其他用法

mess = "{0} {1}".format("hello", "world")
print(mess)
# hello world
a = "hello"
b = "world"
print(f"{a} {b}")
# hello world
name = 'jack'
age = 18
print(f'my name is {name.capitalize()}.')
# my name is Jack
print(f'I am {age:*^10} years old.')
# I am ****18**** years old

加上f 用来格式转换

7. 格式化

from datetime import datetime
now = datetime.now()
print('{:%Y-%m-%d %X]}'.format(now))
# 2022-01-30 13:08:24
print('hello {0:>{1}} '.format('tom', 20))
# hello                  tom
print('{!s}'.format('2'))
# 2
print('{!r}'.format('2'))
# '2'
# !后面加s r a 分别对应str() repr() ascii()

你可能感兴趣的:(p2p,网络协议,网络,python)