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
请输入您的工资:7000name :lizi
age :26job :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 :26job : 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 :26job : 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
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 :26job : 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 :26job : it
salary :999
此为.format的第二种写法,.format只有这两种写法