python入门到精通 _3 判断循环语句

1. 判断语句

判断语句进行逻辑判断,是生活中常见的行为。同样,在程序中,进行逻辑判断也是最为基础的功能。

1.1 布尔类型和比较运算符

进行判断,只有2个结果:是/否
布尔(bool) 表达现实生活中的逻辑,即真和假
True表示真
False表示假。
True本质上是一个数字记作1,False记作0

运算符 描述 示例
== 判断内容是否相等,满足为True,不满足为False 如a=3,b=3,则(a == b) 为 True
!= 判断内容是否不相等,满足为True,不满足为False 如a=1,b=3,则(a != b) 为 True
> 判断运算符左侧内容是否大于右侧满足为True,不满足为False 如a=7,b=3,则(a > b) 为 True
< 判断运算符左侧内容是否小于右侧满足为True,不满足为False 如a=3,b=7,则(a < b) 为 True
>= 判断运算符左侧内容是否大于等于右侧满足为True,不满足为False 如a=3,b=3,则(a >= b) 为 True
<= 判断运算符左侧内容是否小于等于右侧满足为True,不满足为False 如a=3,b=3,则(a <= b) 为 True

1.2 if语句及嵌套

  1. if elif else语句的基本格式
if 判断的条件:
	条件成立,下一步操作
elif 判断条件:
else:
	条件不成立。
  1. 使用if elif else的注意点有:
    elif可以写多个
    判断是互斥且有序的,上一个满足后面的就不会判断了
    可以在条件判断中,直接写input语句,节省代码量
    嵌套判断语句可以用于多条件、多层次的逻辑判断
    嵌套判断语句可以根据需求,自由组合if elif else来构建多层次判断
    嵌套判断语句,一定要注意空格缩进,Python通过空格缩进来决定层次关系
    案例1:
print("欢迎来到SCDN游乐场,儿童免费,成人收费,需要购买会员")
if int(input("请输入你的年龄:")) < 18:
    print("小朋友免费哦,游览愉快!")

else:
    print("你已经成年,需要购买会员,30元")

在这里插入图片描述

案例2:
1.数字随机产生,范围1-10
2.有3次机会猜测数字,通过3层嵌套判断实现
3.每次猜不中,会提示大了或小了

import random
num = random.randint(1,10) # 生成随机数1-10

num1 = int(input("请猜想一个数字:"))
if num == num1:
    print(f"恭喜你,第一次就猜对了,随机数为{
      
      num}")
else:
    if num1 > num:
        print("你猜大了")
    else:
        print("你猜小了")
    num1 = int(input("请再猜想一个数字:"))
    if num == num1:
        print(f"恭喜你,第二次猜对了,随机数为{
      
      num}")
    else:
        if num1 > num:
            print("你猜大了")
        else:
            print("你猜小了")

    num1 = int(input("请再猜想一个数字:"))
    if num == num1:
        print(f"恭喜你,第三次终于猜对了,随机数为{
      
      num}")
    else:
        print("很遗憾~三次都没有猜中")

在这里插入图片描述

2. 循环语句

循环普遍存在于日常生活中,同样,在程序中,循环功能也是至关重要的基础功能。

2.1 while循环

while 条件:
	条件满足,执行1
	条件满足。执行2
	.。。
	

注意点:

  1. while的条件需得到布尔类型,True表示继续循环,False表示结束循环
  2. 需要设置循环终止的条件,如i += 1配合 i < 100,就能确保100次后停止,否则将无限循环
  3. 空格缩进和if判断一样,都需要设置

案例1:

需求:通过while循环,计算从1累加到100的和

sumh = 0
i = 1
while i <= 100:
    sumh += i
    i += 1
print(f"1-100的和为:{
      
      sumh}")

在这里插入图片描述

案例2:

设置一个范围1-100的随机整数变量,通过while循环,配合input语句,判断输入的数字是否等于随机数

无限次机会,直到猜中为止
每一次猜不中,会提示大了或小了
猜完数字后,提示猜了几次

import random
num = random.randint(1,100) # 生成随机数1-100
count = 0
while True:
    num1 = int(input("请猜一个数字:"))
    count += 1
    if num1 == num:
        print("恭喜你猜中了")
        break
    else:
        if num1 > num:
            print("你猜大了")
        else:
            print("你猜小了")

print(f"你总共猜了{
      
      count}次,随机数为{
      
      num}")

在这里插入图片描述

案例3:

通过while循环,输出如下九九乘法表内容
在这里插入图片描述

i = 1
while i < 10:
    j = 1
    while j < i+1:
        print(f"{
      
      j} * {
      
      i} = {
      
      j*i}\t",end="") # end占位符,不换行
        j += 1
    i += 1
    print() # 换行

在这里插入图片描述

2.2 for循环

除了while循环语句外,Python同样提供了for循环语句。
两者能完成的功能基本差不多,但仍有一些区别:

while循环的循环条件是自定义的,自行控制循环条件
for循环是一种”轮询”机制,是对一批内容进行”逐个处理”

同while循环不同,for循环是无法定义循环条件的。
只能从被处理的数据集中,依次取出内容进行处理。

for 变量 in 数据集:
	满足条件执行的语句

range语句:

获得一个数字序列(可迭代类型的一种)

range语句的语法格式:

range(num)# 语法1从0开始,到num结束(不含num本身)

range(num1,num2)# 语法2从num1开始,到num2结束(不含num2本身)

range(num1,num2,step)# 语法3从num1开始,到num2结束(不含num2本身),步长以step值为准

for循环和while循环可以相互嵌套使用

案例:
通过for循环,输出九九乘法表

for i in range(1,10):
    for j in range(1,i+1):
        print(f"{
      
      j} * {
      
      i} = {
      
      j*i}\t", end="")
    print()

在这里插入图片描述

2.3 break与continue

用以对循环进行临时跳过和直接结束

continue关键字用于:中断本次循环,直接进入下一次循环
break关键字用于:直接结束所在循环

注意事项:continue和break,在for和while循环中作用一致在嵌套循环中,只能作用在所在的循环上,无法对上层循环起作用

综合案例

某公司,账户余额有1W元,给20名员工发工资。
员工编号从1到20,从编号1开始,依次领取工资,每人可领取1000元
领工资时,财务判断员工的绩效分(1-10)(随机生成),如果低于5,不发工资,换下一位
如果工资发完了,结束发工资。

import random
money = 10000
for i in range(1,21): # 20个员工
    scores = random.randint(2, 10)
    if scores < 5:
        print(f"员工{
      
      i}的绩点为{
      
      scores}小于5,不发工资,下一个")
        continue # 跳出当前循环
    else:
        money -= 1000
        print(f"员工{
      
      i}的绩点为{
      
      scores}大于5,领取工资1000元,余额为:{
      
      money}")
        if money == 0:
            print("没钱了,不发了")
            break

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/hexiaosi_/article/details/127352017