python中if...else...必须对齐,结果却错了!

您所在的位置:网站首页 jk格裙格子要对齐吗 python中if...else...必须对齐,结果却错了!

python中if...else...必须对齐,结果却错了!

2024-07-17 12:45| 来源: 网络整理| 查看: 265

需求场景

现有以下字符串:

string = "liu de hua"

请打印该string字符串中的每个字母,并判断string中是否存在字母“e”,如果存在,停止打印;否则,输出:“字符串中不存在字符e”。

解析 使用for-in循环,遍历string;输出当前字母;使用if-else,如果存在字母“e”,结果循环,否则,输出:“字符串中不存在字符e”。 编写代码 string = "liu de hua" for i in string: print("当前字母为:"+ i) if i == 'e': print("字符串中包含字母e") break else: print("字符串中不存在字母e")

竟然如此简单了! 本人预想目标结果如下:

当前字母为:l 当前字母为:i 当前字母为:u 当前字母为: 当前字母为:d 当前字母为:e 字符串中包含字母e

运行,结果如下: 在这里插入图片描述 这是什么啊?为啥输出这么多次“字符串中不存在字母e”这句话呢? 重新梳理代码,for-in、if-else格式都没没发现任何错误。

超乎你的想象

大家都知道python对空格有非常严谨的要求,大家分析如下代码,if-else的格式是不是存在问题?

string = "liu de hua" for i in string: print("当前字母为:"+ i) if i == 'e': print("字符串中包含字母e") break else: print("字符串中不存在字母e")

if语句中else却与for对齐了,这是什么操作? 先看看运行结果: 在这里插入图片描述 竟然是我们理想的结果,那么又是为什么for与else必须对齐呢?

我们将string中字母“e”删除,查看else中的内容是否正常输出呢?

string = "liu d hua" for i in string: print("当前字母为:"+ i) if i == 'e': print("字符串中包含字母e") break else: print("字符串中不存在字母e")

运行结果: 在这里插入图片描述 结果是正确的!

原因分析

首先我们梳理下需求:

请打印该string字符串中的每个字母,并 判断string中是否存在字母“e”,如果存在,停止打印;否则,输出:“字符串中不存在字符e”。

1. 首先,需要判断整个string中是否存在字母“e”;也就是说要for遍历完,将整个string中的每个字母进行对比,若果存在,就退出循环,不再执行else后面的内容 。 2. 其次,如果对比完整个string,不存在字母“e”,那么就再else后的内容。

再看一下第一次我写的代码:

string = "liu de hua" for i in string: print("当前字母为:"+ i) if i == 'e': print("字符串中包含字母e") break else: print("字符串中不存在字母e")

我们将else放在了for循环里面,当对比第一个字母时,若果不是“e”,就执行了else后面的内容;依次循环,对比一次,执行一次else。 我们想要的是对比完整个string,如果没有字母“e”,再执行else。

所以,else在格式要与for对齐!!!



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3