【大数据 / Python / KEN】Python 判断、运算符、循环(5)

判断、运算符、循环

首次发布时间:2020/7/25
最后修改时间:2020/7/25
本系列文章基于 python3 版本

摘要
  • 关系(比较)运算符号
  • 逻辑运算符
  • if、elif、else
  • while 循环
  • for 循环
  • 终止整个循环:break
  • 终止当次循环:continue
  • 总结

关系(比较)运算符号
运算符描述实例
==判断两个操作数的值是否相等,如果相等则条件为如果 a=3b=3,则(a == b)true
!=判断两个操作数的值是否相等,如果不相等则条件为如果 a=1b=3,则(a != b)true
<>判断两个操作数的值是否相等,如果不相等则条件为如果 a=1b=3,则(a <> b)true(这个类似于 != 运算符)
>判断左操作数的值是否大于右操作数的值,如果大于则条件为如果 a=7b=3,则(a > b)true
<检查左操作数的值是否小于右操作数的值,如果小于则条件为如果 a=7b=3,则(a < b)false
>=检查左操作数的值是否大于或等于右操作数的值,如果大于或等于则条件为如果 a=3b=3,则(a >= b)true
<=检查左操作数的值是否小于或等于右操作数的值,如果小于或等于则条件为如果 a=3b=3,则(a <= b)true

逻辑运算符
运算符号描述实例
and“与” :如果 and 左右两边有一个条件为 false,则返回 falseTrue and False,返回 False
or“或” :如果 or 左右两边有一个或两条件都成立就返回 true,反之返回 falseTrue or False,返回 True
not“非” :如果条件 x 本身为 true,则返回 false,反之为 truenot x(假设此时 x 为 true) 返回 false

if、elif、else
  • if
# encoding=utf-8

a = 12  # apple
m = 16  # money
if m > a:  # 如果我带的钱大于苹果的单价,也就是 if 后面的条件成立
    print('我能买苹果吃')  # 我就买苹果吃
  • ifelse
# encoding=utf-8

w = 18  # watermelon
m = 16  # money
if m > w:  # 如果我带的钱大于西瓜的单价,也就是 if 后面的条件成立
    print('我能买西瓜吃')
else:  # 不满足 if 的条件,则执行这一命令
    print('买不起西瓜')
  • ifelifelse
# 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 位,就往右边 补空格

思考一下下面这个如何实现
*
* *
* * *
* * * *
* * * * *
* * * *
* * *
* *
*
  • 代码实现
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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值