Python中的条件判断语句与循环语句用法小结
if语句 >>通用格式 if <test1>: <statements1> elif <test2>: <statements2> else: <statements3> 另外需要注意的是,Python中是没有switch/case语句的
while语句是Python语言中最通用的迭代结构,简而言之,只要顶端测试一直计算到真值,就会重复执行一个语句块。 >>一般格式 while <test>: <statements1> else: <statements2> >>break,continue,pass和循环else break 跳出最近所在的循环(跳过整个循环语句)。 continue 跳到最近所在循环的开头处(来到循环的首行)。 pass 什么事也不做,只是空占位符语句。 循环else块 只有当前循环正常离开时才会执行(也就是没有碰到break语句) >>一般循环格式 while <test1>: <statements1> if <test2>:break if <test3>:continue else: <statements2> >>pass pass语句是无运算的占位符,当语法需要语句并且还没有任何实用的语句可写时,就可以使用它。 >>循环else x = y // 2 while x > 1: if y % x == 0: print(y,'has factor',x) break x -= 1 else: print(y,'is prime') 再看一个对比的例子,没有使用else的情况: found=False while x and not found: if (matchx[0]): print('Ni') found=True else: x=x[1:] if not found: print('not found') 使用else后的情况: while x: if (match(x[0])): print('Ni') break else: print('not found') for循环 for循环在Python中是一个通用的序列迭代器:可以遍历任何有序的序列对象内元素。for语句可以用于字符串、列表、元组、其他内置可迭代对象。 >>一般格式 for <target> in <object>: <statements> else: <statements> 此处的else的作用和while语句中的一样。另外需要注意的是,当Python运行for循环时,会逐个将序列对象中的元素赋值给目标,然后为每个元素执行循环体。 编写循环的技巧 内置range函数:返回一系列连续增加的整数,可作为for中的索引 当range函数只有一个参数时,会返回从零算起的整数列表,但其中不包括该参数的值。如果传进两个参数,那第一个参数是上边界,第二个参数是下边界。如果传进三个参数时,第三个参数表示步进值。 range提供了一种简单的方法,重复特定次数的动作: for i in range(5): print(i,'Pythons') 相应的C++代码则是: int i; for(i = 0;i < 5;++i) { std::cout<<i<<"Python"; } >>并行遍历:zip和map L1=[1,2,3,4] L2=[5,6,7,8] list(zip(L1,L2)) 上述代码的执行结果是: [(1,5),(2,6),(3,7),(4,8)] 当参数的长度不同时,zip会以最短序列的长度为准来截断所得到的元组。 使用zip构造字典: keys=['spam','eggs','totast'] values=[1,5] D = dict(zip(keys,values)) >>产生偏移和元素:enumerate s='spam' for (offset,item) in enumerate(s): print(item,'appears at offset',offset) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |