Python条件语句和循环

目录

 

条件语句

语法 

举例说明 

循环和控制

遍历循环

语法

什么是iterable

举例

条件循环  

语法

 真假判断

循环控制 

continue例子 

break例子

嵌套式的循环控制例子 


条件语句

条件语句就是对给出的条件进行判断,对不同的判断结果指定不同的处理方法.

  • 语法 

if condition1:
    <method1>
elif condition2:
    <method2>
else:
    <method3>

条件语句的判断顺序一定是自上而下,一旦达成指定条件,则执行相应的处理方法,而其他的代码不在执行.

所以,在设计判断条件时,务必要小心,设定好条件的适用范围,避免出现条件适用范围重叠而导致代码不执行的情况.

当然,条件语句是可以无限嵌套的,既每一个条件下,还可以无限嵌套其他条件.

if condition1:
    if condition_first:
        excute some code
    elif condition_second:
        excute other code
    else:
        excute code
elif condition2:
    if condition_first:
        excute some code
    elif condition_second:
        excute other code
    else:
        excute code
else:
    excute code

        
  • 举例说明 

假设让用户输出一个数字,对该数字进行判断,若小于0则大于其绝对值,若等于0则直接打印该数字,若大于0又分三种不同的情况来处理.0到10之间大于其平方数,10到20之间大于'10到20之间'的字符,若大于20则大于'大于20'字符.

var=input()

var=int(var)

if var < 0:
    print(abs(var))
elif var == 0:
    print(var)
else:
    if var < 10:
        print(var**2)
    elif 10 <= var <= 20:
        print('10到20之间')
    else:
        print('大于20')

循环和控制

循环又分为变量循环为条件循环,同时continue和break两个关键字又可以进行循环控制.

遍历循环

  • 语法

for var in sequence:
    code statement

例如:

for i in [1,2,3]:
    print(i+1)

#输出:
2
3
4
  • 什么是iterable

python中一切皆对象.可以使用for in 循环遍历的对象就是可迭代对象.可迭代性也就是Iterable.

python的六种六列数据结构(int,str,list,tuple,dict,set),除了int意外,其他的都是可迭代的,也就是Iterable.

当然,可迭代的对象不仅仅这些,还有以后会介绍的生成器,或者实现了特定魔法方法的自定义类型也都可以是Iterable.

那如何判断对象是否可以被迭代呢?

内置模块collections为我们提供这样的功能.

from collections import Iterable

print(isinstance(list(),Iterable))#输出True
print(isinstance(int(),Iterable))#输出False
  • 举例

一般情况下,遍历循环都是正序的,比如:

for i in range(0,3):
    print(i)

#输出:
0
1
2

能不能倒序呢?答案是肯定的.

for i in range(3,0,-1):
    print(i)

#输出:
3
2
1

其实range函数接收的第三个参数为负数时,就代表了逆序,同时也表示间隔,例如,间隔一个再打印一个.当然,正序时也同样可以实现间隔.

for i in range(3,0,-2):
    print(i)

#输出:
3
1

for i in range(0,3,2):
    print(i)

#输出:
0
2

那如果被遍历循环的对象不是range函数,怎么实现间隔呢?幸好python提供了另一个enumerate函数.

for k,v in enumerate('abc'):
    print(k,v)

#输出:
0 a
1 b
2 c


for k,v in enumerate('abc',1):
    print(k,v)

#输出:
1 a
2 b
3 c

enumerate接收两个参数,第一个代表要迭代的对象,第二个表示索引值,默认为0,当人也可以自行指定.

有了索引下标,就可以实现间隔循环了.divmod是python的一个内置函数,以tuple形式返回两个是的商和余数.

for k,v in enumerate('abc',1):
    if divmod(k,2)[-1] !=0 :
        print(k,v)

#输出:
1 a
3 c

条件循环  

  • 语法

while conditione:
    code statement

 例如:

a=10

while a > 0:
    print('a > 0')
    a=a-20

#输出:
a > 0

条件循环最最重要的是对给定的条件进行判断,如果为True则执行循环,如果判断为False,则不执行.

使用条件循环最重要的是就是设置合理的终止条件,否则将无限的死循环下去.......

  •  真假判断

while循环以True/False判断结果作为循环执行的依据,那在python中的True/False是如何判断的呢?

类型 TRUE FALSE
int 非0 0
str 非空
其他数据结构 非[] {} () [],{},()
特殊关键字 非None None
Not 的使用  not False为True not True为False

还需要注意逻辑判断的关键字 and 和 or的用法.

循环控制 

python为循环控制提供给了两个关键字continue,break.

continue:表示继续循环

break:表示终止循环

  • continue例子 

假设有一个列表,既有数字又包含字母.我们的目的将其中所有的数字都加上1,而字母则跳过不做任何处理.

L=[1,2,'a',3,'b']

for i in range(len(L)):
    if isinstance(L[i],int):
        L[i]+=1
    else:
        continue
print(L)

#输出:
[2, 3, 'a', 4, 'b']
  • break例子

每次循环我们都将num加2,但当num大于等于20时中断整个循环.

num=10

while True:
    num+=2
    if num >= 20:
        break

print(num)
#输出:
20
  • 嵌套式的循环控制例子 

现在我们将以前的例子综合一下,既遍历循环中嵌套条件循环,同时使用continue和break两个循环控制的关键字.

还是假设一个既包含数字又包含字母的列表,只要列表中的数字不大于20就乘上2,但一旦大于20就终止.

同样还是忽略字母,不做任何处理.

L=[1,2,'a',3,'b']

for i in range(len(L)):
    if isinstance(L[i],int):
        while True:
            L[i]*=2
            if L[i] >= 20:
                break
    else:
        continue

print(L)

#输出:
[32, 32, 'a', 24, 'b']

 

 

没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试