python 用户交互

发布时间:2018-02-11 17:26:15编辑:admin阅读(3761)

    input是个内建函数,具体用法:接收用户输入的内容,输入的字符串,接收到就是字符串;输入的是数字,接收的就是数字


    来个简单的用户名和密码输入的例子,代码如下:

    #!/usr/bin/env python
    # coding: utf-8
    __author__ = 'www.py3study.com'
    
    username = input("username:")
    password = input("password:")
    print(username,password)

    执行效果如下:

    jiaohu.gif

    由于密码输入的时候,是明文的,如果不想显示密码输入怎么办呢?

    需要用到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盘,执行脚本

    jiaohu3.gif


    接下来,将一个稍微难一点的例子

    要求输入对应的变量后,打印个人信息

    例如:

    ------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)

    运行效果如下:

    shuru1.gif

    代码解释:

    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开.

关键字

上一篇: python变量

下一篇: python if else 流程判断