Python用户交互input()和print()
一 、程序与用户交互
1.1、什么是与用户交互
用户交互就是人往计算机中input()输入数据,计算机在屏幕上print()输出结果。
1.2、为什么要与用户交互?
为了让计算机能够像人一样与用户沟通交流。
比如,过去我们去银行取钱,用户需要把帐号密码告诉柜员,而现在,柜员被ATM机取代,ATM机就是一台计算机,所以用户同样需要将帐号密码告诉计算机,于是我们的程序中必须有相应的机制来控制计算机接收用户输入的内容,并且输出结果
1.3、如何与用户交互
交互的本质就是输入、输出。
1.3.1 输入input()
# 在python3中input功能会等待用户的输入,用户输入任何内容,都存成字符串类型,然后赋值给等号左边的变量名。
username=input('请输入您的用户名:')
print(username,type(username))
输出结果:
请输入您的用户名:lsj
lsj <class 'str'>
# 使用int()将字符串转换成int类型
========================================================================================
password=int(input('请输入您的密码:'))
print(password,type(password))
输出结果:
请输入您的密码:18
18 <class 'int'>
注意:
1、在python2中存在一个raw_input功能与python3中的input功能一模一样。
>>> strvar = input("输入的是int类型,就会存成int类型:")
输入的是int类型,就会存成int类型:123
>>> strvar,type(strvar)
(123, <type 'int'>)
2、在python2中还存在一个input功能,需要用户输入一个明确的数据类型,输入什么类型就存成什么类型。
>>> int_var = input("输入的是int类型,就会存成int类型:") 输入的是int类型,就会存成int类型:123 >>> int_var,type(int_var) (123, <type 'int'>)
![](https://img2020.cnblogs.com/i-beta/1204515/202003/1204515-20200305151150629-1835715878.png)
1.3.2 输出print()
print('hello world') # 只输出一个值
print('lsj','男',18) # 一次性输出多个值,值用逗号隔开
输出
hello world
lsj 男 18
# 默认print功能有一个end参数,该参数的默认值为"\n"(代表换行),可以将end参数的值改成任意其它字符
print("aaaa",end='')
print("bbbb",end='&')
print("cccc",end='@')
#整体输出结果为:aaaabbbb&cccc@
1.3.3 输出之格式化输出
(1)什么是格式化输出?
把一段字符串里面的某些内容替换掉之后再输出,就是格式化输出。
(2)为什么要格式化输出?
我们经常会输出具有某种固定格式的内容,比如:'亲爱的xxx你好!你xxx月的话费是xxx,余额是xxx‘,我们需要做的就是将xxx替换为具体的内容。
(3)如何格式化输出?
这就用到了占位符,如:%s、%d:
# %s占位符:可以接收任意类型的值
# %d占位符:只能接收数字
# 格式化输出之一:%的使用
# res = "my name is %s, age is %d" % ("lsj",18)
print(res) --> my name is lsj age is 18
# res = "my name is %(name)s, age is %(age)s" % {"age":18,"name":"lsj"}
print(res) --> my name is lsj age is 18
# res = "my name is %s" % "lsj"
# 格式化输出之二:str.format使用(python2.6推出的,所以兼容性好,推荐使用。)
# res = "my name is {1}".format("lsj",'egon')
# 格式化输出之三:f''的使用(python3.5后推出的)
# x = input("输入名字:")
# res = f'我的名字是 {x}'
# print(res)
# 总结:在执行效率上来看:f > str.format > %
# 格式化输出的补充知识点:
1、我想打印输出%
print('成功的概率 %s%% ' % (97,))
2、我想打印输出{}
x='lsj'
y=18
res=f'name:{{{x}}} age {y}'
print(res)
输出
name:{lsj} age 18
# 了解f的新用法:{}内的字符串可以被当做表达式运行
res=f'{10+3}'
print(res)
输出
13
f'{print("aaaa")}'
输出
aaaa
3、 format新增(了解):
print('{x}=============='.format(x='开始执行')) # 开始执行==============
print('{x:=<10}'.format(x='开始执行')) # 开始执行====== 居左显示内容10个字符,不够的部分使用=填充。
print('{x:=>10}'.format(x='开始执行')) # ======开始执行 居右显示内容10个字符,不够的部分使用=填充。
print('{x:=^10}'.format(x='开始执行')) # ===开始执行=== 居中显示内容10个字符,左右不够的部分使用=填充
4、四舍五入
#精确到小数点后3位,四舍五入,结果为:1232132.124
# print('{salary:.3f}'.format(salary=1232132.12351))