Python3 入门(四)
一、条件控制
Python条件语句是通过一条或多条语句的执行效果(True 或者 False)来决定执行的代码块。
1.if语句
Python中if语句一般形式如下所示:
if condition_1:
statement_block_1
elif condition_2:
statement_block_2
else:
statement_block_3
- 如果 “condition_1” 为 True 将执行 “statement_block_1” 块语句
- 如果 “condition_1” 为False,将判断 “condition_2”
- 如果"condition_2" 为 True 将执行 “statement_block_2” 块语句
- 如果 “condition_2” 为False,将执行"statement_block_3"块语句
Python中用elif代替了else if,所以if语句的关键字为:if-elif-else。
注意:
- 每个条件后都要使用冒号
:
,表示接下来是满足条件后要执行的语句块。 - 使用缩进来划分语句块,相同缩进的语句在一起组成一个语句块。
- 在Python中没有switch-case语句。
实例:
- 一个简单的if例子
var1 = 100
if var1:
print ("1 - if 表达式条件为 true")
print (var1)
var2 = 0
if var2:
print ("2 - if 表达式条件为 true")
print (var2)
print ("Good bye!")
#输出结果:
#1 - if 表达式条件为 true
#100
#Good bye!
- 对于狗的年龄判断
age = int(input("请输入你家狗的年龄:"))
if age <= 0:
print("你是在逗我吧")
elif age == 1:
print("相当于14岁的人")
elif age == 2:
print("相当于22岁的人")
elif age > 2:
human = 22 + (age - 2) * 5
print("对应人类的年龄:{0}".format(human))
input("点击enter键退出")
#测试结果:
#请输入你家狗的年龄:2
#相当于22岁的人
#点击enter键退出
2.if常用的操作运算符
操作符 | 描述 |
---|---|
< | 小于 |
<= | 小于或等于 |
> | 大于 |
>= | 大于或等于 |
== | 等于,比较两个值是否相等 |
!= | 不等于 |
3.if嵌套
在嵌套if语句中,可以把if…elif…else结构放在另外一个if…elif…else结构中。
if 表达式1:
语句
if 表达式2:
语句
elif 表达式3:
语句
else:
语句
elif 表达式4:
语句
else:
语句
实例:
num = int(input("输入一个数字:"))
if num % 2 == 0:
if num % 3 == 0:
print("你输入的数字可以整除 2 和 3")
else:
print("你输入的数字可以整除 2,但不能整除 3")
else:
if num % 3 == 0:
print("你输入的数字可以整除 3,但不能整除 2")
else:
print("你输入的数字不能整除 2 和 3")
#测试结果:
#输入一个数字:56
#你输入的数字可以整除 2,但不能整除 3
二、循环语句
Python的循环语句有 for 和 while.
1.while 循环
Python中while语句的一般形式:
while 判断条件(condition):
执行语句(statements)……
实例:
#使用while循环来计算1到100的总和
n = 100
sum = 0
counter = 1
while counter <= n:
sum += counter
counter += 1
print("1 到 %d 之和为:%d" % (n, sum))
#输出结果为:
#1 到 100 之和为:5050
2.无限循环
可以通过设置条件表达式永远不为false来实现无限循环。
实例:
var = 1
while var == 1:
num = int(input("输入一个数字:"))
print("你输入的数字是:", num)
print("bye")
#输出结果:
#输入一个数字:3
#你输入的数字是: 3
#输入一个数字:-1
#你输入的数字是: -1
#输入一个数字:
- 可以使用
ctrl + c
来退出当前的无限循环。 - 无限循环在服务器上客户端的实时请求非常有用。
3.while 循环使用 else 语句
在 while … else 在条件语句为 false 时执行 else 的语句块。
语法格式如下:
while <expr>:
<statement(s)>
else:
<additional_statement(s)>
实例:
count = 0
while count < 5:
print(count, '小于5')
count += 1
else:
print(count, '大于或等于5')
#运行结果:
#0 小于5
#1 小于5
#2 小于5
#3 小于5
#4 小于5
#5 大于或等于5
4.简单语句组
类似 if 语句的语法,如果while 循环体只有一条语句,可以将该语句与 while 写在同一行中,如下所示:
flag = 1
while (flag): print("hello")
print("bye")
#输出结果:
#hello
#hello
#hello
#hello
#hello
#hello
#...
5.for 语句
Python for循环可以遍历任何可选代对象,如一个列表或者一个字符串。
for循环的一般格式如下:
for <variable> in <sequence>:
<statements>
else:
<statements>
实例:
#计算 1 到 100 的和
sum = 0
for i in range(1, 101):
sum += i
print(sum)
#输出结果:
#5050
以下 for 实例中使用了 break 语句,break 语句用于跳出当前循环体:
sites = ["Baidu", "Google", "Runoob", "Taobao"]
for site in sites:
if site == "Runoob":
print("hello!")
break
print("循环数据 " + site)
else:
print("没有循环数据!")
print("完成循环!")
#输出结果:
#循环数据 Baidu
#循环数据 Google
#菜鸟教程!
#完成循环!
6.range()函数
如果需要遍历数字序列,可以使用内置函数range()函数,它会生成数列。
for i in range(5)
print(1)
#输出结果:
#0
#1
#2
#3
#4
#5
#注:可以使用range指定区间的值
range(5,9)
#也可以使用range以指定数字开始并指定不同的增量,也可以是负数,有时也称作“步长”
range(0,10,3)
range(-10,-100,-30)
7.break和continue语句及循环中的else子句
- break语句可以跳出 for 和 while 的循环体。如果 for 或 while 循环终止,任何对应的循环else 块将不执行。
- continue 语句用来被告诉 Python 跳过当前的循环块中的剩余语句,然后继续执行下一轮循环。
实例:
#while 中使用 break
n = 5
while n > 0:
n -= 1
if n == 2:
break
print(n)
print("循环结束")
#输出结果:
#4
#3
#循环结束
#while 中使用 continue
n = 5
while n > 0:
n -= 1
if n == 2:
continue
print(n)
print("循环结束")
#输出结果
#4
#3
#1
#0
#循环结束
- 循环语句可以有 else 子句,它在穷尽列表或条件变为false导致循环终止时被执行,但循环被break终止时不执行。
实例:
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
8.pass语句
python pass是空语句,是为了保持程序结构的完整性。
pass不做任何事情,一般用作占位语句。
实例:
while pass:
pass #等待键盘中断
for letter in 'Runoob':
if letter == 'o':
pass
print('执行pass块')
print('当前字母:', letter)
print("Good bye!")
#输出结果:
#当前字母: R
#当前字母: u
#当前字母: n
#执行pass块
#当前字母: o
#执行pass块
#当前字母: o
#当前字母: b
#Good bye!