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()方法即可,这样用户输入的就是密文

posted @ 2021-02-16 15:58  Sqlserverwooooo  阅读(235)  评论(0编辑  收藏  举报