鱼C论坛

 找回密码
 立即注册
查看: 2515|回复: 9

[已解决]我知道这是缩进问题,但是我一直无法找到问题.

[复制链接]
发表于 2016-10-10 13:32:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
原始小甲鱼老师的代码:

  1. def findStr(desStr, subStr):
  2.     count = 0
  3.     length = len(desStr)
  4.     if subStr not in desStr:
  5.         print('在目标字符串中未找到字符串!')
  6.     else:
  7.         for each1 in range(length-1):      
  8.             if desStr[each1] == subStr[0]:
  9.                 if desStr[each1+1] == subStr[1]:
  10.                     count += 1
  11.                     
  12.         print('子字符串在目标字符串中共出现 %d 次' % count)

  13. desStr = input('请输入目标字符串:')
  14. subStr = input('请输入子字符串(两个字符):')
  15. findStr(desStr, subStr)
复制代码


因为有几个地方我搞不清楚为什么所以我想把变数中的值列印出来,让我比较好理解
所以我将代码改成如下:
  1. def findStr(desStr, subStr):
  2.     count = 0
  3.     length = len(desStr)
  4.             print('length=',length)
  5.     if subStr not in desStr:
  6.             print('在目标字符串中未找到字符串!')
  7.     else:
  8.         for each1 in range(length-1):
  9.         print('each1='each1)
  10.             if desStr[each1] == subStr[0]:
  11.                     print('desStr[each1]=',desStr[each1])
  12.                     print('subStr[0]',subStr[0])
  13.                 if desStr[each1+1] == subStr[1]:
  14.                         print('desStr[each1+1]=',desStr[each1+1])
  15.                         print('subStr[1]=',subStr[1])
  16.                     count += 1
  17.                     
  18.         print('子字符串在目标字符串中共出现 %d 次' % count)

  19. desStr = input('请输入目标字符串:')
  20. subStr = input('请输入子字符串(两个字符):')
  21. findStr(desStr, subStr)
复制代码


程序就一直无法执行了.
最佳答案
2016-10-10 13:48:55
tab 和 空格 混用了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-10-10 13:48:55 | 显示全部楼层    本楼为最佳答案   
tab 和 空格 混用了

评分

参与人数 1荣誉 +5 收起 理由
fdfanmo + 5

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-10-10 15:32:13 | 显示全部楼层
本帖最后由 fdfanmo 于 2016-10-10 15:48 编辑
SixPy 发表于 2016-10-10 13:48
tab 和 空格 混用了


谢谢版主帮忙~
问题解决了.
不知道版主有没有更方便的python编译器推荐.
可以一眼看出问题错在哪里的.

snap060.jpg
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-10-10 15:36:27 | 显示全部楼层
目测代码,大部分print 的缩进有问题。建议,用个别的IDE一看就能看出来。

评分

参与人数 1荣誉 +5 收起 理由
fdfanmo + 5

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-10-10 15:43:19 | 显示全部楼层
domenet 发表于 2016-10-10 15:36
目测代码,大部分print 的缩进有问题。建议,用个别的IDE一看就能看出来。

大大有推荐的编译器吗?
我知道的是length = len(desStr)的下一个print不用缩进(TAB键)
但是for each1 in range(length-1):的下一个print就需要缩进(TAB键)
因为(length-1)后面有 :  出现.
是这样吗?
另外缩进应该是要按tab1次还是按"空白键"4次?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-10-10 15:53:15 | 显示全部楼层
UliPad或sublime都是轻量级的方便,里面有设置把缩进改成4个空格或tab。要统一,别这边用空格下面又用tab。

评分

参与人数 1鱼币 +5 收起 理由
fdfanmo + 5

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-10-10 19:30:11 | 显示全部楼层
domenet 发表于 2016-10-10 15:53
UliPad或sublime都是轻量级的方便,里面有设置把缩进改成4个空格或tab。要统一,别这边用空格下面又用tab。

所以請問在python中他的縮進是是要按tab鍵1次还是按"空白键"4次
還是說python並沒有規定縮進是要用空格還是TAB..
你只要是整個py代碼中統一用空格或是統一用TAB都可以..
但是你如果又有空格又有TAB就會報錯?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-10-10 19:39:57 | 显示全部楼层
好像自带的IDLE中没有区别,在别一些IDE中好像也有会自动帮转换的。最好是统一一种方式。

评分

参与人数 1鱼币 +5 收起 理由
fdfanmo + 5

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-10-10 20:01:02 | 显示全部楼层
domenet 发表于 2016-10-10 19:39
好像自带的IDLE中没有区别,在别一些IDE中好像也有会自动帮转换的。最好是统一一种方式。


剛剛測試過後明白了..
IDLE 只接受4個空白,如果是1個TAB會報錯..不会自动帮忙转换..
所以在EMEDITOR中的所有組態屬性---缩排中--要設定以空白來代替TAB這樣才可以.不會報錯.
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2016-10-10 21:33:16 | 显示全部楼层
fdfanmo 发表于 2016-10-10 20:01
剛剛測試過後明白了..
IDLE 只接受4個空白,如果是1個TAB會報錯..不会自动帮忙转换..
所以在EMEDITOR ...

OK,那么继续学习吧。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-23 07:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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