![在这里插入图片描述](https://img-blog.csdnimg.cn/a2d62b864993478ab39983c015ac02ce.png)
1. input 标准输入
1.1 input 介绍
Python 内置 input() 函数接收一个标准输入数据, 返回为字符串类型对象.
程序在执行到 input() 函数时会进入待输入状态, 要求输用户在运行工具窗口输入信息,
输入数据后, 按下回车提交数据(回车也就是尾部换行符 '\n' 会被删除), 程序继续往下运行.
1.2 待输入状态
input()
print('hello world!')
运行下列程序之后, 将鼠标点击到运行工具窗口, 出现一个光标闪烁.
出现光标后, 表示进入待输入状态, 输入完毕按下回车提交输入的字符串数据, 程序将继续执行.
直接回车的表示提交空字符串.
![2022-11-11_01418](https://img-blog.csdnimg.cn/img_convert/a98c3eb3f3f908061645ac783425e84a.png)
1.3 输入提示
input() 函数可以接收一个字符串参数, 该字符串会展示在运行工具窗口, 用于提示.
没有描述信息的话, 输入全靠猜, 在设置提示之后, 简单明了.
input("你好, 请看到这个信息在这里输入你的名称>>>>>: ")
print('久等了···')
![2022-11-11_01419](https://img-blog.csdnimg.cn/img_convert/d1f6e000bba905044c438db2ef2df8e8.png)
1.4 接收提交数据
将提交的数据赋值给变量, 提交的数据都会被转为字符串类型.
* 注意点 name = input('输入>>:'),
* ↑ 如果尾部有一个逗号, name 是一个元组.
name = input("你好, 请看到这个信息在这里输入你的名称>>>>>: ")
print(name)
print(type(name))
![2022-11-11_01421](https://img-blog.csdnimg.cn/img_convert/1bf03088f04894153582f6dffc9aab67.png)
提交的是一个整型, 使用type() 查看提交后数据的类型为字符串类型.
1.5 输入版本差异
Python3 提交的所有数据都会被转换为字符串类型.
Python2 提交的数据类型不会变化.
python3 的的中的 input 其实是 Python2 中的 raw_input().
raw_input() 直接读取控制台的输入, 任何类型的输入它都可以接收, 并转换为字符串.
str1 = input('input>>>:')
print(str1)
print(type(str1))
str2 = raw_input('input>>>:')
print(str2)
print(type(str2))
2. print 格式化输出
2.1 print 介绍
Python 内置 print() 函数: 用于格式化输出.
* Python2 如果可以省略括号.
print(self, *args, sep=' ', end='\n', file=None)
args: 可以同时输出多个对象, 对象之间使用逗号隔开.
sep: 多个对象的间隔距离, 默认是一个空格.
end: 设置输出的结尾符号, 默认为换行符.
file: 输出位置, 默认为当前sys.stdout(系统的标准化输出).
print(1, 2, 3)
![2022-11-11_01427](https://img-blog.csdnimg.cn/img_convert/22f11c49b9ae2a2f0d40611a4312f8cb.png)
2.2 间隔参数
sep 间隔参数: 多个对象的间隔距离, 默认是一个空格.
print(1, 2, 3, sep=' ')
print(1, 2, 3, sep='')
print(1, 2, 3, sep='+')
![2022-11-11_01429](https://img-blog.csdnimg.cn/img_convert/ccf42c94c95ca1a73e33716677401153.png)
2.3 结尾符参数
end 结尾符参数: 设置输出的结尾符号, 默认为换行符.
print(1, 2, 3, end='')
![2022-11-11_01428](https://img-blog.csdnimg.cn/img_convert/8276ad0e3503c66d651dbf52847787d9.png)
2.4 快捷写法
在Pycharm中打印字符串的快捷写法.
输出对象.print tab键
![在这里插入图片描述](https://img-blog.csdnimg.cn/img_convert/cfefd875c26d3677c65707ff6965c4aa.gif)
2.5 格式化输出
1. 占位符
使用占位符在字符串中占位, 之后将内容替换到占位处.
格式化输入原理: 利用占位符, 先占位, 后传值, 一个占位传一个值, 值不能多传, 也不能少传.
转换说明符 | 解释 |
---|
%d, %i | 转换为带符号的十进制整数 |
%o | 转换为带符号的八进制整数 |
%x, %X | 转换为带符号的十六进制整数 |
%e | 转化为科学计数法表示的浮点数(e 小写) |
%E | 转化为科学计数法表示的浮点数(E 大写) |
%f、%F | 转化为十进制浮点数 |
%g | 智能选择使用 %f 或 %e 格式 |
%G | 智能选择使用 %F 或 %E 格式 |
%c | 格式化字符及其 ASCII 码 |
%r | 使用 repr() 函数将表达式转换为字符串 |
%s | 使用 str() 函数将表达式转换为字符串 |
2. 单参数替换
字符串中使用一个占位符就需要传递一个参数.
print('%6d' % 123)
运行工具窗口显示:
123
![2022-11-21_01594](https://img-blog.csdnimg.cn/img_convert/52630d6d4a8f55b9cc8745346d1c73f3.png)
![image-20221111203250959](https://img-blog.csdnimg.cn/img_convert/f23ae864edae542201a92455056be88c.png)
3. 多参数替换
字符串中使用几个占位符就需要传递几个参数, 参数需要写在元组中.
参数严格按前后顺序依次替换.
print('%s %s' % (1, 2))
t1 = 1, 2
print('%s %s' % t1)
运行工具窗口显示:
1 2
1 2
![202211032301085](https://img-blog.csdnimg.cn/img_convert/a397e10336b92670ef29e7e208792c5d.png)
4. 字典形式传值
以字典的形式传值, 可以打破位置的限制.
在 % 与数据格式字符中间添加中括号, 中括号中写字典中key的名字.
str1 = "我的名字是 %(name)s 我的年龄是 %(age)s." % {"age": "18", "name": 'kid'}
print(str1)
5. 转换类型
print('--> %s <--' % 18)
print('--> %s <--' % [1, 23])
print('--> %s <--' % {'a': 333})
print('--> %d <--' % 18)
运行工具窗口显示:
--> 18 <--
--> [1, 23] <--
--> {'a': 333} <--
--> 18 <--
%d只能接收int 否则提示:
英 TypeError: %d format: a number is required, not str.
中 类型错误:%d格式:需要数字,而不是字符串.
6. 辅助指令
格式化操作符辅助指令的辅助符号在格式字符串 % 和符号中间使用.
标志 | 说明 |
---|
* | 定义宽度或小数点精度. |
- | 指定左对齐. |
+ | 输出的数字总要带着符号;正数带+ , 负数带- . |
| 显示整数前面的空格(默认就有的, 不是在% 和符号中间使用). |
0 | 宽度不足时:数字类型补充 0, 字符类型补充空格. |
# | 显示八进制与十六进制的前缀, 八进制’0’, 十六进制小写’0x’, 大写’0X’. |
% | ‘%%’ 输出一个百分号’%'. |
(var) | 映射变量(字典参数). |
m.n | m是显示的最小宽度, n 是小数点后面的位数. |
print('%6d' % 123)
print('%06d' % 123)
print('%6d' % 12345678)
print('%*d' % (6, 123))
print('%10.6f' % 123.456)
print("123%3s56" % 4)
print('%%%d' % 1)
运行工具窗口显示:
123
000123
12345678
123
123.456000
123 456
%1
2.6 .format 格式
1. 介绍
.format() 是字符串的一个方法, 仅 Python3 支持, 官方推荐使用!.
字符串中使用 {} 中括号占位, 使用 .format(参数1, 参数2, ...) 方法传递参数.
使用参数的方式:
* 1. 中括号默认是按传入顺序依次使用参数.
* 2. 传入的参数是一个有序的集合, 中括号中使用索引获取对应的值.
* 3. 中括号中写变量名获取值.
str1 = '我的名字是 {} 我的年龄是 {}.'.format('kid', 18)
print(str1)
str2 = '我的名字是 {0} {0} {0} 我的年龄是 {1} {1}.'.format('kid', 18)
print(str2)
age = 18
str3 = '我的名字是 {name} {name} {name} 我的年龄是 {age} {age}.'.format(name='kid', age=age)
print(str3)
运行工具窗口显示:
我的名字是 kid 我的年龄是 18.
我的名字是 kid kid kid 我的年龄是 18 18.
我的名字是 kid kid kid 我的年龄是 18 18.
2. 格式
{ x :b} 二进制格式
{ x :o} 八进制格式
{ x :x} 十六进制格
{ x :,} 千分位格式
{ x :.n格式} n 为精度
print('{salary:.3f}'.format(salary=1232132.12351))
print('{0:b}'.format(123))
print('{0:o}'.format(9))
print('{0:x}'.format(15))
print('{0:,}'.format(99812939393931))
运行工具窗口显示:
1232132.124
1111011
11
f
99,812,939,393,931
3. 辅助指令
先通过索引方式取到值, 然后在冒号后设定填充格式: [填充字符][对齐方式][宽度]
* 填充字符默认不写就是空格
齐方式:
< 左对齐
> 右对齐
^ 居中
print('{0:*<10}'.format('开始执行'))
print('{0:*>10}'.format('开始执行'))
print('{0:*^10}'.format('开始执行'))
运行工具窗口显示:
开始执行******
******开始执行
***开始执行***
2.7 f-string 格式
f 格式话输出 在 Python3.5 开始才推出, 直接在括号内使用变量.
可以使用 .format() 方法的格式与辅助指令.
str1 = 'hello'
num = 1800
print(f'{str1:*^10} {str1} {num:,} {num:x}')
3. 字符串转义
3.1 转义字符
转义字符 | 说明 |
---|
\n | 换行符, 将光标位置移到下一行开头. |
\r | 回车符, 将光标位置移到本行开头. |
\t | 水平制表符, 也即 Tab 键, 一般相当于四个空格. |
\a | 蜂鸣器响铃.注意不是喇叭发声, 现在的计算机很多都不带蜂鸣器了, 所以响铃不一定有效. |
\b | 退格(Backspace), 将光标位置移到前一列. |
\\ | 反斜线 |
\’ | 单引号 |
\" | 双引号 |
\ | 在字符串行尾的续行符, 即一行未完, 转到下一行继续写. |
3.2 覆盖打印案例
覆盖打印: 打印一次, 延时1秒, 在打印,
sed="" 设置print不换行打印.
\r 将光标位置移到本行开头, 再次打印的话将上次的内容覆盖.
time.sleep(1) 延时一秒.
import time
print("\r离程序退出还剩%s秒" % 3, end="")
time.sleep(1)
print("\r离程序退出还剩%s秒" % 2, end="")
time.sleep(1)
print("\r离程序退出还剩%s秒" % 1, end="")
time.sleep(1)
print("\r离程序退出还剩%s秒" % 0, end="")
![GIF 2022-11-11 21-54-03](https://img-blog.csdnimg.cn/img_convert/3a36ae02269046dec5133ffec17d1125.gif)
import time
for i in range(10):
print("\r离程序退出还剩%s秒" % (9 - i), end="")
time.sleep(1)
![GIF 2022-11-11 21-54-55](https://img-blog.csdnimg.cn/img_convert/4037197b2b12c85f051af8916866954e.gif)
4. 练习
1.写一段程序
接收用户输入的用户名、年龄、性别, 然后按照如下格式输出:
我的名字是:xxx
我的年龄是:xxx
我的性别是:xxx
2.用户输入姓名、年龄、工作、爱好 , 然后打印成以下格式
------------ info -----------
姓名 : KID
年龄 : 22
工作 : XX
爱好 : YY
------------- end ------------
文章的段落全是代码块包裹的, 留言0是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言1是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言2是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言3是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言4是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言5是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言6是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言7是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言8是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言9是为了避免文章提示质量低.