input
很多情况下运行的 Python 程序并没有和用户交互,程序运行后就等待结果的输出。而有些程序是需要用户输入才能继续向下执行。Python 中使用 input()
函数可以很便捷地获取用户的输入:
1 | name = input("What's your name ? ") |
输出结果
1 | What's your name ? Tom |
需要注意的是, input()
返回的数据类型都是字符串
使用帮助
print()
函数是 Python 的内置方法,用于将指定的值打印到屏幕输出,或文件流。它的参数如下:
1 | print) help( |
参数说明
*values
: 表示要打印的值,任何多个无名参数, 各个值之间用 ,
隔开,打印出来的各个值之间默认是以空格隔开
1 | 'Tom' name = |
sep=' '
: 表示当输入多个打印的值时,各个值之间分割方式, 默认是空格,也可以自定义,例如
1 | 'Tom' name = |
end='\n'
: 控制 print()
中传入值输出完后的结束符号,默认是换行,也可以自定义,例如:
1 | 'Tom' name = |
file=sys.stdout
:在 Linux 中一切皆文件,包括屏幕终端输出,file
用来设置输出到哪里,默认是输出到屏幕(标准输出),在 Python 中就是 sys.stdout
。我们可以设置 file='/tmp/test.txt'
,把内容存到该文件中
1 | f = open(r'/tmp/test.txt', 'w') |
flush=False
:刷新内存中的缓冲区数据,是否立刻将缓冲区的数据写入 file=
所指定的输出位置,默认为 False
。默认情况下 print()
将内容输出到 sys.stdout
,即标准输出(屏幕)文件,比较下面两种的参数实现进度条的效果
默认情况,flush=False
,当所有 sleep
完成之后才会写到屏幕输出文件
1 | import time |
人为干预,flush=True
,每次输出都会写到屏幕输出文件
1 | import time |
另一种实现效果
1 | import time |
请注意,如果使用了 Pycharm 在远程调试 Linux 的代码时,会给解释器添加 -u
选项,这样将会导致看不出来实际效果:
1 | ssh://root@192.168.127.129:22/opt/python3-venv/bin/python3 -u /Python3/everyday/test.py |
这时候应该在 Linux 终端执行代码查看效果。
格式化输出
Python 中的 print
继承了 C 中的 printf
,例如
1 | '%s x %s = %s' % (5, 6, 5 * 6)) print( |
%
:占位符,标记了转换说明符的开始- 转换标志
-
表示左对齐+
表示在转换值之前要加上正负号(空白字符)表示正数之前保留空格
0
表示转换值若位数不够则用0填充
最小字段宽度:转换后的字符串至少应该具有该值指定的宽度。如果是
*
,则宽度值会从元组中读出.
后跟精度值:- 如果转换的是实数,精度值就表示出现在小数点后的位数。
- 如果转换的是字符串,那么该数字就表示最大字段宽度。
- 如果是
*
,那么精度将从元组中读出
字符串格式化转换类型
转换类型 | 含义 |
---|---|
d,i | 带符号的十进制整数 |
o | 不带符号的八进制 |
u | 不带符号的十进制 |
x | 不带符号的十六进制(小写) |
X | 不带符号的十六进制(大写) |
e | 科学计数法表示的浮点数(小写) |
E | 科学计数法表示的浮点数(大写) |
f,F | 十进制浮点数 |
g | 如果指数大于-4或者小于精度值则和e相同,其他情况和f相同 |
G | 如果指数大于-4或者小于精度值则和E相同,其他情况和F相同 |
C | 单字符(接受整数或者单字符字符串) |
r | 字符串(使用repr转换任意python对象) |
s | 字符串(使用str转换任意python对象) |
示例
1 | # 最小宽度为2,默认右对齐 |
颜色输出
示例
1 | print('\033[0;31m Hello \033[0;39m') |
说明
\
代表转义033
代表键盘的Control键1
字体行为(高亮,闪烁,下划线等);36
字体颜色41
字体背景色
注:
字背景颜色和文字颜色之间是英文的分号
;
文字颜色后面有个m
字符串前后可以没有空格,如果有的话,输出也是同样有空格
文字和背景颜色搭配
字体颜色范围值 30~37
1 | "\033[30m 黑色字 \033[0m" |
字体背景颜色范围值 40~47
1 | "\033[40;37m 黑底白字 \033[0m" |
控制选项说明
1 | \033[0m # 关闭所有属性 |
额外说明
前景颜色各数字是对应背景颜色减去10
结束非常规字符序列的
m
要紧跟前面的数字,不能有空格
练习
输入的内容如下
1 | name = input("Input your name : ") |
输出格式:
1 | ---------- Info of Jerry ---------- |
示例代码:
1 | name = input("Input your name : ") |