最新要闻

广告

手机

好听的小说女生名字 小说女生名字

好听的小说女生名字 小说女生名字

中国动力(600482):国内动力系统龙头 盈利改善有望超预期

中国动力(600482):国内动力系统龙头 盈利改善有望超预期

家电

Python | 判断语句、循环语句

来源:博客园

上一篇:Python | 基础语法


(资料图片仅供参考)

判断是程序最基础最核心的逻辑功能。

1.布尔类型和比较运算符

1.1 布尔(bool)类型

布尔(bool)表达现实生活中的逻辑,即真和假:

  • True 表示真;
  • False 表示假。

True本质上是一个数字记作1,False记作0

1.1.1 布尔类型字面量
  • True 表示真(是、肯定)
  • False 表示假(否、否定)
1.1.2 定义变量存储布尔类型数据

变量名称 = 布尔类型字面量

布尔类型不仅可以自行定义,同时也可以通过计算得来,也就是使用比较运算符进行运算得到布尔类型的结果。

1.2 比较运算符

运算符描述
==判断内容是否相等,满足为True,不满足为False
!=判断内容是否不相等,满足为True,不满足为False
>判断运算符左侧内容是否大于右侧,满足为True,不满足为False
<判断运算符左侧内容是否小于右侧,满足为True,不满足为False
>=判断运算符左侧内容是否大于等于右侧,满足为True,不满足为False
<=判断运算符左侧内容是否小于等于右侧,满足为True,不满足为False

1.3 代码练习

# 定义变量存储布尔类型的数据bool_1 = Truebool_2 = Falseprint(f"bool_1变量的内容是:{bool_1},类型是:{type(bool_1)}")print(f"bool_2变量的内容是:{bool_2},类型是:{type(bool_2)}")# 比较运算符的使用# == , != , > , < , >= , <=# 比较内容是否相等num1 = 10num2 = 10print(f"{num1} == {num2}的结果是:{num1 == num2}")num3 = 15print(f"{num1} != {num3}的结果是:{num1 == num3}")name1 = "HeyStar"name2 = "HeyStar"print(f"{name1} == {name2}的结果是:{name1 == name2}")name3 = "heystar"print(f"{name1} != {name3}的结果是:{name1 == name3}")# 比较内容大于小于num1 = 10num2 = 5print(f"{num1} > {num2}的结果是:{num1 > num2}")print(f"{num1} < {num2}的结果是:{num1 < num2}")num3 = 10print(f"{num1} >= {num3}的结果是:{num1 >= num3}")print(f"{num1} <= {num3}的结果是:{num1 <= num3}")

2.if语句的基本格式

2.1 if判断语句

程序中的判断语法

if 要判断的条件:条件成立时,要做的事情

2.2 代码练习

age = input("请输入你的年龄:")if int(age) >= 18:    print("恭喜你:")    print("成年了!")print("时间过的真快")

其中int(age),由于input输入后,得到的是str类型,需要强转为int类型

3.if else语句

3.1 if else判断语句

程序中的判断语法

if 要判断的条件:满足条件时要做的事情1满足条件时要做的事情2满足条件时要做的事情3...(省略)...else:不满足条件时要做的事情1不满足条件时要做的事情2不满足条件时要做的事情3...(省略)...

3.2 代码练习

动物园1:

通过input语句获取键盘输入的身高判断身高是否超过120cm,并通过print给出提示信息。

print("欢迎来到HeyStar动物园")high = input("请输入你的身高(cm):")if int(high) > 120:    print("您的身高超出120cm,游玩时需要购票10元。")else:    print("您的身高未超出120cm,可以免费游玩。")print("祝您游玩愉快!")

输出 :

4. if elif else语句

4.1 if elif else语句

程序中的判断语法:

if 条件1:条件1满足应做的事情1条件1满足应做的事情2......elif 条件2:条件2满足应做的事情1条件2满足应做的事情2......elif 条件3:条件3满足应做的事情1条件3满足应做的事情2......else:所有条件都不满足应做的事情1所有条件都不满足应做的事情2......
4.1.2 代码练习
猜猜心里数字

