| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1321 人关注过本帖
标题:初学python,有个小问题,麻烦大侠们帮忙,谢了
只看楼主 加入收藏
zcxuexi
Rank: 2
等 级:论坛游民
帖 子:14
专家分:18
注 册:2012-3-21
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:12 
初学python,有个小问题,麻烦大侠们帮忙,谢了
1, b=int(3.3)
   print b     这个能够正确输出3

2,b=raw_input()
  a=int(b)
  print a     假如输入3.3,也能够正确输入3.3

3,a=int(raw_input())
  print a     假如输入3.3却提示错误
Traceback (most recent call last):
  File "C:/Python26/1.py", line 1, in <module>
    a=int(raw_input())
ValueError: invalid literal for int() with base 10: '3.3'

请问大侠们,第三种情况为何错误呢?
搜索更多相关主题的帖子: invalid 能够 recent python 
2012-05-16 15:49
快乐出发0220
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:45
专家分:130
注 册:2012-4-13
收藏
得分:4 
raw_input()必须先返回一个值,否则不会有输入的。
2012-05-19 14:40
chenqiang331
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-6-3
收藏
得分:0 
就是这样  合起来写 不行 。
2012-06-11 09:29
快乐出发0220
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:45
专家分:130
注 册:2012-4-13
收藏
得分:0 
嗯嗯,其实你也可以试着解决的,毕竟程序都是人写出来的。
2012-06-15 12:42
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
不用组合,你写 int('3.3') 也是这个错误。
2012-06-17 16:56
快乐出发0220
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:45
专家分:130
注 册:2012-4-13
收藏
得分:0 
int('3.3')不会出现错误的
2012-06-22 13:09
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
回复 6楼 快乐出发0220
我的 python 为什么不行?
Python 2.7.3 (default, Apr 20 2012, 22:39:59)

[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> int('3.33')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '3.33'
>>>

2012-06-23 22:11
快乐出发0220
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:45
专家分:130
注 册:2012-4-13
收藏
得分:0 
'3.33'是一个字符串,int('3.33')是不可以的,但是int(3.33)是可以的,这个为什么一定要raw_input()必须先返回一个值的原因,这样的话返回了一个值之后就不会是字符串了。
2012-06-24 10:53
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
回复 8楼 快乐出发0220
明白了,但难道你在6楼说的只是在误导我?
另外如果我有个字串,怎么把它变成数值呀?
2012-06-24 11:00
mmc267
Rank: 1
来 自:陕西
等 级:新手上路
帖 子:2
专家分:0
注 册:2009-11-18
收藏
得分:0 
raw_input的返回值为字符串。
>>> raw_input()
5+2
'5+2'

所以a=int(raw_input())可以写成a=int(eval(raw_input()))
即:
>>> a=int(eval(raw_input()))
3.3
>>> print a
3

上面这种写法可以写成:
>>> b=int(input())
3.3
>>> print b
3

因为
>>> help (input)
Help on built-in function input in module __builtin__:

input(...)
    input([prompt]) -> value
   
    Equivalent to eval(raw_input(prompt)).
(END)


用01演绎生活
2012-06-29 21:09
快速回复:初学python,有个小问题,麻烦大侠们帮忙,谢了
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020261 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved