input
很多情况下运行的 Python 程序并没有和用户交互,程序运行后就等待结果的输出。而有些程序是需要用户输入才能继续向下执行。Python 中使用 input() 函数可以很便捷地获取用户的输入:
1 | name = input("What's your name ? ") |
输出结果
1 | What's your name ? Tom |
需要注意的是, input() 返回的数据类型都是字符串
使用帮助
print() 函数是 Python 的内置方法,用于将指定的值打印到屏幕输出,或文件流。它的参数如下:
1 | help(print) |
参数说明
*values : 表示要打印的值,任何多个无名参数, 各个值之间用 , 隔开,打印出来的各个值之间默认是以空格隔开
1 | name = 'Tom' |
sep=' ': 表示当输入多个打印的值时,各个值之间分割方式, 默认是空格,也可以自定义,例如
1 | name = 'Tom' |
end='\n': 控制 print() 中传入值输出完后的结束符号,默认是换行,也可以自定义,例如:
1 | name = 'Tom' |
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 | print('%s x %s = %s' % (5, 6, 5 * 6)) |
%:占位符,标记了转换说明符的开始- 转换标志
-表示左对齐+表示在转换值之前要加上正负号(空白字符)表示正数之前保留空格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 : ") |