• Python中raw_input() & input() 的功能对比


    raw_input的功能是方便的从控制台读入数据。

     inputraw_input都是Python的内建函数,实现与用户的交互,但是功能不同。

    一、raw_input

         下面介绍让raw_input的几种功能。

    1、输入字符串


    1>>> raw_input_A = raw_input("raw_input:") 2 raw_input:abc 3>>>type(raw_input_A) 4 <type 'str'>

      上面输入的abc为字符串str类型

    2、输入整数


    1 >>> raw_input_A = raw_input("input int:") 2 input int:abc 3 >>>type(raw_input_A) 4 <type 'str'>

      输入的123也为字符串 str 类型

    3、输入浮点数


    1 >>> raw_input_A = raw_input("input a float:") 2 input a float:1.2 3 >>>type(raw_input_A) 4 <type 'str'>

      输入1.2为字符串 str 类型

    4、输入16进制数


    1 >>> raw_input_A = raw_input("input Hex:") 2 input Hex:0X20 3 >>>type(raw_input_A) 4 <type 'str'>

       输入0X20为字符串str类型

    5、输入八进制数


    1 >>> raw_input_A = raw_input("input Oct:") 2 input Oct:110 3 >>>type(raw_input_A) 4 <type 'str'>

       输入八进制数为字符串 str 类型

    二、input

    1、输入整数


    1 >>> input_A = input("input int:") 2 int:123 3 >>>type(input_A) 4 <type 'int'>

       输入123为整型 int

    2、输入浮点数


    1 >>> input_A = raw_input("input a float:") 2 input a float:1.2 3 >>>type(input_A) 4 <type 'float'>

    3、输入八进制数

    复制代码

    1 >>>input_a = input("input H:") 2 input H:00H3 3 Traceback (most recent call last): 4 File "<stdin>", line 1, in ? 5 File "<string>", line 1 6 00H3 7 ^ 8 SyntaxError: unexpected EOF while parsing 9 >>>

    复制代码

        输入003H报语法错,input无法识别

    4、十六进制类似八进制

    5、输入字符串

    复制代码

    1 >>> input_a = input("input string:") 2 input string:abc 3 Traceback (most recent call last): 4 File "<stdin>", line 1, in ? 5 File "<string>", line 0, in ? 6 NameError: name 'abc' is not defined 7 >>>

    复制代码

        输入字符串abc, 提示未定义错误

    复制代码

    1 >>> input_a = input("input string:") 2 input string:'abc' 3 >>> type(input_a) 4 <type 'str'> 5 >>>

    复制代码

       输入'abc',可以正确识别,为str类型

    raw_input  与  input 的区别

       这两个函数都可以读取用户的输入,不同的是input()函数要求用户输入有效的表达式,而raw_input()函数将用户输入的任意类型数据都转换为一个字符串。

    当输入纯数字时

    >>>raw_input返回字符串类型,string

    >>> input返回的是数值类型,如int、float

    输入字符串表达式时

    >>> input() 会计算字符串中的数字表达式,而raw_input()不会

    1 >>> input(3+8)
    2 11
    3 >>> raw_input(3+8)
    4 11
    5 ''

    Python input的实现

       查看Built-in-functions可得知,input是由 raw_input实现的:

    input([prompt])
       Equivalent to eval(raw_input(prompt)).
       
        input()本质上是由raw_input()来实现,调用raw_input()后再调用eval()函数,所有,可以将表达式作为input()的参数,且会计算表达式的值并返回。
        built-in-function中还说:
    Consider using the raw_input() function for general input from users.
       除了特殊需要,一般情况下建议使用raw_input()函数。
    从 raw_input() 到 input()
    Python 2.X
       在2.x版本中:
         raw_input() 会从标准输入(sys.stdin)读取输入值并返回一个字符串,且尾部换行符从末尾移除。
         input()不同,需要输入有效的表达式,如3+8,'abc'。
    Python 3
       在Python 3中,将raw_input()重命名为 input(),这样一来,无需导入也可从标准输入获得数据。如需要保留2.X版本的 input() 功能, 可以使用 eval_r(input()), 效果基本相同。
     
     
  • 相关阅读:
    栈:删除最外层的括号 (Leetcode 1021 / 155 / 1172 / 剑指31 / 面试 03.03)
    JDBC: Druid连接池
    JDBC: C3P0
    JDBC: C3P0
    JDBC: C3P0连接池
    JDBC: DBCP连接池
    JDBC: 数据库连接池
    JDBC: JDBC 控制事务
    JDBC: 预处理对象
    wpf 键盘快捷键响应
  • 原文地址:https://www.cnblogs.com/kaid/p/7992197.html
Copyright © 2020-2023  润新知