Python 2.x 中的 raw_input() 和 input()

本文详细对比了Python2.x与Python3.x中input()与raw_input()的区别。在Python2.x中,raw_input()用于接收任意类型的用户输入并返回字符串;而input()可以解析合法的Python表达式并返回相应的数据类型。Python3.x中则只保留了类似raw_input()功能的input()函数。

Python 2.x 和 Python 3.x 还是有一点小差别的。比如 input 在 Python 2.x 中有两个函数 raw_input()input()。在 Python 3.x 中,只有一个函数来获取用户输入,这被称为 input(),这相当于 Python 2.7 的 raw_input()

例 1:input()

name = input('Please enter your number: ')
print name

命令行 1.1

Please enter your number: 'qq'
qq

命令行 1.2

Please enter your number: "qq"
qq

命令行 1.3

Please enter your number: qq
Traceback (most recent call last):
    File "onr.py", line 1, in < module> #onr.py是我的文件名
    name = input('Please enter your number: ')
  File "< string>", line 1, in < module >
NameError: name 'qq' is not defined

命令行 1.4

Please enter your number: 11
11

命令行 1.5

Please enter your number: '1+1'
1+1

命令行 1.6

Please enter your number: 1+1
2

例 2:raw_input()

name = raw_input('Please enter your number: ')
print name

命令行 2.1

Please enter your number: qq
qq

命令行2.2

Please enter your number: '1+1'
'1+1'

命令行2.3

Please enter your number: 1+1
1+1

Python 2.x

  • raw_print() 可以直接读取控制台的任何类型输入,并且只会读入您输入的任何内容,返回字符串类型。即可用把控制台所有输入作为字符串看待,并返回字符串类型。
  • input() 能够读取一个合法的 python 表达式,返回数值类型,如int,float。即如果你在控制台输入的字符串必须用单引号或双引号将它括起来,否则会引发 SyntaxError 。

Python 2.7 input 说明文档

这里写图片描述

Python 3.x

Python 2.x 中的 raw_input() 被重命名为 Python 3.x 中的 input(),所以 Python 3.x 中的 input() 返回类型为字符串类型。同时 Python 2.x 中的 input() 在 Python 3.x 中不再保留。

Python input 说明文档 可以看到 input() 其实是通过 raw_input() 来实现的,原理很简单,就下面一行代码:

def input(prompt):
    return (eval(raw_input(prompt)))

如果要使用 Python 2.x 中的 input(),即需要将用户输入看作 Python 语句,则必须手动操作 eval(input())

