听了ALEX的某节课,说input()和raw_input()函数在Python2中没有区别,现在来探讨一下Python2中的input()、raw_input()函数和Pyhont3中的input()函数:

Python2中的raw_input()函数,我们知道input()、raw_input()都是让用户输入的函数:

input()函数:

首先,我们先输入数字:

>>> a = input("Please input your favorite number: ")
Please input your favorite number: 5
>>> a
5

从中可以看出,当我们输入数字的时候,input()函数直接接受了5,并把这个用户输入的数字赋给了a,是以数字形式的。

接下来,我们以字符形式输入:
>>> a = input("Please input your name: ")
Please input your name: virgin
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 1, in <module>
NameError: name 'virgin' is not defined

从结果可以看出,提示我们输入的名字没有定义,报错了,说明不能以字符形式直接没有引号的情况下进行输入;

我们验证当我们以引号的方式输入字符串的时候,这个时候没有提示我们错误,由此可以看出,是没有问题的
>>> a = input("Please input your name: ")
Please input your name: "Virgin"
>>> a
'Virgin'

从中可以看出,其实Python2.x中,input()函数让我们明确我们输入的是数字格式还是字符格式,就是我们自己要知道我们想要的是什么,数字格式直接输入,字符格式必须加上单引号或者双引号,以确定我们输入的是字符串。

raw_input()函数:

>>> a = raw_input("Please input your name: ")
Please input your name: Virgin
>>> a
'Virgin'
>>> a = raw_input("Please input your favorite number: ")
Please input your favorite number: 10
>>> a
'10'
    第一次我们输入的是字符串,而且没有加引号,正常把Virgin赋给了变量a;第二次输入的是数字10,但是输出的时候,a是字符格式的'10',这个时候系统将我们输入的数字默认为了文本,所以可以看出,raw_input()函数无论用户输入什么,都默认为字符格式;而input()函数在Python2.x中,是要用户确定自己输入的是什么,用户要自己清楚明白自己操控的是什么。

Python3中的input()函数:

我们知道,在Python3中是没有raw_input()函数的,只有input()函数,因为Python3是就行了优化整合:

input()函数

>>> a = input("Please input your favoriete number: ")
Please input your favoriete number: 10
>>> a
'10'
>>> b = input("Please input your name: ")
Please input your name: Virgin
>>> b
'Virgin'
    第一次我们输入的是数字,此时,input()是将数字10当作文本赋给了变量a,第二次,我们把文本赋给了变量b,输出结果还是文本,这与Python2中的raw_input()是一样的,所以,在Python3中是将Python2中的input()删除了,把raw_input()的名称改成了input()函数,这样在我们使用数字的时候就需要自己来进行转换了,所以我们在让用户输入数字的时候一定切忌要进行转换,如果我们要使用数字的化。

Python2中input()、raw_input()和Python3中input()的更多相关文章

  1. 常见的爬虫分析库(1)-Python3中Urllib库基本使用

    原文来自:https://www.cnblogs.com/0bug/p/8893677.html 什么是Urllib? Python内置的HTTP请求库 urllib.request          ...

  2. Python3中Urllib库基本使用

    什么是Urllib? Python内置的HTTP请求库 urllib.request          请求模块 urllib.error              异常处理模块 urllib.par ...

  3. python2和python3 中 input()方法的不同之处

    python2在input()获取输入值时,所获取的值等于本身的数据类型 a = input("请输入:") print(a,type(a)) #如果输入的时int行数字,a 获取 ...

  4. Python中的raw_input()和input()

    raw_input()和input()都是python中的内建函数,用于读取控制台用户的输入,但有所区别: [nr@localhost conf]$ python Python 2.7.5 (defa ...

  5. 详解:Python2中的urllib、urllib2与Python3中的urllib以及第三方模块requests

    在python2中,urllib和urllib2都是接受URL请求的相关模块,但是提供了不同的功能.两个最显著的不同如下: 1.urllib2可以接受一个Request类的实例来设置URL请求的hea ...

  6. Python2和Python3中print的不同点

    在Python2和Python3中都提供print()方法来打印信息,但两个版本间的print稍微有差异 主要体现在以下几个方面: 1.python3中print是一个内置函数,有多个参数,而pyth ...

  7. 【学习笔记】python2和python3的input()

    python2中的input()只接受变量作为传入值,非变量内容会报错. >>> user=input("Enter your name:") Enter you ...

  8. python2与python3的input函数的区别

    Python3.x 中 input() 函数接受一个标准输入数据,返回为 string 类型. Python2.x 中 input() 相等于 eval(raw_input(prompt)) ,用来获 ...

  9. python2 && python3 的 input函数

    Python2.x中的input()函数input()函数让我们明确我们输入的是数字格式还是字符格式,就是我们自己要知道我们想要的是什么,数字格式直接输入,字符格式必须加上单引号或者双引号,以确定我们 ...

随机推荐

  1. maven使用ss代理

    把maven安装目录下的conf/settings.xml复制一份到~/.m2/下 在<proxies>标签中添加 <proxy> <id>socks5</i ...

  2. 练习calico的网络policy

    1.安装docker,kubelet kubeadm kubectl 1 ssh-keygen 2 cat .ssh/authorized_keys 3 cat .ssh/id_rsa.pub 4 s ...

  3. UITableView .grouped 类型去除顶部间距

    在设置 UITableView 的 style 为 .grouped 类型的时候,发现第一个 cell 的顶部存在大段的间距,而改为 .plain 类型则没有这个间距,效果如下: 设置了 conten ...

  4. CF767 C.Garland DFS

    LINK 题意:给定一棵树,每个节点拥有权值,问能否找到两个点,断开它们与父节点的边能使树分成权值和相等的三部分.权值可以为负 思路:进行两遍DFS,第一遍找最深的子树和为sum/3的节点,标记掉找到 ...

  5. 【BZOJ4870】组合数问题(计数DP,快速幂)

    题意: 1 ≤ n ≤ 10^9, 0 ≤ r < k ≤ 50, 2 ≤ p ≤ 2^30 − 1 思路:From http://blog.csdn.net/qq_33229466/artic ...

  6. 【Project Euler】530 GCD of Divisors 莫比乌斯反演

    [题目]GCD of Divisors [题意]给定f(n)=Σd|n gcd(d,n/d)的前缀和F(n),n=10^15. [算法]莫比乌斯反演 [题解]参考:任之洲数论函数.pdf 这个范围显然 ...

  7. HDU 2082 找单词 (普通母函数)

    题目链接 Problem Description 假设有x1个字母A, x2个字母B,..... x26个字母Z,同时假设字母A的价值为1,字母B的价值为2,..... 字母Z的价值为26.那么,对于 ...

  8. 安装JDK环境变量的配置

    设置环境变量 在java中需要设置三个环境变量(1.5之后不用再设置classpath了,但是个人强烈建议继续设置以保证向下兼容问题) JDK安装完成之后我们用来设置环境变量:右击”我的电脑“,选择” ...

  9. BBScan — 一个信息泄漏批量扫描脚本

    github:https://github.com/lijiejie/BBScan 有些朋友手上有几十万甚至上百万个域名,比如,乌云所有厂商的子域名. 如果把这30万个域名全部扔给wvs,APPsca ...

  10. ansible安装配置及最佳实践roles

    ansible是什么? ansible是一款轻量级配置管理工具,用于远程批量部署.安装.配置.类似的还有puppet.saltstack,各有所长,任君自选. 官方文档:http://docs.ans ...