鱼C论坛

 找回密码
 立即注册
查看: 1680|回复: 6

[已解决]关于for循环里面嵌套if的问题

[复制链接]
发表于 2019-8-1 15:14:24 | 显示全部楼层 |阅读模式

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

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

x
这是用来确定是否是回文联的编程:
def palindrome(string):
        length = len(string)
        last = length - 1
        length //= 2
        flag = 1
        for each in range(length):
                if string[each] != string[last]:
                        flag = 0
                last -= 1

        if flag == 1:
                return 1
        else:
                return 0

string = input('请输入一句话:')
if palindrome(string) == 1:
        print('y')
else:
        print('NO')


对于中间:
  for each in range(length):
                if string[each] != string[last]:
                        flag = 0
                last -= 1
为什么if没有所对应的else可以直接写出本应该是else所接的last -=1?
最佳答案
2019-8-1 15:38:12
wkl961029 发表于 2019-8-1 15:29
if string==string[::-1]:return True这一句能解释一下吗?太多冒号有点云里雾里了QAQ

切片(就是[起始位置:结束位置:步距])为空则表示自开头/到结尾,步距是可选的。其实你可以去网上查一下切片/分片
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-8-1 15:17:19 | 显示全部楼层
这个last-=1 和if语句是平级的,也就是说 无论if是否检测为真  这个last都是要减①的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-1 15:23:13 | 显示全部楼层
if 与 last-=1的缩进是相同的

if 不一定有else,这种情况等价于
  1. else:pass
复制代码


而且这里不能用else接,因为无论如何对应的位置下标也应该-1

PS:老哥其实你函数也可以这么写:
  1. def palindrome(string):
  2.   if string==string[::-1]:return True
  3.   else:return False
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-1 15:29:42 | 显示全部楼层
永恒的蓝色梦想 发表于 2019-8-1 15:23
if 与 last-=1的缩进是相同的

if 不一定有else,这种情况等价于

if string==string[::-1]:return True这一句能解释一下吗?太多冒号有点云里雾里了QAQ
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-1 15:38:12 | 显示全部楼层    本楼为最佳答案   
wkl961029 发表于 2019-8-1 15:29
if string==string[::-1]:return True这一句能解释一下吗?太多冒号有点云里雾里了QAQ

切片(就是[起始位置:结束位置:步距])为空则表示自开头/到结尾,步距是可选的。其实你可以去网上查一下切片/分片
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-1 15:40:05 | 显示全部楼层
wkl961029 发表于 2019-8-1 15:29
if string==string[::-1]:return True这一句能解释一下吗?太多冒号有点云里雾里了QAQ

就相当于判断这个字符和把这个字符倒过来是否相等,[::-1]这个比较常用,要记住,用于倒序非常方便
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2019-11-9 17:55:04 From FishC Mobile | 显示全部楼层
无else他才运行,诺是加上了只有错了才运行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-20 18:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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