python 用户交互
input是个内建函数,具体用法:接收用户输入的内容,输入的字符串,接收到就是字符串;输入的是数字,接收的就是数字
来个简单的用户名和密码输入的例子,代码如下:
#!/usr/bin/env python
# coding: utf-8
__author__ = 'www.py3study.com'
username = input("username:")
password = input("password:")
print(username,password)
执行效果如下:
由于密码输入的时候,是明文的,如果不想显示密码输入怎么办呢?
需要用到python标准库的getpass模块
python标准库: 就是默认自带的库,不用安装,直接import使用即可
代码如下:
#!/usr/bin/env python
# coding: utf-8
__author__ = 'www.py3study.com'
import getpass
username = input("username:")
password = getpass.getpass("password:")
print(username,password)
注意:
getpass 无法在PyCharm编辑器中运行,运行的时候,输入用户名之后,就好像卡住了一样,没法输出password:输入框
那么就需要在cmd中手动执行命令才可以:
使用win键+r 找到运行,输入cmd,直接回车,就打开了cmd命令行窗口
我的PyCharm里面的python脚本放在E:\python_script目录
切换到E盘,执行脚本
接下来,将一个稍微难一点的例子
要求输入对应的变量后,打印个人信息
例如:
------info of xia ------
Name: xia
Age: 25
Job: it
Salary: 5000
代码如下:
name = input("name:")
age = int(input("age:"))
job = input("job:")
salary = input("salary:")
info = '''
------info of %s ------
Name: %s
Age: %d
Job: %s
Salary: %s
''' % (name,name,age,job,salary)
print(info)
运行效果如下:
代码解释:
int() 表示将变量转换为数字类型
''' ''' 是python3的多行注释方法,也可以用来做格式化输出
%格式符(字符串格式化,string formatting)
格式符为真实值预留位置,并控制显示的格式。格式符可以包含有一个类型码,用以控制显示的类型
常用的类型如下:
%s 表示string(字符串)
%d 表示数字,如果输入的不是数字,会报错
TypeError: %d format: a number is required, not st
可以帮助检查数据类型
%f 表示浮点(小数点)
在''' ''' 里面出现了5个格式符
所以%()里面出现了5个变量,是一一匹配的。
第二种写法,用fromat函数,使用关键字参数,代码如下:
#!/usr/bin/env python
# coding: utf-8
__author__ = 'www.py3study.com'
name = input("name:")
age = int(input("age:"))
job = input("job:")
salary = input("salary:")
info = '''
------info of {_name} ------
Name: {_age}
Age: {_job}
Job: {_job}
Salary: {_salary}
'''.format(_name = name,
_age = age,
_job = job,
_salary = salary)
print(info)
执行效果还是和上面一样
注意: 关键字参数值要对得上
_name对应的是上边声明的name变量,下面的依此类推
format的第二种使用方法,使用位置参数,代码如下:
#!/usr/bin/env python
# coding: utf-8
__author__ = 'www.py3study.com'
name = input("name:")
age = int(input("age:"))
job = input("job:")
salary = input("salary:")
info = '''
------info of {0} ------
Name: {0}
Age: {1}
Job: {2}
Salary: {3}
'''.format(name,age,job,salary)
print(info)
执行效果还是和上面一样
注意:位置参数不受顺序约束,且可以为{},只要format里有相对应的参数值即可,参数索引从0开.
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341