Python:input(用户交互)
shell中用户交互使用read -p,在python3中用户交互使用input
python2.x中用户交互使用raw_input,python2中也有input但是属于毫无用处的一种写法,可以直接忽略掉,于是python3中舍弃了这种写法改为直接使用input
以下为input的基本使用方法:
name = input("请输入您的姓名:") age = input("请输入您的年龄:") job = input("请输入您的职业:") salary = input("请输入您的工资:") print('name :'+name,'\n','age :'+age,'\n','job :'+job,'\n','salary :'+salary) ###\n为换行符
执行结果为:
请输入您的姓名:lizi 请输入您的年龄:26 请输入您的职业:it 请输入您的工资:7000 name :lizi age :26 job :it salary :7000
下面是几种格式化输出的方式:
第一种(+号拼接):
name = input("请输入您的姓名:") age = input("请输入您的年龄:") job = input("请输入您的职业:") salary = input("请输入您的工资:") info = ''' ###info = ''' ''' 此为打印多行的写法 -------info of ''' +name +'''-------- name : ''' +name+''' age : '''+age+''' job : '''+job+''' salary : '''+salary+''' ''' print(info)
执行结果为:
请输入您的职业:it 请输入您的工资:7000 -------info of lizi-------- name : lizi age : 26 job : it salary : 7000
此种方法太过于麻烦,并且所占内存极多,不推荐
第二种(%s,d,f):
name = input("请输入您的姓名:") age = input("请输入您的年龄:") job = input("请输入您的职业:") salary = input("请输入您的工资:") info = ''' -------info of %s-------- name :%s age : %s job : %s salary : %s '''%(name,name,age,job,salary)
执行结果为:
请输入您的职业:it 请输入您的工资:9000 -------info of lizi-------- name :lizi age : 26 job : it salary : 9000
此种方法中%s代表的是string类型,%d代表整数,%f代表浮点数
如果把info中age:%s换成%d,则代表此age必须为数字,此时如果定义age变量那里不进行数据类型转换,那么执行就会报错
info = ''' -------info of %s-------- name :%s age : %d job : %s salary : %s '''%(name,name,age,job,salary)
print(info)
---------------------------------
请输入您的姓名:lizi
请输入您的年龄:26
请输入您的职业:it
请输入您的工资:9000
Traceback (most recent call last):
File "D:\PyCharm\lizi\basis\20200216\input.py", line 11, in <module>
info = '''
TypeError: %d format: a number is required, not str
此时需进行数据类型转换:
name = input("请输入您的姓名:") age = int(input("请输入您的年龄:")) ###将age变量转为int类型 job = input("请输入您的职业:") salary = input("请输入您的工资:") info = ''' -------info of %s-------- name :%s age : %d job : %s salary : %s '''%(name,name,age,job,salary) print(info)
---------------------------------------
请输入您的姓名:lizi ###再次执行无报错
请输入您的年龄:26
请输入您的职业:it
请输入您的工资:
-------info of lizi--------
name :lizi
age : 26
job : it
salary :
%f使用的相对较少所以不需过多了解,此为格式化输出的第二种方式,比较常用
第三种(.format):
name = input("请输入您的姓名:") age = int(input("请输入您的年龄:")) job = input("请输入您的职业:") salary = input("请输入您的工资:") info = ''' -------info of {_name}-------- name :{_name} age : {_age} job : {_job} salary : {_salary} '''.format(_name=name,_age=age,_job=job,_salary=salary) print(info)
执行结果为:
请输入您的职业:it 请输入您的工资:777 ------- info of lizi -------- name :lizi age : 26 job : it salary : 777
此format方法在某些特定场合下有必要作用
第四种(.format的第二种写法):
name = input("请输入您的姓名:") age = input("请输入您的年龄:") job = input("请输入您的职业:") salary = input("请输入您的工资:") info3 = ''' ------- info of {0} -------- name :{0} age : {1} job : {2} salary : {3} '''.format(name,age,job,salary) print(info3)
执行结果为:
请输入您的职业:it 请输入您的工资:999 ------- info of lizi -------- name :lizi age : 26 job : it salary : 999
此为.format的第二种写法,.format只有这两种写法
python自带密文输入模块getpass
仅需先import导入getpass模块,随后使用getpass.getpass()方法即可,这样用户输入的就是密文