与用户交互的方式

懵懂的女人 提交于 2020-03-05 18:54:40

2、与用户交互

程序与用户交互可想而知是必要的,否则程序存在的意义也就大大降低了,接下来介绍程序与用户的交互,输入与输出

 

2.1接收用户输入

在python3中只有 input一种输入方式,input会将用户输入的所有内容存入一个字符串类型数据中

username = input("请输入您的账号:")    # ""内添加的是显示给用户看的信息
print(username, type(username))     # 通过实验可以观察输出的变量的数据类型

 

在python2.7中(了解)有input以及raw_input两种方式,其中raw_input与python3中的input功能完全相同,不多赘述,而python2.7中的input会按用户输入的内容的类型存入变量,变量类型即为输入的类型,这样的方式会使得程序员的操作变简单,而用户的操作变得复杂,要求用户严格按照数据类型的格式输入,产生极差的使用体验.

 

2.2格式化输出

在python中有3种格式化输出的方法.

第一种: %s %d 此方法自python诞生至今一直能使用

print("my name is %s,my age is %s" %("wu","18"))
# %s可以按位置输入变量
​
print("my name is %(name)s,my age is %(age)s" %{"name":"wu","age":18})
# 以字典形式传入数据,可以避免位置,顺序的限制
​
print("my age is %s" %([18,19]))
# %s能传入任意数据类型
​
print("my age is %d" %("18"))
# %d只能传入数字,传入字符串会报错
​
print("my age is %d" %(18.6))
# %d只能传入数字(输入小数只显示整数),结果为my age is 18

 

 

第二种: str.format 此方法python2.6之后的版本能使用(包含python3)

此方法为最推荐使用的方法,由于速度以及兼容性都不错

 

# 按照位置传值
print("my name is {},my age is {}".format("wu", 18))
# 可以按索引输出多次
print("my name is {0}{0}{0},my age is {1}{1}".format("wu", 18))
# 按照key-value传值
print("my name is {name},my age is {age}".format(name="wu", age=18))

 

进阶教程:

"""
# 填充与格式化
# 先取到值,然后在冒号后设定填充格式:[填充字符][对齐方式][宽度]
# *<10:左对齐,总共10个字符,不够的用*号填充
print('{0:*<10}'.format('开始执行')) # 开始执行******
​
# *>10:右对齐,总共10个字符,不够的用*号填充
print('{0:*>10}'.format('开始执行')) # ******开始执行
​
# *^10:居中显示,总共10个字符,不够的用*号填充
print('{0:*^10}'.format('开始执行')) # ***开始执行***
​
​
# 精度与进制
​
print('{salary:.3f}'.format(salary=1232132.12351))  #精确到小数点后3位,四舍五入,结果为:1232132.124
print('{0:b}'.format(123))  # 转成二进制,结果为:1111011
print('{0:o}'.format(9))  # 转成八进制,结果为:11
print('{0:x}'.format(15))  # 转成十六进制,结果为:f
print('{0:,}'.format(99812939393931))  # 千分位格式化,结果为:99,812,939,393,931
​
"""

 

第三种: f"string" 此方法python3.5之后的版本能使用(不包含python2)

 

x = "wu"
print(f"my name is {x}")

 

 

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!