K乙己:else有几种写法?

本文介绍了Python中else关键字的四种不同用法:与if、for、while语句的配合以及在try...except...结构中的应用。通过实例代码详细解释了每一种用法的工作原理,强调了在for和while循环中,else语句仅在循环正常结束时执行,而在遇到break时不会执行。此外,还展示了在异常处理中,else块的代码只在没有异常发生时执行。

各位看官,大家好。

我是K乙己,今天我要跟大家说说else的四种写法,希望大家喜欢。

第一种写法,与if搭配

name = input("请输入名字: ")

if name == "K乙己":
    print("我喜欢吃茴香豆!")
else:
    print("我爱学python!")   

这种写法估计学过2个小时的Python都知道这种用法,也是平时else最常见的用法。

这里的else没啥好研究的,就是一个条件判断语句,True是啥,False又是啥啥啥。

第二种写法,与for搭配

没想到了吧,else还能与循环语句的for合用。上代码:

for n in range(1,101):
    if n%15 == 0:
        print(n)
else:
    print("我爱学python!")

执行之后:

15
30
45
60
75
90
我爱学python!

else语句在for语句结束后执行了。

嗨,反正都要执行到的,没必要再写个else语句。

刚开始我也是这么认为的,但是我试了以下代码之后:

for n in range(1,101):
    if n%15 == 0:
        print('进入break')
        break
else:
    print("我爱学python!")

输出结果:

进入break

由此,得出结论:

for与else结合的语句,只有当for循环完整的执行完,才会执行else里的语句。

如果中间有break跳出循环,则else里的语句不执行。

第三种写法,与while搭配

上面我们试了下,else在for循环中的用法,那么else是否也能与while组合进行使用呢?一起证实下:

n = 0
while n < 100:
    n+=1
    print(n)
else:
    print("我爱学python!")

输出结果:

1
2
3
...
100
我爱学python!

上面的执行输出好像和for…else…用法一样,循环执行完毕会执行else里的语句。

用代码验证猜想:

n = 0
while n < 100:
    n+=1
    print(n)
    if n > 10:
        break
else:
    print("我爱学python!")

输出结果:

1
2
3
...
11

猜想成果被验证,结论同for…else…用法。

第四种写法,try…except…else…

some_exceptions = [ValueError, TypeError, IndexError, None]

for choice in some_exceptions:
    try:
        print(f"抛出 {choice}")
        if choice:
            raise choice("出异常啦!")
        else:
            print("顺利完成,没有异常")
    except ValueError:
        print("有一个ValueError")
    except TypeError:
        print("有一个TypeError")
    except Exception as e:
        print(f"最后捕获其他异常: {e.__class__.__name__}")
    else:
        print("else里面的代码只有在没有异常的时候才执行!")
    finally:
        print("finally里的代码不管有没有异常都执行!")

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。


这份完整版的Python全套学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费

Python资料、技术、课程、解答、咨询也可以直接点击下面名片,添加官方客服斯琪

### Matlab 中 `w = W_new(:, k)` 的代码解释 在 MATLAB 编程环境中,`W_new(:, k)` 是一种矩阵索引操作。以下是对其功能的具体说明: #### 1. **语法解析** - `W_new`: 这是一个二维数组或矩阵。 - `:`: 表示选取某一行或某一列的所有元素[^3]。 - `k`: 表示特定的列号。 因此,表达式 `W_new(:, k)` 的含义是从矩阵 `W_new` 中提取第 `k` 列的所有元素,并将其赋值给变量 `w`。 #### 2. **常见用途** 这种写法通常用于处理多维数据集中的单列向量。例如,在优化算法或多目标进化算法 (MOEA) 中,可能需要逐列访问权重矩阵或其他参数矩阵的数据。通过这种方式可以方便地获取每列的内容并进一步分析或运算[^4]。 #### 3. **潜在错误及其解决方案** 如果遇到与该语句有关的问题,可能是由于以下几个原因引起的: ##### (1)**维度不匹配** 当尝试执行此命令时可能会收到如下错误消息:“Index exceeds matrix dimensions.” 这表明所指定的列数超出了实际存在的范围。应先验证 `size(W_new, 2)` 是否大于等于 `k` 值来确认是否有足够的列存在[^5]。 修正方法: ```matlab if size(W_new, 2) >= k w = W_new(:, k); else error('Column index out of bounds'); end ``` ##### (2)**未初始化变量** 另一个常见的问题是 `W_new` 或者 `k` 变量尚未被正确定义就试图使用它们。确保这些变量已经正确设置非常重要。 检查方式可以通过简单的打印调试信息实现: ```matlab disp(['Size of W_new:', num2str(size(W_new))]); disp(['Value of k:', num2str(k)]); ``` ##### (4)**逻辑错误** 有时即使没有明显的语法问题也可能因为程序内部逻辑设计不当而导致意外行为。比如循环过程中动态修改了某些关键变量的状态从而影响到后续步骤的结果准确性等问题都需要仔细排查。 --- ### 示例代码展示如何安全有效地利用这一特性 下面给出一段完整的例子演示上述概念的应用场景之一——读取存储于文件内的多个样本特征值作为训练模型输入的一部分过程: ```matlab % Load data from file into variable 'data' load('dataset.mat', 'data'); % Assume each column represents one sample feature set. num_samples = size(data, 2); for i=1:num_samples current_sample_features = data(:,i); % Extract ith sample features % Process the extracted features... end ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值