Python: 这里为什么else不会对应if语句? python语言中if与else是如何匹配的

python \u300apython\u57fa\u7840\u6559\u7a0b\u300bif else \u7684\u95ee\u9898\uff0c\u8fd9\u91cc\u7684else\u4e3a\u4f55\u4e0d\u662f\u548cif\u5bf9\u9f50\u7684\uff1f\uff1f\uff1f

\u8fd9\u6761else\u8bed\u53e5\u5bf9\u5e94\u7684\u662ffor\uff0c\u4e0d\u662fif\uff0c\u8fd9\u4e2a\u662fpython\u7279\u6709\u7684\u8bed\u53e5\u3002
\u5373\u5728for \u5faa\u73af\u4e2d\uff0c\u5982\u679c\u6ca1\u6709\u4ece\u4efb\u4f55\u4e00\u4e2abreak\u4e2d\u9000\u51fa\uff0c\u5219\u4f1a\u6267\u884c\u548cfor\u5bf9\u5e94\u7684else
\u53ea\u8981\u4ecebreak\u4e2d\u9000\u51fa\u4e86\uff0c\u5219else\u90e8\u5206\u4e0d\u6267\u884c\u3002
\u8fd9\u6bb5\u8bdd\u5982\u679c\u7528C++\u6765\u5b9e\u73b0\uff0c\u5982\u4e0b\uff0c\u4f60\u6bd4\u8f83\u4e00\u4e0b\u5c31\u77e5\u9053for-else\u7684\u7528\u5904\u4e86\u3002
for(i=99;i>81;i--)
{
n=sqrt(i);
if(n==int(n))
{
cout<<i;
break;
}
}
if(i==81) //\u8fb9\u754c\u5224\u65ad
cout<<"didn't find it!"<<endl;

python\u91cc\u4e0d\u80fd\u7528\u62ec\u53f7\u6765\u8868\u793a\u8bed\u53e5\u5757\uff0c\u4e5f\u4e0d\u80fd\u7528\u5f00\u59cb/\u7ed3\u675f\u6807\u5fd7\u7b26\u6765\u8868\u793a\uff0c\u800c\u662f\u9760\u7f29\u8fdb\u6765\u8868\u793a\u3002
if a == 1: print a if b == 1\uff1a print b else print c\u4e0a\u9762\u7684\u8fd9\u4e2aelse\u662f\u548cif b == 1 \u914d\u5bf9\u7684\u3002
if a == 1: print a if b == 1\uff1a print belse print c\u800c\u8fd9\u4e2aelse\u662f\u548cif a == 1 \u914d\u5bf9\u7684\u3002

程序里的else与for是对齐的,而没有与if对齐,
在Python里for语句也有else,循环执行完成后会执行else语句。

因为你的for j in range...语句和else语句是一体的,如果执行if i%j == 0会跳转到for i in range...。但是如果把else去掉的话,执行完break会向下执行print i, 无法跳出当前循环,可能语言描述有点难懂,建议用pythontutor来执行一遍你的程序,你就明白了。http://www.pythontutor.com/

for循环也可以有else语句,这不是C语言,亲!

扩展阅读:python手机版下载官方 ... python代码自动生成器 ... 学python后到底能干什么 ... python登录网站 ... python初学编程必背 ... python解释器手机版下载 ... 1e-6与10e-6区别 ... python基础代码大全 ... python1e-6 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网