...

Python基础04-分支及循环

分支及循环

分支指在程序执行过程中根据条件执行不同的代码。循环只反复或多次执行执行某段代码直到满足某一条件。

if条件判断

条件判断(也称分支)是程序中最重要的功能之一,根据不同的条件执行不同的语句。

if ...

如果条件满足,才执行其中语句,例如

x = 1
if x>0:
    print("正数")
print('结束')

if ... else ...

即,如果条件满足,执行某些语句,否则执行另一些语句,例如

x = 1
if x>0:
    print("正数")
else:
    print("不是正数")
print('结束')

注意:无论x是否符合>0条件,print('结束')都会进行输出

if... elif ... else ...

即,如果满足某条件,执行某些语句,否则如果满足另一条件,执行该条件语句,如果都不满足所列条件则执行其他语句。

x = 1
if x>0:
    print("正数")
elif x=0:
    print("0")
else: 
    print("负数")
print('结束')

真假值

在Python中False、None,数字0,字符串'0',以及空字符串'',空列表[]、空字典{},空元祖(,),空集合set(),都被失望假值;
否则被视为真。比如可以直接使用if list判断列表为空:

list = []
if list:   # 也可以使用if len(list)>0:
   print('列表不为空')

三元表达式

三元表达式即 当条件满足时 变量 为一个值,条件不满足时,变量为另一个值,例如:

max = a if a > b else b

逻辑符代替if判断

在Python语句中and和or也可以用于逻辑判断。

  • c = a and b:如果a为假,则c的值为a,否则c的值为b
  • c = a or b:想反,如果a为假,c的值为b,否则c的值为a

特别是or语句,常用来确保变量的值非空并赋于默认值,例如:

d = {'a': 1}
c = d.get('c') or '默认值'  

如果d.get('c')的结果为None,0,空字符串等假值,c被赋予默认值

循环

Python中的循环有for循环和while循环两种。

for循环

for循环(也称遍历),是从一个含有多个变量的数据集合中,依次取出每一项,进行操作。

for循环可以对字符串、列表、元祖、集合、字典及生成器、迭代器、文件指针等可以迭代的对象进行遍历输出。
例如:

遍历获取一组顺序的数字

我们可以用range来生成一组顺序的数字,来遍历处理,示例如下

for i in range(10):  # range(10)即生成0-9的10个数字,不包括10
    print(i)

遍历字符串

str_var = 'hello,world'

for i in str_var:  # i是代表所遍历对象的每一项的一个变量,可以是任意变量名
    print(i)

遍历列表

list_var = ['a', 'b', 'c', 'd']

for i in list_var:  # i是代表所遍历对象的每一项的一个变量,可以是任意变量名
    print(i)

在遍历时如果想连同该项的索引一起输出,可以使用enumerate实现,例如:

list_var = ['a', 'b', 'c', 'd']

for index, item in enumerate(list_var):  # index代表索引,item代表每一项的值
    print(index, item)

输出结果如下:

0 a
1 b
2 c
3 d

遍历字典

dict_var ={'a': 1, 'b': 2, 'c': 3}

for key, value in dict_var.items():  # i是代表所遍历对象的每一项的一个变量,可以是任意变量名
    print(key, value)

注意:遍历字典时,需要使用字典的items()方法,得到每一项key,value的组合

while 循环

while循环用于当指定条件满足时,循环执行某些语句,直到条件不满足。
while循环中为了避免死循环,一般循环中要有使循环趋于结束的语句,例如:

i = 0
while i < 10:  # 当i<10时,循环执行下面语句
    print(i)
    i += 1  # i每次自己增加1,等i>=10时,循环自动结束

break和continue

break用于结束当前循环,continue用于结束本次循环,直接开始下次循环

break使用示例如下

for in range(10):
    if i > 5:  # 如果大于5,结束循环
        break
    print(i)

continue使用示例如下:

for in range(10):
    if i % 2 == 0:  # 如果是偶数,跳过本次循环
        continue
    print(i)

注意:当有多层循环嵌套时,break每次只能跳出一层循环

循环中的else

循环结束有break结束和全部循环完结束两种,为了判断是哪种结束方式,可以使用else。当非break结束时执行else。

for in range(10):
    if i > 5:  # 如果大于5,结束循环
        break
    print(i)
else:  # 非break结束时执行
    print('非break跳出,循环全部执行完毕')

由于实际不会break,因此运行结果会打印'循环完毕',while...else的使用和for...else类似:

while i < 10:
    if i > 5:
        break
    print(i)
    i += 1
else:  
    print('非break跳出,循环全部执行完毕')
posted @ 2020-04-21 17:41  韩志超  阅读(1133)  评论(0编辑  收藏  举报