1.定义一个变量,数字类型,内容随意。2.基于input语句输入猜想的数字,通过if和多次elif的组合,判断猜想数字是否和心里数字一致。

numbers = 5if int(input("请输入第一次猜测的数字:")) == numbers:    print("恭喜你,第一次就猜对了!  o(* ̄▽ ̄*)ブ")elif int(input("猜错了,还有两次机会,请输入第二次猜测的数字:")) == numbers:    print("恭喜你猜对了!  o(* ̄▽ ̄*)ブ")elif int(input("猜错了,你只剩一次机会了,请输入最后一次猜测的数字:")) == numbers:    print("恭喜你最后一次猜对了!  o(* ̄▽ ̄*)ブ")else:    print("一次都没有猜对. (T_T)")

输出结果:

5. 判断语句的嵌套

5.1 基础语法格式:

if 条件1:满足条件1做的事情1满足条件1做的事情2if 条件2满足条件2做的事情1满足条件2做的事情2

如上图,第二个if,属于第一个if中,只有第一个if满足条件,才会执行第二个if

嵌套的关键点,在于空格缩进通过空格缩进,来决定语句之间的:层次关系

5.2 代码练习

动物园2

通过input语句获取键盘输入的身高、会员级别判断身高是否超过120cm,判断会员级别,并通过print给出提示信息。

print("欢迎来到HeyStar动物园")high = input("请输入你的身高(cm):")if int(high) > 120:    print("您的身高超出120cm,游玩时需要购票10元。")    if int(input("请输入您的会员级别:")) >= 3:        print("尊敬的会员:")        print("     您可以免费游玩!")    else:        print("尊敬的游客:")        print("     请您购票后,继续游玩")else:    print("您的身高未超出120cm,可以免费游玩。")print("祝您游玩愉快!o(* ̄▽ ̄*)ブ")

输出结果:

6.判断语句实战案例

定义一个数字(1~10,随机生成),通过3次判断来猜出数字。

要求:

1.数字随机生成,范围1~102.有3次机会,通过3层嵌套判断实现3.每次猜不中,提示大了或小了

提示

通过以下代码,可以定义一个变量num,变量内存储随机数字

import randomnum = random.randint(1,10)
代码
import randomnumbers = random.randint(1,10)num = int(input("请输入第一次猜测的数字:"))if num == numbers:    print("恭喜你,第一次就猜对了")else:    if num > numbers:        print("猜测数字过大,猜小一点。")    else:        print("猜测数字过小,猜大一点。")    num = int(input("请输入第二次猜测的数字:"))    if num == numbers:        print("恭喜你,第二次就猜对了")    else:        if num > numbers:            print("猜测数字过大,猜小一点。")        else:            print("猜测数字过小,猜大一点。")    num = int(input("请输入第三次猜测的数字:"))    if num == numbers:        print("恭喜你猜对了")    else:        print("没有猜对,次数已用完")

循环同样是程序最基础最核心的逻辑功能!循环的两种基本元素:条件、操作

7. while 循环

7.1 while的基础语法

while 条件:条件满足时,做的事情1条件满足时,做的事情2条件满足时,做的事情3...(省略)...
7.1.1 代码练习

输出100遍"Hello World!"

i = 0while i < 100:    print("Hello World!")    i += 1

7.2 while循环的注意事项

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

7.3 使用while循环,计算1~100的和

代码:

i = 1num_sum = 0while i <= 100:    num_sum += i    i += 1print(num_sum)

输出:5050

7.4 while循环的基础案例————猜数字

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

  • 无限次机会,直到猜中为止
  • 每一次猜不中,会提示大了或小了
  • 猜完数字后,提示猜了几次
提示:
  • 无限次机会,终止条件不适合用数字累加来判断

    • 可以考虑布尔类型本身(True or False)
  • 需要提示几次猜中,就需要提供数字累加功能

  • 随机数可以使用:

    import randomnum = random.randint(1,10)
