一、print 函数

1、打印字符串

print 函数可以接受多个字符串,用逗号“,”隔开,就可以连成一串输出:

>>> print('The quick brown fox', 'jumps over', 'the lazy dog')
The quick brown fox jumps over the lazy dog

print() 会依次打印每个字符串,遇到逗号“,”会输出一个空格。

print 函数的原型:

print(self, *args, sep=' ', end='\n', file=None)
	sep 参数: 分隔的符号,默认是一个空格;
	end 参数: 打印后的结束方式,默认为换行符 \n。

如果,设置 end=‘’,则可以不换行,让 print 在一行内连续打印。

2、打印数或计算结果:

>>> print(100 + 200)

因此,我们可以把计算100 + 200的结果打印得更漂亮一点:

>>> print('100 + 200 =', 100 + 200)

二、print 格式化输出

% 运算符

格式化字符串,它相当于一个字符串模板,可以放置一些转换说明符(占位符)。

字符串格式

% [( name )][ flag ][ width ][ . ][ precision ] type

name:可为空,数字(占位),命名(传递参数名,不能以数字开头)以字典格式映射格式化,其为键名;	
flag:标记格式限定符号,包含+-#和0,+表示右对齐(会显示正负号),-左对齐,前面默认为填充空格(即默认右对齐),0表示填充0,#表示八进制时前面补充0,16进制数填充0x,二进制填充0b;	
width:宽度(最短长度,包含小数点,小于width时会填充);	
precision:小数点后的位数;	
type:输入格式类型。
>>> print("我叫 %s " % '王凯')
>>> print("我叫 %s 今年 %d 岁!" % ('王凯', 18))
# >>> print("我叫 %s 今年 %d 岁! python 得分 %d" % ('王凯', 18))

>>> name = '王凯'
>>> age = 18
>>> s = "我叫 %s  今年 %d 岁!" # 构造一字符串,将其中可变的部分用变量或值替代。
>>> print(s % (name, age)) # 输出格式可以固定下来,只要改变 name 和 age 就可以了。

python 转换说明符:

%s	 格式化字符串
  %d	 格式化整数  
  %f	 格式化浮点数字,默认保留小数点后面六位有效数字。
  %c	 格式化字符及其ASCII码

1、指定最小输出宽度

当数据的实际宽度小于指定宽度时,会在左侧以空格补齐;当数据的实际宽度大于指定宽度时,会按照数据的实际宽度输出。

>>> n = 1234567
>>> print("n = %10d" % n)

2、指定对齐方式

默认情况下,print() 输出的数据总是右对齐的。

- 指定左对齐
+ 表示输出的数字总要带着符号;正数带+,负数带-。
0 表示宽度不足时补充 0,而不是补充空格。

说明:

- 对于整数,指定左对齐时,在右边补 0 是没有效果的,因为这样会改变整数的值。 
 - 对于小数,以上三个标志可以同时存在。
 - 对于字符串,只能使用-标志,因为符号对于字符串没有意义,而补 0 会改变字符串的值。

3、指定小数精度

对于小数(浮点数),print() 还允许指定小数点后的数字位数,也即指定小数的输出精度。

精度值需要放在最小宽度之后,中间用点号.隔开;也可以不写最小宽度,只写精度。具体格式如下:

%m.nf
%.nf

m 表示最小宽度,n 表示输出精度。

f = 3.141592653
# 最小宽度为8,小数点后保留3位
print("%8.3f" % f)
# 最小宽度为8,小数点后保留3位,左边补0
print("%08.3f" % f)
# 最小宽度为8,小数点后保留3位,左边补0,带符号
print("%+08.3f" % f)

练习


Python输出余数的程序怎么写 python用%输出_Python输出余数的程序怎么写

Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。

三、内置函数 format

format(11123432156465798, ',')  # 内置函数
name = '小明'
age = 19
'我叫{},今年{}岁。'.format(name, age) # 字符串的format 方法

一)传递参数

1、传递位置参数

print('我叫{},今年{}岁。'.format('小明', 18))
print('我爱吃{}和{}。'.format('香蕉', '苹果', '大鸭梨'))
# print('我还吃{}和{}。'.format('西红柿'))
# 注意:花括号个数可以少于位置参数的个数,反之不然。

print('身高{0},家住{1}。'.format(1.8, '铜锣湾'))
print('我爱{0}。\n她今年{1}。\n{0}也爱我。'.format('阿香', 17))
# {0} 等价于 tuple[0] 即第一个参数,所以花括号内的数字不能越界。
# print('{1}'.format('错误用法'))

2、传递关键字参数

print('我大哥是{name},今年{age}岁。'.format(name='超人', age=20))
print('我大哥是{name},今年{age}岁。'.format(age=20, name='超人'))

3、位置参数和关键字参数混合使用

