鱼C论坛

 找回密码
 立即注册
查看: 2419|回复: 3

[已解决]python:if…else,有点困惑

[复制链接]
发表于 2018-10-20 09:14:08 | 显示全部楼层 |阅读模式

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

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

x
names = ['Tom', 'Mike','Alice', 'Nick']

for name in names:        #1
    if name == 'Alice':
        print('Female')
        break
    print('循环数据:' + name)
   
    else:
        print('没有循环数据')
       
print('结束循环')

————————
以上是一段错误代码,删去红色空格部分就正确了。

输出为:
循环数据:Tom
循环数据:Mike
Female
结束循环

————————

我想问的是自己心中的一点疑惑——我从一个小白的逻辑上来看觉得不应该删除这些空格,以下是我的一顿“歪理”:
        for…in…去遍历列表,然后出现了if的情况或else的情况;
        所以,if和else应该并列(不是if的情况,就是else的情况)
        因此代码中else应该和if对齐。


而残酷的现实是——为什么else前边不加空格呢????

大虾,恳请传道授业解惑。
最佳答案
2018-10-20 09:49:29
要么是if else要么for else
你原来的缩进中间print缩进中断了if else的联系
for else也不在一个缩进
缩进是python的灵魂,这个逻辑不能差

你最后发的else完了要缩进,
你没有给
else:
    print('循环数据:' + name)
如果你是else没有内容可以写,
可以在下面缩进写个pass

else:
    pass
或者干脆不写,你都没else操作
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-10-20 09:33:43 | 显示全部楼层
你这个用法是for。。else语句,用于处理遍历失败
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-20 09:45:17 | 显示全部楼层
本帖最后由 hhzczy 于 2018-10-20 09:50 编辑
alltolove 发表于 2018-10-20 09:33
你这个用法是for。。else语句,用于处理遍历失败


names = ['Tom', 'Mike','Alice', 'Nick']

for name in names:
    if name == 'Alice':
        print('Female')
        break
    else:
    print('循环数据:' + name)
   
else:
    print('没有循环数据')
       
print('结束循环')

——————————
我一楼举的例子不太好。

在此追问一下:
我上边这个代码也是错的,删掉红底的内容就变正确了。

为什么不能加else和if搭配,说明两种情况?
if是一种,else是另外一种。

我还没有形成编程思维,纯粹从字面上理解。恳请解惑。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-20 09:49:29 | 显示全部楼层    本楼为最佳答案   
要么是if else要么for else
你原来的缩进中间print缩进中断了if else的联系
for else也不在一个缩进
缩进是python的灵魂,这个逻辑不能差

你最后发的else完了要缩进,
你没有给
else:
    print('循环数据:' + name)
如果你是else没有内容可以写,
可以在下面缩进写个pass

else:
    pass
或者干脆不写,你都没else操作
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 09:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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