找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 4481|回复: 8

[已回复] 菜鸟求助

1

主题

2

帖子

2

积分

贫民

积分
2
上川 发表于 2016-7-22 09:33:49 | 显示全部楼层 |阅读模式
search = '130'
num_a = '1301-222-3333'
num_b = '1892-130-1234'
num_c = '1223-112-1300'
print(search + ' is it ' + str(num_a.find(search)) + ' to ' + str(num_a.find(search)) + len(search) +  ' of num_a'

)这一个语句执行总是错误,错误代码是
Traceback (most recent call last):
  File "C:/Users/Administrator/PycharmProjects/untitled1/frist1.py", line 7, in <module>
    print(search + ' is it ' + str(num_a.find(search)) + ' to ' + str(num_a.find(search)) + len(search) +  ' of num_a' )
TypeError: Can't convert 'int' object to str implicitly
这是什么原因啊    新人搞不懂 ,书上这么写  为什么我执行的总提示对象出错

回复

使用道具 举报

1

主题

2

帖子

2

积分

贫民

积分
2
上川  楼主| 发表于 2016-7-22 09:34:56 | 显示全部楼层
错误的应该是len(search),但是我不懂得有什么不对
回复 支持 反对

使用道具 举报

5

主题

165

帖子

165

积分

版主

Rank: 7Rank: 7Rank: 7

积分
165

热心会员突出贡献优秀版主荣誉管理

mongo 发表于 2016-7-22 10:18:26 | 显示全部楼层
print(search + ' is it ' + str(num_a.find(search)) + ' to ' + str(num_a.find(search)) + len(search) +  ' of num_a' )
这句话中 除了len(search) 为整型外 ,其它的都为字符串类型,两个整型使用+号是相加的意思,两个字符串使用+号是代表字符串拼接,
python在这里貌似也重载了+这个方法  ,但是整型和字符串不能相加的,python尝试转换整型至字符串但是发现无法转换,所以提示错误
回复 支持 反对

使用道具 举报

50

主题

1057

帖子

1108

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1108

活跃会员热心会员最佳导师默默耕耘突出贡献优秀版主荣誉管理论坛元老

blueelwang 发表于 2016-7-22 12:08:53 | 显示全部楼层
mongo 发表于 2016-7-22 10:18
print(search + ' is it ' + str(num_a.find(search)) + ' to ' + str(num_a.find(search)) + len(search)  ...

正解
回复 支持 反对

使用道具 举报

50

主题

1057

帖子

1108

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1108

活跃会员热心会员最佳导师默默耕耘突出贡献优秀版主荣誉管理论坛元老

blueelwang 发表于 2016-7-22 12:10:32 | 显示全部楼层
如果不适用+而使用,连接就会不存在类型的问题, 具体可以参考字符串连接的文章: http://www.pythontab.com/html/2016/pythonjichu_0706/1035.html
回复 支持 反对

使用道具 举报

5

主题

101

帖子

101

积分

版主

Rank: 7Rank: 7Rank: 7

积分
101

最佳新人活跃会员热心会员突出贡献

QQ
落叶秋风 发表于 2016-7-22 13:00:58 | 显示全部楼层
print search + ' is it ' + str(num_a.find(search)) + ' to ' + str(num_a.find(search)) + '%d'%len(search) + ' of num_a'改成这样,+号的运算规则楼上几位都说的很清楚了,整型跟string型的+号运算规则不一样,所以不能混着一句话中用,我这是在python2.7上的print输出是不加括号的,你加括号说明你是python3的,粘过去之后记得加括号!!!否则又报错了!!!解决思路就是让整型的数据变成字符串类型的,恩,就是酱。另,其余回答都是正解,求抱大腿!!!
回复 支持 反对

使用道具 举报

0

主题

5

帖子

5

积分

贫民

积分
5
python_jack 发表于 2016-7-28 14:28:23 | 显示全部楼层
search = '130'
num_a = '1301-222-3333'
num_b = '1892-130-1234'
num_c = '1223-112-1300'
print search + ' is it ' + str(num_a.find(search)) + ' to ' + str(num_a.find(search)) + '%d'%len(search) + ' of num_a'
报错是因为整型和字符串不能相加,所以得把整型的len(search)改为字符串'%d'%len(search)
回复 支持 反对

使用道具 举报

0

主题

5

帖子

5

积分

贫民

积分
5
欧米伽 发表于 2016-7-29 08:47:57 | 显示全部楼层
学习学习
回复

使用道具 举报

0

主题

8

帖子

8

积分

贫民

积分
8
齐凡 发表于 2016-9-10 21:19:06 | 显示全部楼层
落叶秋风 发表于 2016-7-22 13:00
print search + ' is it ' + str(num_a.find(search)) + ' to ' + str(num_a.find(search)) + '%d'%len(sea ...

正解
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表