### 程序、指令变量的定义 - **程序**:程序是为实现特定目标或解决特定问题而用计算机语言编写的一系列有序指令的集合。它是一组按照一定逻辑顺序排列的代码,能够指挥计算机完成特定的任务。 - **指令**:指令是计算机能够识别执行的基本操作命令。计算机的中央处理器(CPU)根据指令来进行各种运算控制操作,例如数据的读写、算术运算、逻辑判断等。 - **变量**:变量是存储数据的容器。在程序中,变量用于存储各种类型的数据,如数字、字符串、列表等,并且可以在程序运行过程中被修改访问。在Python中,变量的声明不需要指定数据类型,直接赋值即可,如`x = 10` [^1]。 ### PythonCPython的差异 Python是一种高级编程语言,具有简洁易读、动态类型等特点,拥有丰富的标准库第三方库。而CPythonPython的一种实现方式,它是用C语言编写的Python解释器,也是Python的官方实现。大多数人使用的Python环境就是CPython。其他实现方式还有Jython(运行在Java虚拟机上)、IronPython(运行在.NET平台上)等。CPythonPython代码编译成字节码,然后由解释器执行字节码。 ### Python实现的名字 常见的Python实现有CPython(官方实现)、Jython(基于Java)、IronPython(基于.NET)、PyPy(使用即时编译技术)等。 ### Python中单引号双引号同时使用的优势 在Python中,单引号双引号都可以用来表示字符串。同时使用它们的优势在于可以方便地处理包含引号的字符串。例如,当字符串中包含单引号时,可以使用双引号来定义字符串,反之亦然。这样就避免了使用转义字符,使代码更易读。示例如下: ```python string1 = "He said, 'Hello!'" string2 = 'She replied, "Hi!"' ``` ### Python 2.x中raw_inputinput的区别 在Python 2.x中,`raw_input`函数会将用户输入的内容作为字符串返回,无论用户输入的是什么类型。而`input`函数会尝试将用户输入的内容作为Python表达式进行求值,例如输入`1 + 2`,它会返回计算结果`3`。示例如下: ```python # 使用raw_input result1 = raw_input("Enter something: ") print(type(result1)) # 输出 <type 'str'> # 使用input result2 = input("Enter something: ") print(type(result2)) # 输入1,输出 <type 'int'> ``` ### Python 3替代Python 2.x输入功能的方法 在Python 3中,`raw_input`函数被移除,`input`函数的功能与Python 2.x中的`raw_input`函数相同,即总是将用户输入的内容作为字符串返回。因此,在Python 3中,直接使用`input`函数来获取用户输入。示例如下: ```python user_input = input("Enter something: ") print(type(user_input)) # 输出 <class 'str'> ``` ### Python 2.x进行浮点数除法的方法 在Python 2.x中,两个整数相除会进行截断除法,结果为整数。如果要进行浮点数除法,可以将其中一个操作数转换为浮点数,或者在文件开头添加`from __future__ import division`语句。示例如下: ```python # 方法一:将其中一个操作数转换为浮点数 result1 = 5 / float(2) print(result1) # 输出 2.5 # 方法二:导入division from __future__ import division result2 = 5 / 2 print(result2) # 输出 2.5 ``` ### Python中缩进的概念强制缩进的原因 在Python中,缩进是用来表示代码块的方式,而不是像其他语言那样使用大括号`{}`。同一个代码块的语句必须包含相同的缩进空格数。强制缩进的原因主要是为了提高代码的可读性一致性,使代码的逻辑结构更加清晰,避免因括号的滥用而导致代码难以理解维护 [^2]。示例如下: ```python if True: print("This is a code block.") print("Another statement in the same block.") ``` ### 源代码注释的概念 源代码注释是在程序代码中添加的说明性文字,这些文字不会被计算机执行,而是为了帮助程序员理解代码的功能、逻辑用途。在Python中,单行注释以`#`开头,多行注释使用三个相同引号(3个单引号或3个多引号) [^1]。示例如下: ```python # 这是一个单行注释 ''' 这是一个多行注释, 可以包含多行文字。 ''' ``` ### 把工作的源代码注释掉的正当理由 - **调试代码**:在调试过程中,暂时注释掉某些代码,观察程序的运行结果,以确定问题所在。 - **代码测试**:在测试不同的代码逻辑时,注释掉部分代码,测试其他部分的功能。 - **代码优化**:在进行代码优化时,先注释掉旧的代码,编写新的代码进行测试,确认新代码正常工作后再删除旧代码。 ### Shebang的概念 Shebang是指在Unix-like系统中,脚本文件的第一行以`#!`开头,后面跟着解释器的路径。它的作用是告诉系统使用哪个解释器来执行该脚本。示例如下: ```python #!/usr/bin/env python3 print("Hello, World!") ``` ### 编码注释的概念使用场景 编码注释是在Python源代码文件开头添加的注释,用于指定文件的编码格式。常见的编码格式有UTF-8等。使用编码注释可以确保Python解释器正确处理文件中的非ASCII字符。编码注释通常放在文件的第一行或第二行,格式为`# coding: encoding` 或 `# -*- coding: encoding -*-`。使用场景主要是当文件中包含非ASCII字符,如中文、日文等时,需要指定编码格式。示例如下: ```python # coding: utf-8 print("你好,世界!") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值