python中input()和raw_input()的区别
两者均是python的内置函数,通过读取控制台的输入与用户实现交互。
raw_input:将所有输入作为字符串看待,不管用户输入什么类型的都会转变成字符串。
raw的含义就是: 生的;未加工的。
>>> s1=raw_input()
abc
>>> s1
'abc'
>>> s2=raw_input()
'abc'
>>> s2
"'abc'"
>>> s3=raw_input()
100
>>> s3
''
>>> s4=raw_input()
1+2
>>> s4
'1+2'
当希望通过raw_input获取一个整型或者浮点数时,必须在生成后对其使用int或float进行转换。
>>> x1=int(raw_input())
34
>>> x1
34
>>> x2=float(raw_input())
1.25
>>> x2
1.25
input():当输入一个字符串的时候必须使用引号将其括起来,否则他将会引发一个SyntaxError的问题。
>>> help(input)
Help on built-in function input in module __builtin__: input(...)
input([prompt]) -> value Equivalent to eval(raw_input(prompt)).
从上述说明中,可以发现其实input()的实现是调用raw_input()函数的,然后再进行了一次eval()。
实现如下:
def input(prompt):
return (eval(raw_input(prompt))) #input()相当于eval(raw_input())
eval()在python中的实现如下:
eval(str[,globals[,locals]])函数将字符串str当成有效Python表达式来求值,并返回计算结果。
因此就不难发现为什么input()能够检测表达式了。
eval()函数十分强大,它和int(将一个字符串转化成整数)还是有很大区别,这里暂不详述。
综上所述:除非对input有特别需要,否则一般情况下我们都是推荐使用raw_input来与用户交互。
补充:在Python 3.x之后已经用input()替代raw_input了,用法功能却跟Python2.x中的raw_input()一样。
python中input()和raw_input()的区别的更多相关文章
- python中input()与raw_input()的区别到底是啥?-----marsggbo原创作品为你解答
首先先给出总结:input () = int(raw_input()) 有图有真相!!! 先看看input的例子: 可见用input键入得到int类型的数据,那如果输入一些非int类型的会怎么样呢? ...
- python 中 input 和 raw_input 的区别
input会假设输入的信息是合法的python表达式,例如,输入一个人名,Diesel,input会认为这是一个变量,必须加上引号,比如“Diesel”: 而raw_input会把所有的输入当作原始数 ...
- python中input和raw_input函数
python input() 相等于 eval(raw_input(prompt)) ,用来获取控制台的输入. raw_input() 将所有输入作为字符串看待,返回字符串类型.而 input() 在 ...
- Python中input()和raw_input()函数的区别
问题:在Python2.7中使用 input() 函数会出现 “NameError: Name ”***“ is not defined 的错误 解决: 使用raw_input() 函数,在Pytho ...
- Python中type与Object的区别
Python中type与Object的区别 在查看了Python的API后,总算明白了.现在总结如下: 先来看object的说明: Python中关于object的说明很少,甚至只有一句话: clas ...
- Python中生成器和迭代器的区别(代码在Python3.5下测试):
https://blog.csdn.net/u014745194/article/details/70176117 Python中生成器和迭代器的区别(代码在Python3.5下测试):Num01–& ...
- Python中的is和==的区别,==判断值是否相等,is判断地址是否一致
Python中的is和==的区别 Python中的对象包含三要素:id.type.value. 其中id用来唯一标示一个对象,type标识对象的类型,value是对象的值. is判断的是a对象是否就是 ...
- 基于python中staticmethod和classmethod的区别(详解)
例子 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 class A(object): def foo(self,x): print "executing foo ...
- Python中send()和sendall()的区别
Python中send()和sendall()的区别 估计每个学习Python网络编程的人,都会遇到过这样的问题: send()和sendall()到底有什么区别? send()和sendall()原 ...
随机推荐
- 重启网卡报错:Device eth0 does not seem to be present
ifconfig...没有看到eth0..然后重启网卡又报下面错误. 故障现象: service network restartShutting down loopback insterface: ...
- MySQL基础操/下
MySQL基础操 一.自增补充 desc (表名)t1: 查看表格信息内容 表的信息 show create table t1(表名):也是查看信息,还不多是横向查看 show create tabl ...
- Oracle12c:创建主分区、子分区,实现自动分区插入效果
单表自动单个分区字段使用方式,请参考:<Oracle12c:自动分区表> 两个分区字段时,必须一个主分区字段和一个子分区字段构成(以下代码测试是在oracle12.1版本): create ...
- POJ-3268 Silver Cow Party---正向+反向Dijkstra
题目链接: https://vjudge.net/problem/POJ-3268 题目大意: 有编号为1-N的牛,它们之间存在一些单向的路径.给定一头牛的编号X,其他牛要去拜访它并且拜访完之后要返回 ...
- linux远程传输
scp scp 命令是 SSH中最方便有用的命令了,scp就是secure copy,是用来进行远程文件拷贝的.数据传输使用 ssh,并且和ssh 使用相同的认证方式,提供相同的安全保证. 与rcp ...
- Text-鼠标点击事件
from tkinter import * import webbrowser master=Tk() text=Text(master,width=50,height=20) text.pack() ...
- Python学习【第26篇】:Python系列- 多线程(threading)
线程的调用方式:threanding模块 import threading import time def sayhi(num): #定义每个线程要运行的函数 print("running ...
- ActiveMQ(七)_伪集群和主从高可用使用(转)
本文转自: https://www.cnblogs.com/gossip/p/5977489.html 一.本文目的 介绍如何在同一台虚拟机上搭建高可用的Activemq服务,集群数量 ...
- CLR-2-2-引用类型和值类型
引用类型和值类型,是一个老生常谈的问题了.装箱拆箱相信也是猿猿都知,但是还是跟着CLR via C#加深下印象,看有没有什么更加根本和以前被忽略的知识点. 引用类型: 引用类型有哪些这里不过多赘述,来 ...
- [Codeforces 946G]Almost Increasing Array
Description 题库链接 给你一个长度为 \(n\) 的序列 \(A\) .现在准许你删除任意一个数,删除之后需要修改最小的次数使序列单调递增.问最小次数. \(1\leq n\leq 200 ...