python条件控制和循环
1 条件控制:if语句
Python 条件语句(if语句)是通过一条或多条语句的执行结果(True 或者 False)来决定执行的代码块。
Python 中用 elif 代替了 else if,所以if语句的关键字为:if – elif – else。
注意:
1、每个条件后面要使用冒号 :,表示接下来是满足条件后要执行的语句块。
2、使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。
3、在Python中没有switch – case语句。
1、if中常用的操作运算符:
< :小于
<= :小于或等于
> :大于
>= :大于或等于
== :等于,比较两个值是否相等
!= :不等于
例如:
a = 36
# if
if a > 0:
print("a是正数")
# if - else
if a > 0:
print("a是正数")
else:
print("a不是正数")
# if – elif – else
if a % 2 == 0:
print("a是偶数")
elif a % 2 != 0:
print("a是奇数")
else:
print("error")
a是正数
a是正数
a是偶数
age = int(input("请输入你家狗狗的年龄: "))
print("")
if age <= 0:
print("你是在逗我吧!")
elif age == 1:
print("相当于 14 岁的人。")
elif age == 2:
print("相当于 22 岁的人。")
elif age > 2:
human = 22 + (age -2)*5
print("对应人类年龄: ", human)
# 退出提示
input("点击 enter 键退出")
请输入你家狗狗的年龄: 2
相当于 22 岁的人。
点击 enter 键退出
''
2、if嵌套
可以把 if…elif…else 结构放在另外一个 if…elif…else 结构中,称为if的嵌套。
例如:
a = 36
if a > 0:
print(a)
if a % 2 ==0:
print("a是偶数")
else:
print("a是奇数")
elif a < 0:
print("a是负数")
else:
print("a=0")
36
a是偶数
2 循环
Python 中的循环语句有 for 和 while。
1、while循环
while循环格式为:
while 判断条件:
执行语句
当满足循环条件(True或者1)时,执行循环。如果一直为True,就会无限循环。也可以使用break跳出循环。
注意:1、冒号和缩进。2、True不能写成true,写true会报错。3、在 Python 中没有 do…while 循环。
例如:
while True:
print("a")
break # 跳出无限循环
while 1:
print("b")
break # 跳出无限循环
flag = 1
while flag:
print("true")
break # 跳出无限循环
n = 10
i = 1
sum = 0
while i <= n:
sum = sum + i
i += 1
print(sum)
a
b
true
55
# True不能写成true,写true会报错
while true:
print("a")
break
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-8-0537421e009a> in <module>
1 # True不能写成true,写true会报错
----> 2 while true:
3 print("a")
4 break
NameError: name 'true' is not defined
# 数字猜谜游戏
number = 7
guess = -1
print("0-10数字猜谜游戏!")
while guess != number:
guess = int(input("请输入你猜的数字:"))
if guess == number:
print("恭喜,你猜对了!")
elif guess < number:
print("猜的数字小了...")
elif guess > number:
print("猜的数字大了...")
0-10数字猜谜游戏!
请输入你猜的数字: 5
猜的数字小了...
请输入你猜的数字: 7
恭喜,你猜对了!
如果你的while循环体中只有一条语句,你可以将该语句与while写在同一行中。例如:
flag = 1
while (flag): print("a")
2、while 循环使用 else 语句
如果 while 后面的条件语句为 false 时,则执行 else 的语句块。
语法格式如下:
while 条件:
语句块1
else:
语句块2
条件语句为 True 则执行语句块1,如果为 False,则执行语句块2。例如:
a = 0
while a < 5:
print(a)
a = a + 1
else:
print("error")
0
1
2
3
4
error
3、for循环
for 循环可以遍历任何可迭代对象,如一个列表或者一个字符串。
for循环的一般格式如下:
for <variable> in <sequence>:
<statements>
else:
<statements>
可以用break跳出当前的for循环。例如:
for i in (1, 2, 3):
print(i)
list = ["a", "b", "c", "d"]
for a in list:
print(a)
break
1
2
3
a
range()函数
如果你需要遍历数字序列,可以使用内置range()函数,它会生成数列。
它也是左闭右开的,如果只指定一个数(n),则默认是0~n的范围。
例如:
for i in range(3):
print(i)
for i in range(-2): # 不会报错,但是无法输出
print(i)
0
1
2
也可以使用range指定区间的值。例如:
for i in range(2,7):
print(i)
2
3
4
5
6
for i in range(-3, 3):
print(i)
-3
-2
-1
0
1
2
也可以用range以指定步长来取指定范围内的数,步长为正为负都可以,但是要注意与其配合使用的范围。
如果范围为:小值 -> 大值,则步长只能为正;如果大值 -> 小值,则步长只能为负。
格式为: range(起点, 终点, 步长)。例如:
for i in range(0, 10, 2): #0~10的范围内,步长为2
print(i)
0
2
4
6
8
for i in range(-100, -10, 30):
print(i)
-100
-70
-40
# 错误样例:
for i in range(0, 10, -2): #步长为-2,没有报错,但无法输出
print(i)
for i in range(-100, -10, -30): # 同样无法输出
print(i)
for i in range(-10, -100, -30):
print(i)
-10
-40
-70
for i in range(7, 2, -2):
print(i)
7
5
3
4、跳出循环:break和continue
break 语句可以跳出 for 和 while 的循环体。如果你从 for 或 while 循环中终止,任何对应的循环 else 块将不执行。
continue 语句被用来 跳过当前循环块中的剩余语句,然后继续进行下一轮循环,只是跳出一次循环,仍然在循环体中。
例如:
n=5
while n > 0:
print(n)
n -= 1
if n == 3:
break
5
4
n=5
while n > 0:
print(n)
n -= 1
if n == 3:
continue
5
4
3
2
1
for letter in 'Runoob bye':
if letter == 'o': # 字母为'o'时跳过本次循环
continue
if letter == ' ': # 字母为' '时跳出循环体
break
print ('当前字母 :', letter)
当前字母 : R
当前字母 : u
当前字母 : n
当前字母 : b
5、注意:
循环语句可以有 else 子句,它在穷尽列表(以for循环)或条件变为 false (以while循环)导致循环终止时被执行,但循环被 break 终止时不执行。例如:
a = 0
while a < 5:
print(a)
a = a + 1
break
else:
print("error")
0
# 找质数
for n in range(2, 10):
for x in range(2, n):
if n % x == 0:
print(n, '等于', x, '*', n//x)
break
else:
# 循环中没有找到元素
print(n, ' 是质数')
2 是质数
3 是质数
4 等于 2 * 2
5 是质数
6 等于 2 * 3
7 是质数
8 等于 2 * 4
9 等于 3 * 3
6、pass语句
pass是空语句,是为了保持程序结构的完整性。
pass 不做任何事情,一般用做占位语句。例如:
i = 0
while i < 3 :
print(1)
pass
print(2)
i += 1
1
2
1
2
1
2