代码:
import randomnum = random.randint(1, 100)guess_num = 0count = 0while guess_num != num:    count += 1    guess_num = int(input("请输入您猜的数字:"))    if guess_num < num:        print("猜测过小,再猜一个吧。")    elif guess_num > num:        print("猜测过大,再猜一个吧。")print(f"第 {count} 次,猜对,数字为:{num}")

7.5 while循环的嵌套应用

7.5.1 基本格式
while 条件1:条件1满足时,做的事情1条件1满足时,做的事情2条件1满足时,做的事情3...(省略)...while 条件2:条件2满足时,做的事情1条件2满足时,做的事情2条件2满足时,做的事情3...(省略)...
7.5.2 代码练习

输出100遍Hello,1000遍world

i = 0while i < 100:    print("Hello")    j = 0    while j < 10:        print("     World")        j += 1    i += 1
7.5.3 注意事项
  • 通判断语句的嵌套一样,循环语句的嵌套,要注意空格缩进

    • 基于空格缩进来决定层次关系
  • 注意条件的设置,避免出现无限循环(除非真的需要无限循环)

7.5 while循环的嵌套案例

7.5.1 补充知识
7.5.1.1 print输出不换行

默认的print语句输出内容会自动换行使用以下语法可以将print输出不换行

print("Hello",end="")print("World",end="")
7.5.1.2 制表符\t

在字符串中,有一个特殊的符号:\t,效果等同于在键盘上按下tab键可以将多行字符串进行对齐

7.5.2 练习案例-打印九九乘法表

代码:

i = 1while i < 10:    j = 1    while j <= i:        print(f"{j}×{i}={j * i}\t", end="")        j += 1    print("")    i += 1    

输出结果:

8. for循环

8.1 for循环的基础语法

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

  • while循环的循环条件是自定义的,自行控制循环条件
  • for循环是一种 "轮询"机制,是对一批内容进行 "逐个处理"
8.1.1 程序中的循环:
for 临时变量 in 待处理数据集:循环满足条件时执行的代码
8.1.2 循环字符串
# 定义字符串namename = "HeyStar"# for循环处理字符串for x in name:    print(x)    

for循环是将字符串的内容:依次取出所以,for循环也被称为:遍历循环

8.1.3 注意点

同while循环不同,for循环是无法定义循环条件的。只能从被处理的数据集中,依次取出内容进行处理。所以,理论上讲,Python的for循环无法构建无限循环(被处理的数据集不可能无限大)

8.1.4 for循环案例
数一数有几个a

定义字符串变量name,内容为:"itheima is a brand of itcast"通过for循环,遍历此字符串,统计有多少个英文字母: "a"

name = "itheima is a brand of itcast"count = 0for x in name:    if x == "a":        count += 1print(f"在\"{name}\"中,共有{count}个\"a\"")

输出结果:

8.2 range语句

语法中:待处理数据集,严格来说,称之为:序列类型序列类型指,其内容可以一个个依次取出的一种类型,包括:

  • 字符串
  • 列表
  • 元组

for循环语句,本质上是遍历:序列类型。我们可以通过学习range语句,获得一个简单的数字序列。

8.2.1 语法1

range(num)获取一个从0开始,到num结束的数字序列(不含num本身)如range(5)取得的数据是:[0,1,2,3,4]

8.2.2 语法2:

range(num1,num2)获得一个从num1开始,到num2结束的数字序列(不含num2本身)如,range(5,10)取得的数据是:[5,6,7,8,9]

8.2.3 语法3:

range(num1, num2, step)获得一个从num1开始,到num2结束的数字序列(不含num2本身)数字之间的步长,以step为准( step默认为1)如,range(5,10,2)取得的数据是:[5,7,9]

