什么是输入
咱们在银行ATM机器前取钱时,肯定需要输入密码,对不?
那么怎样才能让程序知道咱们刚刚输入的是什么呢??
大家应该知道了,如果要完成ATM机取钱这件事情,需要先从键盘中输入一个数据,然后用一个变量来保存,是不是很好理解啊
1、python2的输入语句
在python2中有两种常见的输入语句,input()
和raw_input()
。
(1)input()函数
可以接收不同类型的参数,而且返回的是输入的类型。如,当你输入int类型数值,那么返回就是int型;其中字符型需要用单引号或双引号,否则,报错。
a.数值型输入
1
2
3
4
5
6
7
8
9
10
|
>>> a = input ()
>>> type (a)
< type 'int' >
>>> a
>>> a = input ()
1.23
>>> type (a)
< type 'float' >
>>> a
1.23
|
b.字符类型
如果输入的字符不加引号,就会报错
1
2
3
4
5
6
7
8
|
>>> r = input ()
hello
Traceback (most recent call last):
File "<pyshell#50>" , line 1 , in <module>
r = input ()
File "<string>" , line 1 , in <module>
NameError: name 'hello' is not defined
|
正确的字符输入
1
2
3
4
5
6
7
8
|
>>> r = input ()
'hello'
>>> r
'hello'
>>> r = input ()
"hello"
>>> r
'hello'
|
当然,可以对输入的字符加以说明
1
2
3
4
|
>>> name = input ( 'please input name:' )
please input name: 'Tom'
>>> print 'Your name : ' ,name
Your name : Tom
|
(2)raw_input()
函数raw_input()是把输入的数据全部看做字符类型。输入字符类型时,不需要加引号,否则,加的引号也会被看做字符。
1
2
3
4
5
6
7
8
9
10
11
|
>>> a = raw_input ()
>>> type (a)
< type 'str' >
>>> a
'1'
>>> a = raw_input ()
'hello'
>>> type (a)
< type 'str' >
>>> a
"'hello'"
|
如果想要int类型数值时,可以通过调用相关函数转化。
1
2
3
4
5
6
7
8
9
10
|
>>> a = int ( raw_input ())
>>> type (a)
< type 'int' >
>>> a
>>> a = float ( raw_input ())
1.23
>>> type (a)
< type 'float' >
>>> a
1.23
|
在同一行中输入多个数值,可以有多种方式,这里给出调用map()
函数的转换方法。map使用方法请参考python-map的用法
1
2
3
4
5
6
7
8
|
>>> a, b = map ( int , raw_input ().split())
20
>>> a
>>> b
>>> l = list ( map ( int , raw_input ().split()))
2 3 4
>>> l
[ 1 , 2 , 3 , 4 ]
|
(3)input() 和raw_input()的区别
通过查看input()
帮助文档,知道input函数也是通过调用raw_input函数实现的,区别在于,input函数额外调用内联函数eval()。eval使用方法参考Python eval 函数妙用 (见下面)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
>>> help ( input )
Help on built - in function input in module __builtin__:
input (...)
input ([prompt]) - > value
Equivalent to eval ( raw_input (prompt)).
>>> help ( eval )
Help on built - in function eval in module __builtin__:
eval (...)
eval (source[, globals [, locals ]]) - > value
Evaluate the source in the context of globals and locals .
The source may be a string representing a Python expression
or a code object as returned by compile ().
The globals must be a dictionary and locals can be any mapping,
defaulting to the current globals and locals .
If only globals is given, locals defaults to it.
|
Python eval 函数妙用
eval
功能:将字符串str当成有效的表达式来求值并返回计算结果。
语法: eval(source[, globals[, locals]]) -> value
参数:
source:一个Python表达式或函数compile()返回的代码对象
globals:可选。必须是dictionary
locals:可选。任意map对象
实例展示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
可以把 list , tuple , dict 和string相互转化。
#################################################
字符串转换成列表
>>>a = "[[1,2], [3,4], [5,6], [7,8], [9,0]]"
>>> type (a)
< type 'str' >
>>> b = eval (a)
>>> print b
[[ 1 , 2 ], [ 3 , 4 ], [ 5 , 6 ], [ 7 , 8 ], [ 9 , 0 ]]
>>> type (b)
< type 'list' >
#################################################
字符串转换成字典
>>> a = "{1: 'a', 2: 'b'}"
>>> type (a)
< type 'str' >
>>> b = eval (a)
>>> print b
{ 1 : 'a' , 2 : 'b' }
>>> type (b)
< type 'dict' >
#################################################
字符串转换成元组
>>> a = "([1,2], [3,4], [5,6], [7,8], (9,0))"
>>> type (a)
< type 'str' >
>>> b = eval (a)
>>> print b
([ 1 , 2 ], [ 3 , 4 ], [ 5 , 6 ], [ 7 , 8 ], ( 9 , 0 ))
>>> type (b)
< type 'tuple' >
|
2、Python3输入语句
python3中的输入语句只有input()
函数,没有raw_input();
而且python3中的input()
函数与python2中的raw_input()
的使用方法一样。
1
2
3
4
5
6
|
>>> a = input ()
10
>>> type (a)
< class 'str' >
>>> a
'10'
|
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对服务器之家的支持。
原文链接:http://www.cnblogs.com/pursued-deer/p/9613243.html