猪行天下之Python基础——4.1 条件判断与循环

1,260 阅读7分钟

内容简述:

  • 1、条件判断
  • 2、循环

1、条件判断

所谓的条件判断就是根据一条或者多条语句的执行结果(True/False)来决定执行哪一块的代码。

① 条件判断的三个关键字

Python 使用ifelseelif三个关键字的搭配来实现判断语句,使用代码示例如下:

# 单分支(只有一个if),如果代码块只有一条语句,可以和if语句写到一行
name = 'CoderPig'
if name == 'CoderPig'print("你是CoderPig")

# 双分支(if-else)
sex = "男"
if sex == '男':
    print("你是一个男性")
else:
    print("你是一个女性")

# 多分支(if-elif-else)
score = 78
if score == 100:
    print("满分!")
elif 90 <= score < 100:
    print("优秀!")
elif 80 <= score < 90:
    print("良好!")
elif 70 <= score < 80:
    print("中等!")
elif 60 < score < 70:
    print("差!")
else:
    print("不及格!")

运行结果如下

你是CoderPig
你是一个男性
中等!

② 条件表达式

一个 简化版的if-else,一般在赋值时会用得比较多,比如把两个值中较大的那个赋值给一个变量。代码示例如下:

a,b = 1, 2
c = a if a > b else b
print('c = %d' % c)

运行结果如下

c = 2

2、循环


① for循环

当我们需要重复执行某行或某个代码块的时候可以使用循环。举个例子:在没有学习循环结构前,要你计算1加到100,你可能会写出这样的代码:result = 1 + 2 + 3 + 4 +… + 100 如果要你加到1000,或者10000呢?会非常繁琐吧,如果有了循环,你只需下面这样一段代码:

result = 0
for i in range(1,101):
    result += i
print(result)

运行结果如下

====== 输出1-100的求和结果 ====== 
5050

如果想加到1000,只需把101改成1001,加到10000,改成10001即可。非常简单,上面就是Python提供的两种循环中的「for循环」,还有另外一种「while循环」。


② while循环

把for循环的代码改成while循环,代码如下:

result = 0
pos = 1
while pos <= 100:
    result += pos
    pos += 1
else:
    print("====== 输出1-100的求和结果 ====== \n%d" % result)

运行结果如下

====== 输出1-100的求和结果 ====== 
5050

如果while后的判断条件返回值为True,执行循环体里的代码,否则退出循环。可以搭配else一起使用,当循环执行完后执行某段代。,可选,但不是必须的。for循环也可以使用else。


③ break,continue

Python为我们提供了两个循环控制的关键字「break」和「continue」。
break终止整个循环,使用代码示例如下:

print("输出1-100之间所有的奇数:")
for i in range(1, 101):
    if i % 2 == 0:
        if i % 20 == 0: print()
        continue
    else:
        print(i, end='\t')

运行结果如下

输出1-100之间所有的奇数:
1   3   5   7   9   11  13  15  17  19 
21  23  25  27  29  31  33  35  37  39 
41  43  45  47  49  51  53  55  57  59 
61  63  65  67  69  71  73  75  77  79 
81  83  85  87  89  91  93  95  97  99 

continue跳过本次循环,执行下一次循环,使用代码示例如下:

score_list = []
pos = 1
while pos < 21:
    score_list.append(random.randint(0100))
    pos += 1
print("随机生成的成绩列表:\n%s" % score_list)
for score in score_list:
    if score < 60:
        print("第一个不及格的成绩是:%s" % score)
        break

运行结果如下

随机生成的成绩列表:
[83, 55, 70, 20, 98, 26, 7, 55, 89, 27, 19, 31, 43, 89, 57, 16, 86, 77, 68, 50]
第一个不及格的成绩是:55

④ 循环嵌套

所谓的循环嵌套就是一个循环里面有另一个循环,举个最经典的例子,打印9*9乘法表,代码示例如下:

print("输出九九乘法表:")
i = 1
while i <= 9:
    j = 1
    while j <= i:
        print('%d * %d = %d' % (i, j, i * j), end='\t')
        j += 1
    print()
    i += 1

运行结果如下

输出九九乘法表:
1 * 1 = 1 
* 1 = 2   2 * 2 = 4 
* 1 = 3   3 * 2 = 6   3 * 3 = 9 
* 1 = 4   4 * 2 = 8   4 * 3 = 12  4 * 4 = 16 
* 1 = 5   5 * 2 = 10  5 * 3 = 15  5 * 4 = 20  5 * 5 = 25 
* 1 = 6   6 * 2 = 12  6 * 3 = 18  6 * 4 = 24  6 * 5 = 30  6 * 6 = 36 
* 1 = 7   7 * 2 = 14  7 * 3 = 21  7 * 4 = 28  7 * 5 = 35  7 * 6 = 42  7 * 7 = 49 
* 1 = 8   8 * 2 = 16  8 * 3 = 24  8 * 4 = 32  8 * 5 = 40  8 * 6 = 48  8 * 7 = 56  8 * 8 = 64 
* 1 = 9   9 * 2 = 18  9 * 3 = 27  9 * 4 = 36  9 * 5 = 45  9 * 6 = 54  9 * 7 = 63  9 * 8 = 72  9 * 9 = 81 

⑤ 死循环

所谓的死循环就是因为程序的逻辑问题,导致循环代码块一直执行,循环的条件永远不会为False
导致无法跳出循环,所以编写代码的时候需要保证程序的的正确性。当然,死循环也不是一无是处的,
在执行一些轮询操作时经常用到,等满足某个条件再break退出这个循环。


如果本文对你有所帮助,欢迎
留言,点赞,转发
素质三连,谢谢😘~