8.2.4 代码练习
# range语法1 range(num)for x in range(10):    print(x, end=" ")  # 打印0~9print()# range语法2 range(num1,num2)for x in range(5, 10):    print(x, end=" ")  # 从5开始,到10结束(不包含10本身)的一个数字序列print()# range语法3 range(num1,num2,step)for x in range(5, 10, 2):    print(x, end=" ")  # 从5开始,到10结束(不包含10本身)的一个数字序列,数字之间的间隔是2print()

输出结果:

8.3 range语法案例

有几个偶数

定义一个数字变量numt,内容随意并使用range()语句,获取从1到num的序列,使用for循环遍历它。在遍历的过程中,统计有多少偶数出现

代码
count = 0for x in range(1, 101):    if x % 2 == 0:        count += 1print(f"在1~100中,有{count}个偶数!")
输出结果

8.4 变量作用域

临时变量,在编程规范上,作用范围(作用域),只限定在for循环内部如果在for循环外部访问临时变量:

  • 实际上是可以访问到的
  • 在编程规范上,是不允许、不建议这么做的

8.5 for循环的嵌套应用

程序中的嵌套for循环

for临时变量in待处理数据集(序列)∶循环满足条件应做的事情1循环满足条件应做的事情2循环满足条件应做的事情N...for临时变量in待处理数据集(序列):循环满足条件应做的事情1循环满足条件应做的事情2循环满足条件应做的事情N
8.5.1 代码练习
for i in range(1,100):    print(f"今天是学习Python的第{i}天:")    for j in range(1,10):        print(f"第{i}天学习的第{j}个语法,真简单!")        j += 1    i += 1
8.5.2 注意点:
  • 需要注意缩进,嵌套for循环同样通过缩进确定层次关系
  • for循环和while循环可以相互嵌套使用

8.6 for循环案例-打印九九乘法表

代码
for i in range(1, 10):    j = 1    for j in range(1, i+1):        print(f"{j}×{i}={i * j}\t", end=" ")    print()
输出结果

8.7 continue和break

无论是while循环或是for循环,都是重复性的执行特定操作。在这个重复的过程中,会出现一些其它情况让我们不得不:

  • 暂时跳过某次循环,直接进行下一次
  • 提前退出循环,不在继续

continue和break关键字,用以对循环进行临时跳过直接结束

8.7.1 continue

continue关键字用于:中断本次循环,直接进入下一次循环continue可以用于:for循环和while循环,效果一致

for i in range(1,100):语句1continue语句2

以上的代码中:

  • 在循环内,遇到continue就结束当次循环,进行下一次
  • 所以,语句2是不会执行的。
应用场景:

在循环中,因某些原因,临时结束本次循环。

嵌套引用:

continue关键字只可以控制:它所在的循环临时中断

for i in range(1,100):语句1for j in range(1,100):语句2continue语句3语句4

在以上的代码中,语句3无法执行,但语句4可以执行。

8.7.2 break

break关键字用于:直接结束循环break可以用于:for循环和while循环,效果一致

for i in range(1,100):语句1break语句2语句3

以上的代码中:

  • 在循环内,遇到break就结束循环了
  • 所以,执行了语句1后,直接执行语句3了
嵌套引用:

break关键字同样只可以控制:它所在的循环结束

for i in range(1,100):语句1for j in range(1,100):语句2break语句3语句4

在以上的代码中,输出1遍语句1时,输出语句2,100次,再输出1次语句4

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

9.循环综合案例

某公司,账户余额有1W元,给20名员工发工资。

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

提示:

  • 使用循环对员工依次发放工资
  • continue用于跳过员工,break直接结束发工资
  • 随机数可以用:
import randomnum = random.randint(1,10)
代码
import randombalance = 10000  # 账户余额for i in range(1, 20):    num = random.randint(1, 10)  # 绩效分    if num < 5:        print(f"员工{i},绩效分{num},低于5,不发工资,下一位")    else:        balance -= 1000        print(f"向员工{i}发放1000元,账户余额剩余{balance}元")    if balance == 0:        print("工资发完了,下个月再领取吧。")        break
运行结果图

关键词: