Python基础之条件判断&循环
一 if ... elif ... else
1.1 语法结构
if <条件判断1>:
<执行1>
elif <条件判断2>:
<执行2>
elif <条件判断3>:
<执行3>
else: # 条件都不满足时执行
<执行4>
注意:if语句的执行是从上往下判断,如果在某个判断上是True,把该判断对应的语句执行后,就忽略掉剩下的elif和else
1.2 实例
# 猜数字游戏
# !/usr/bin/env python
# -*- coding: utf8 -*-
num = 40 # 指定数字
user_input = int(input("请输入您猜测的数字:"))
if user_input == num:
print("恭喜,猜对了")
elif user_input < num:
print("很遗憾,猜小了")
else:
print("很遗憾,猜大了")
二 for循环
在之前学习的过程中,我们已经接触到for循环,比如对列表、字典进行for循环
list1 = ['a','b','c','d']
for i in list1:
print(i) # 依次打印a、b、c、d
dict1 = {'name':'Joe','age':18,'gender':'male'}
for k in dict1: # 默认循环key
print(k) # 依次打印(无序):gender、name、age
for v in dict1.values(): # 循环value
print(v) # 依次打印(无序):male、Joe、18
for k,v in dict1.items(): # 循环key-value
print(k,v) # 依次打印(无序):gender male、name Joe、age 18
那现在我们想计算1-10的整数之和,我们也可通过for循环做:
sum = 0
for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
sum = sum + x
print(sum) # 55
那如果我们需要计算1-100的整数之和,从1写到100这种方式就很low了,这里我们可以使用Python内置range()函数,可以生成一个整数序列,再通过list()函数可以转换为list。比如range(5)生成的序列是从0开始小于5的整数:
l = list(range(5)) print(l) # [0, 1, 2, 3, 4]
sum = 0
for x in range(101):
sum = sum + x
print(sum) # 5050
三 while循环
while循环,只要条件满足,就不断循环,条件不满足时退出循环。
3.1 语法结构
while 条件:
循环体1
循环体2
.....
3.2 实例
比如还是上面的题目:计算1-100的整数之和,可以用while循环实现:
sum = 0
n = 1
while n < 101:
sum = sum + n
n = n + 1
print(sum) # 5050
3.3 while ··· else ···
else语句在最后执行,并且只在while循环没有被break打断的情况下才执行,如下:
sum = 0
n = 1
while n < 101:
sum = sum + n
n = n + 1
else:
print('正常计算结束') # 正常执行
print(sum) # 5050
四 break
在循环中,break语句可以提前退出循环。回到上面计算1~100的整数的和了例子,我们更改一下,假设当sum>3000时让它退出程序(停止计算),打印n,sum的值,可修改如下:
sum = 0
n = 1
while n < 101:
if sum > 3000:
break
sum = sum + n
n = n + 1
print(n,sum) # 5050
sum = 0
n = 1
while n < 101:
if sum > 3000:
break
sum = sum + n
n = n + 1
else:
print('正常计算结束') # 不会执行
print(n, sum) # 5050
再比如上面if实例--猜数字的例子,让用户不断的猜年龄,猜对退出程序,不对则最多5次机会,再猜不对就退出程序,代码如下:
# !/usr/bin/env python
# -*- coding: utf8 -*-
num = 40 # 指定数字
count = 0 # 指定初始次数为0
while count < 5:
user_input = int(input("请输入您猜测的数字:"))
if user_input == num:
print("恭喜,猜对了")
break
elif user_input < num:
print("很遗憾,猜小了")
else:
print("很遗憾,猜大了")
count += 1 # loop 计数器+1
五 continue
在循环过程中,可以通过continue语句,跳过当前的这次循环,直接开始下一次循环
还是以上面计算1~100整数的和为例,我们假设只计算奇数的和,修改如下:
sum = 0
n = 0
while n < 100:
n = n + 1
if n % 2 == 0:
continue
sum = sum + n
print(sum) # 2500
break语句可以在循环过程中直接退出循环,而continue语句可以提前结束本轮循环,并直接开始下一轮循环。这两个语句通常都配合if语句使用。
要特别注意,不要滥用break和continue语句。break和continue会造成代码执行逻辑分叉过多,容易出错。大多数循环并不需要用到break和continue语句,我们可以通过改写循环条件或者修改循环逻辑,去掉break和continue语句。
有些时候,如果代码写得有问题,会让程序陷入“死循环”,也就是永远循环下去。这时可以用Ctrl+C退出程序,或者强制结束Python进程

浙公网安备 33010602011771号