判断、运算符、循环
首次发布时间:2020/7/25
最后修改时间:2020/7/25
本系列文章基于 python3 版本
摘要
- 关系(比较)运算符号
- 逻辑运算符
- if、elif、else
- while 循环
- for 循环
- 终止整个循环:break
- 终止当次循环:continue
- 总结
关系(比较)运算符号
运算符 | 描述 | 实例 |
---|---|---|
== | 判断两个操作数的值是否相等,如果相等则条件为真 | 如果 a=3 且 b=3 ,则(a == b) 为 true |
!= | 判断两个操作数的值是否相等,如果不相等则条件为真 | 如果 a=1 且b=3 ,则(a != b) 为 true |
<> | 判断两个操作数的值是否相等,如果不相等则条件为真 | 如果 a=1 ,b=3 ,则(a <> b) 为 true (这个类似于 != 运算符) |
> | 判断左操作数的值是否大于右操作数的值,如果大于则条件为真 | 如果 a=7 ,b=3 ,则(a > b) 为 true |
< | 检查左操作数的值是否小于右操作数的值,如果小于则条件为真 | 如果 a=7 ,b=3 ,则(a < b) 为 false |
>= | 检查左操作数的值是否大于或等于右操作数的值,如果大于或等于则条件为真 | 如果 a=3 ,b=3 ,则(a >= b) 为 true |
<= | 检查左操作数的值是否小于或等于右操作数的值,如果小于或等于则条件为真 | 如果 a=3 ,b=3 ,则(a <= b) 为 true |
逻辑运算符
运算符号 | 描述 | 实例 |
---|---|---|
and | “与” :如果 and 左右两边有一个条件为 false,则返回 false | True and False,返回 False |
or | “或” :如果 or 左右两边有一个或两条件都成立就返回 true,反之返回 false | True or False,返回 True |
not | “非” :如果条件 x 本身为 true,则返回 false,反之为 true | not x(假设此时 x 为 true) 返回 false |
if、elif、else
- if
# encoding=utf-8
a = 12 # apple
m = 16 # money
if m > a: # 如果我带的钱大于苹果的单价,也就是 if 后面的条件成立
print('我能买苹果吃') # 我就买苹果吃
- if、else
# encoding=utf-8
w = 18 # watermelon
m = 16 # money
if m > w: # 如果我带的钱大于西瓜的单价,也就是 if 后面的条件成立
print('我能买西瓜吃')
else: # 不满足 if 的条件,则执行这一命令
print('买不起西瓜')
- if、elif、else
# encoding=utf-8
a = 12 # apple
w = 18 # watermelon
m = 16 # money
if m > w:
print('买得起西瓜')
elif m > a:
print('只买得起苹果')
else:
print('什么都买不起')
当有多个条件时,可以用 elif 来增加判断条件,当然也可以使用逻辑运算【与、或、非】
- 逻辑运算符(and、or、not)
# encoding=utf-8
a = 12 # apple
w = 18 # watermelon
m = 16 # money
if m > a and m < w:
print("只能买苹果")
总结:
if 要判断的条件:
条件成立时,要执行的操作
elif 要判断的条件:
条件成立时,要执行的操作
else 要判断的条件:
当上面两个条件都不成立时,要执行的操作
- 注意:
- 代码的缩进一般是 4 个空格
代码示例
# encoding=utf-8
import random # python 的随机标准库
p = input('请输入你的数字【1-5】:')
p = int(p)
c = random.randint(1, 5) # 随机选择数字【1 到 5 之间】
if p == c:
print('点数相同,猜对了')
elif p < c:
print('猜测的数字偏小了')
else:
print('猜测的数字偏大了')
循环
while 循环
- 上面代码的实例,运行一次就结束了
- 如果我们想让它运行一定的次数,或者一直循环运行,就需要用到 while 循环
格式:
while 条件: # 条件满足时,就执行下面的事件
事件1
事件2
事件3
......
那什么时候用到循环呢?
- 一般碰到需要多次执行的代码,都可以用循环的方式来完成
- 不是必须要使用循环,但为了提高代码的复用率,提高开发效率,一般都会用到循环
通过 while 循环,使上面的例子循环运行
# encoding=utf-8
import random # python 的随机标准库
while True: # 设置条件为 True,那么将无限循环下去,直到手动停止
p = input('请输入你的数字【1-5】:')
p = int(p)
c = random.randint(1, 5) # 随机选择数字【1 到 5 之间】
if p == c:
print('点数相同,猜对了')
elif p < c:
print('猜测的数字偏小了')
else:
print('猜测的数字偏大了')
计算 1-100 的和(使用 while 循环)
# encoding=utf-8
a = 1
sum = 0
while a <= 100:
sum += a
a += 1;
# 打印结果:
# 第一种写法
print('1-100的和是:%d' % sum)
# 第二种写法
print('1-100的和是:{}'.format(sum))
- 忘记了格式化输出的写法的,参考:
计算 1-100 间偶数的和(使用 while 循环)
# encoding=utf-8
a = 1
sum = 0
while a <= 100:
if a % 2 == 0
sum += a
a += 1
# 打印结果
# 第一种写法
print('1-100 间偶数的和是:%d' % sum)
# 第二种写法
print('1-100 间偶数的和是:{}'.format(sum))
while 的嵌套使用
- 格式:
while 条件1: # 条件1满足时,就执行下面的事件
事件1
事件2
事件3
while 条件2: # 条件2满足时,就执行下面的事件
事件4
事件5
事件6
实例
- 打印出下面的三角形
*
**
***
****
*****
- 代码实现
i = 0
while i < 5:
j = 0
while j <= i:
print('*', end = " ")
j += 1
i += 1
print('')
end = " "
的作用:
print() 默认是打印一行,结尾加换行的
end = ' '
意思是末尾不换行,加空格
(这个只在 python3 里可以用)
- 打印下面的乘法表
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
- 代码实现
i = 1
while i <= 9:
j = 1
while j <= i:
print('%d*%d=%-2d' % (j, i, i*j), end = " ")
j += 1
i += 1
print('')
这里用了一个小技巧,让输出的内容对齐,就是
%-2d
%-2d
的作用是让输出的位数固定为 2,
并且 左对齐
如果数据不足 2 位,就往右边 补空格
- 关于
%d
的更多用法,可以参考:
思考一下下面这个如何实现
*
* *
* * *
* * * *
* * * * *
* * * *
* * *
* *
*
- 代码实现
i = 0
while i < 5:
i += 1
print('*' * i)
while i > 0:
i -= 1
print('*' * i)
for 循环
for 循环和 while 循环一样可以完成循环的功能
也可以遍历列表、字符串等
- 格式:
for 临时变量 in 列表或者字符串等
满足条件时,执行代码
- 示例:
str = 'python'
for i in str:
print(i)
- 输出结果:
p
y
t
h
o
n
终止整个循环:break
- 如果需要逐个字符打印
'python'
- 假设需要打印到
o
的时候退出循环(不打印o
及之后的字符),该怎么做? - 代码实现:
str = 'python'
for i in str:
if i == 'o':
print('轮到 o 了,退出循环')
break
else:
print('目前打印 %s' % i)
- 输出结果:
目前打印 p
目前打印 y
目前打印 t
目前打印 h
轮到 o 了,退出循环
- while 循环的 break 例子:
i = 0
while i < 10:
i += 1
print('-----')
if i == 5:
break
print(i)
- 输出结果:
-----
1
-----
2
-----
3
-----
4
-----
小结:
- 无论是对于 while 或是 for 循环,break 的作用就是结束整个循环
- 只要执行到 break,那么循环中无论还有什么内容,都不再执行,全部出循环
终止当次循环:continue
- for 循环的例子:
- 示例:
str = 'python'
for i in str:
if i == 'o':
print('轮到 o 了,跳出本轮循环\n')
continue
else:
print('目前打印 %s' % i)
print('本轮循环的结尾')
- 输出结果:
目前打印 p
本轮循环的结尾
目前打印 y
本轮循环的结尾
目前打印 t
本轮循环的结尾
目前打印 h
本轮循环的结尾
轮到 o 了,跳出本次循环
目前打印 n
本轮循环的结尾
- while 循环的例子:
- 示例:
i = 0
while i < 5:
i += 1
if i == 3:
continue
print(i)
- 输出结果:
1
2
4
5
可以看到,break 就是跳出当此循环
对下一轮不会有任何影响
注意
break/continue
只能用在循环中,不能单独使用break/continue
在嵌套循环中,只对最近的一层循环起作用
总结
-
if 往往用来判断条件是否满足
-
if 的 4 种基本用法:
- 基本方法:
if 条件: 条件满足时,执行命令
- 满足与否执行不同的事情
if 条件: if 条件满足时,执行命令 else: if 条件不满足时,执行命令
- 多个条件的判断
if 条件: 条件1 满足时,执行命令 elif 条件2: 条件2 满足时,执行命令 elif 条件3: 条件3 满足时,执行命令 else: 上述条件都不满足时,执行命令
- 嵌套
if 条件1: 条件1 满足时,执行命令 if 条件2: 条件2 满足时,执行命令 这里还可以放入其他任何形式的 if 判断语句
-
while 循环一般通过数值是否满足条件来确定是否进入循环
i = 0
while i < 3:
print("hello")
i += 1
- 输出结果:
hello
hello
hello
- for 循环一般是对能保存多个数据的变量,进行遍历(像前面说过的字符串、列表等)
str = 'python'
for i in str:
print(i)
- 输出结果:
p
y
t
h
o
n