print('这是一个关于{0}、{1}和{girl}的故事。'.format('小明', '阿飞', girl='阿香')) # 关键字参数必须位于位置参数之后
# print('这是一个关于{0}、{1}和{girl}的故事。'.format('小明', girl='阿香', '阿飞'))
print('这是一个关于{}、{}和{girl}的故事。'.format('小明', '阿飞', girl='阿香'))
# print('这是一个关于{}、{1}和{girl}的故事。'.format('小明', '阿飞', girl='阿香')) 
# {} 和 {非负整数} 不能同时使用

二)格式说明符

[ : ][[ 填充 ] 对齐方式 ][ 正负号 ] [ # ] [ 0 ][ 宽度 ][ 分组选项 ][.精度 ][ 类型码 ]
{ [ name ][ : ][[ fill ] align ][ sign ][ # ][ 0 ][ width ][ , ][ .precision ][ type ] }
fill =  <any character>  # fill 填充一个字符	
align =  "<" | ">" | "=" | "^"  # align 对齐方式,< 左对齐, > 右对齐,^ 居中对齐,默认右对齐。	
sign  =  "+" | "-" | " "  # sign 符号, +表示正号, -表示负号
width =  integer  # width 最小宽度,表示最少输出多少位
precision =  integer  # precision 小数保留位数 或 字符串选取字符的个数
type =  "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"  # type 输出类型,默认是 s 。
1、填充与对齐方式

填充:

只能是一个字符,默认为空格填充;如果指定填充字符,则必须要同时指定对齐方式。

对齐方式:

<:左对齐 	>:右对齐 	^:居中
=:在正负号(如果有的话)和数字之间填充,该对齐选项仅对数字类型有效。它可以输出类似 +0000120 这样的字符串。

注意:

如果不给定最小宽度 width,对齐方式毫无意义。

2、最小宽度

最小宽度 width:

如果最小宽度前面有一个前导 0,意味着用 0 填充;
这等价于指定了 0= 的填充和对齐方式

3、精度
精度指定了小数点后面要展示多少位小数,对于非数字类型,精度指定了最大字段宽度。
整数类型不能指定精度
# 对于非数字类型,精度指定最大字段宽度
print('{0:.3}'.format('Python 教程'))
# 整数类型不能指定精度
print('{:.3d}'.format(666))
4、正负号

正负号选项仅对数字类型生效,取值有三种:

+ 正数前面添加正号,负数前面添加负号
- 仅在负数前面添加负号(默认行为)
空格:正数前面需要添加一个空格,以便与负数对齐
# 正负号
print('{:哈=+8.2f}'.format(3.14159))
print('{:哈=+8.2f}'.format(-3.14159))
print('{:哈=+8.2f}'.format(0))
print('{:哈=+8.2f}'.format(-0))
5、# 号 进制转换与删除进制前缀

10进行十进制,十六进制,八进制,二进制的转换:
(#:保留进制前缀)

"int: {0:d}; hex: {0:x}; oct: {0:o}; bin: {0:b}".format(10)
"int: {0:d}; hex: {0:#x}; oct: {0:#o}; bin: {0:#b}".format(10)

对于带着进制前缀的,如"0x"“0o”“0b”,可以直接在后面加上’x’‘o’'b’进行删除:

format(0o120, 'o')
format(0xa, 'x')
format(0b1010, 'b')
6、 分组选项

分组选项的取值有两种:

逗号 ,:使用逗号对数字以千为单位进行分隔。n 类型的数字可以使用本地化的分隔符。

n 类型在本机无法使用分组选项 ,原因可能是中文没有数字分隔符

# n 类型使用本地化的分组选项 ,
# 此项报错,我怀疑是因为中文没有数字的分隔符
# print('数字:{0:,n}'.format(6666))

# 使用 d 类型确实是可以的
print('数字:{0:,d}'.format(6666))

下划线 _:使用下划线对浮点数和 d 类型的整数以千为单位进行分隔。对于 b、o、x 和 X 类型,每四位插入一个下划线,其他类型都会报错。

# 分组选项 _ 作用于 b 类型
print('数字:{0:_b}'.format(0b100111011))

# 分组选项 _ 作用于 o 类型
print('数字:{0:_o}'.format(0o426754316))

# 分组选项 _ 作用于 x 类型
print('数字:{0:_x}'.format(0x2a846e98d))

# 分组选项 _ 作用于 X 类型
print('数字:{0:_X}'.format(0X2a846e98d))

# 分组选项 _ 作用于其他类型(比如 n 类型)
# print('字符串:{0:_n}'.format(1234567))
7、类型码

类型码可以分为三大类:

字符串类型
整数类型
浮点数类型
8、格式说明符本身可以是一个字段名,比如:
print('{0:{1}}'.format(3.14159, '.4f'))
print('{:.{}f}'.format(3.14159, 4))

练习

输出下列图形

Python输出余数的程序怎么写 python用%输出_左对齐_02


Python输出余数的程序怎么写 python用%输出_字符串_03