Python | 第六章节 | 控制结构

server/2024/10/19 23:32:13/

P50 位运算(2) 2024/8/17

一、剩余运算符号

1、<< 左移

  • <<规则: 运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,符号位不变高位丢弃,低位补0(左移相当于乘以2)
python"># 5 << 1 =?补码:0000 0101
5 << 1 ---> 0000 1010 补码--->10# -5 << 1 =?原码:1000 0101反码:1111 1010补码:1111 1011
-5 << 1 ---> 1111 0110 补码---> 1111 0101反码--->1000 1010 --->-10

2、>> 右移

  • 规则: 把">>“左边的运算数的各二进位全部右移若干位,”>>"右边的数指定移动的位数,低位溢出,符号位不变,并用符号位补溢出的高位。
python">
# -5 >> 1 =?原码:1000 0101反码:1111 1010补码:1111 1011# 5 >> 1 =?补码:0000 0101
5 >> 1 ---> 0000 0010 补码--->2  # 5 // 2 相当于整除	 # -5 >> 1 =?原码:1000 0101反码:1111 1010补码:1111 1011
-5 >> 1 ---> 1111 1101--->1111 1100--->1000 0011--->-3

P51 顺序控制 2024/8/18

一、基本介绍

程序流程控制决定程序是如何执行的,是我们必须掌握的,主要有三大流程控制语句

1)顺序控制

  • 程序从上到下逐行地执行,中间没有任何判断和跳转

2)分支控制

3)循环控制

P52 单分支 2024/8/18

一、基本语法

单分支是通过if语句来实现的, if语句的基本语法如下:

if 条件表达式:
代码块(可以有多条语句)

  • if基本语法说明
    1、当条件表达式为True 时,就会执行代码块;如果为False,就不执行
    2、Python缩进非常重要,是用于界定代码块的,相当于其他编程语言里的大括号{ }
python"># @Author :zjc
# @File   :01_if_detail.py
# @Time   :2024/8/18 10:17if 4 < 1:print("ok 1")print("ok 2")
print("ok 3")

​ 3、最短的缩进对较长的有包含关系,缩进前后没有要求,但是每个代码块应具有相同的缩进长度(TAB或者相同个数的空格)

python">if 100 > 20:print("ok4")print("ok5")if 8 > 2:print("ok6")

案例演示:
请编写一个程序,可以输入人的年龄,如果该小伙伴的年龄大于18岁,则输出"你年龄大于18,要对自己的行为负责!"

python">"""思路分析:1. 定义变量age,接收用于输入(注意要转成整数)2. 用于if判断
"""
age = int(input("请输入你的年龄:"))
if age > 18:print("你年龄大于18,要对自己的行为负责!")

二、示意图

image-20240818110008801

P53 双分支 2024/8/18

一、基本语法

if 条件表达式**:**

​ 执行代码块1

else:

​ 执行代码块2

  • if - else基本语法说明
  1. if 、 else是关键字,是规定好的
  1. 当条件表达式成立,即执行代码块1,否则执行代码块2,注意,不要少写了冒号:

应用案例

  • 编写一个程序,可以输入人的年龄,如果该小伙伴的年龄大于18岁,则输出"你年龄大于18,要对自己的行为负责!"。
  • 否则,输出"你的年龄不大,这次放过你”
python"># @Author :zjc
# @File   :02_if_else_detail.py
# @Time   :2024/8/18 11:30# 编写一个程序,可以输入人的年龄,如果该小伙伴的年龄大于18岁,则输出"你年龄大于18,要对自己的行为负责!"。
# 否则,输出"你的年龄不大,这次放过你”"""思路分析:1. 定义变量age,接收用于输入(注意要转成整数)2. 用于if-else判断
"""
age = int(input("请输入你的年龄:"))
if age > 18:print("你年龄大于18,要对自己的行为负责!")
else:print(5"你的年龄不大,这次放过你")

二、示意图

image-20240818113456878

三、单分支和双分支练习题

题目1:对下列代码,若有输出,指出输出结果(2min)

python">x = 4
y = 1
if x > 2:if y > 2:print(x + y)print("韩顺平教育~") # 输出
else:print("x is ", x)

题目2:编写程序,定义2个整数变量并赋值,判断两数之和,如果大于等于50,打印"“hello world!”

python">a = 10
b = 80
if a + b > 50:print("hello world")

题目3:编写程序,定了2个float型变量并赋值,如果第一个数大于10.0,且第2个数小于20.0,打印两数之和

python">num1 = 3.0
num2 = 15.5
if num1 > 10.0 and num2 < 20.0:print("两数之和:",num1 + num2)print(f"两数之和:{num1 + num2}")

题目4:定义两个变量int类型,判断二者的和,是否能被3又能被5整除,打印提示信息

python">"""思路分析:1、定义num1 和 num22、判断他们的值是否能被3和整除3、然后输出结果"""
num1 = 0
num2 = 15
sum = num1 + num2
if (sum % 3)==0 and (sum % 5)==0:print(f"{num1}+{num2}的和能被3整除也能被5整除")
else:print("不能被整除")

题目5:判断一个年份是否是闰年,闰年的条件是符合下面二者之一:(1)年份能被4整除,但不能被100整除(2)能被400整除

python">"""思路分析:1、定义变量输入年份2、判断年份是否能被满足条件:(year%4==0 and year%100!=0) or year%400==0
"""year = int(input("请输入年份:"))if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:print(f"{year}是闰年")
else:print(f"{year}不是闰年")

P54 多分支 2024/8/22

一、基本介绍

基本语法

if 条件表达式1**😗*
执行代码块

elif 条件表达式2**😗*
执行代码块2

……

else:
执行代码块n+1

示意图

image-20240822172213298

案例演示

python"># @Author :zjc
# @File   :04_if_elif_else.py
# Time    :2024/8/22 19:53"""
小头儿子参加python考试,他和大头爸爸达成承诺:如果:
成绩为100分时,奖励一辆BMW;
成绩为(80,99]时,奖励一台iphone13;
当成绩为[60,80]时,奖励一个iPad;其它时,什么奖励也没有。
请从键盘输入小头儿子的期末成绩,并加以判断"""
"""思路分析:1、定义变score2、根据成绩进行判断,输出相应提示信息即可3、使用多分支搞定
"""
score = int(input("请输入成绩:"))
if 0 <= score <= 100:# 在Python中支持这种简化链式比较if score == 100:print("奖励一辆BMW")elif 80 < score <= 99:print("奖励一台iphone13")elif 60 <= score <= 80:print("奖励一个iPad")else:print("什么奖励也没有")
else:print("请重新输入!不在0-100之间")
  • 分析下面代码输出结果:# b

image-20240822201321135

二、课后练习

  • 题目一

大家都知道,男大当婚,女大当嫁。那么女方家长要嫁女儿,当然要提出一定的条件:

高: 180cm 以上;

富:财富1千万以上;

帅:是。条件从控制台输入。

如果这三个条件同时满足,则:“我一定要嫁给他!”

如果三个条件有为真的情况,则:“嫁吧,比上不足,比下有余。”

如果三个条件都不满足,则:“不嫁!”

python"># @Author :zjc
# @File   :05_id_elif_else_exrcise.py
# Time    :2024/8/22 20:28"""思路分析:1、 定义三个变量height,,money,handsome2、根据输入+题给出的判断条件,进行多分支进行判断,输出相应提示3、使用if-elif-else
"""height = float(input("身高:"))
money = float(input("钱(万):"))
handsome = input("颜值(帅,不帅:)")if height > 180 and money > 10000000 and handsome == "帅":print("我一定要嫁给他!")elif height > 180 or money > 10000000 or handsome == "帅":print("嫁吧,比上不足,比下有余!")else:print("不嫁!")

P55 嵌套分支 2024/8/25

一、基本介绍

  • 基本介绍
    1)嵌套分支:在一个分支结构中又嵌套了另一个分支结构

    2)里面的分支的结构称为内层分支,外面的分支结构称为外层分支

    3)规范: 不要超过3层(可读性不好)

image-20240825145507994

二、案例演示

1、参加歌手比赛,如果初赛成绩大于8.0进入决赛,否则提示淘汰。并且根据性别提示进入男子组或女子组,输入成绩和性别,进行判断和输出信息。

python"># @Author :zjc
# @File   :06_if_else_inherent.py
# Time    :2024/8/25 15:42# 参加歌手比赛,如果初赛成绩大于8.0进入决赛,否则提示淘汰。
# 并且根据性别提示进入男子组或女子组,输入成绩和性别,进行判断和输出信息。"""思路分析:1、定义两个变量score,gender接收用户的接入2、score接收成绩,然后使用if-else判断,是否进入决赛3、如果进入决赛接收性别,再使用if-else判断,是进入男子组还是女子组
"""
score = float(input("请输入初赛成绩:"))if score > 8.0:print("进入决赛")gender = input("请输入性别:(男/女):")if gender == "男":print("进入男子组!")else:print("进入女子组!")
else:print("您被淘汰了")

2、出票系统:根据淡旺季的月份和年龄,打印票价[课后练习]

4-10旺季:
成人(18-60): 60

儿童(<18):半价

老人(>60): 1/3

淡季:
成人:40

其他:20

python"># @Author :zjc
# @File   :07_nested_if_else_exercise.py
# Time    :2024/8/25 16:03"""思路分析:1、定义变量季节,年龄2、先判断月份淡旺季3、里面嵌入多分支判断票价
"""
month = int(input("请输入月份:"))
age = int(input("请输入年龄:"))
if 4 < month < 10:  # 旺季if age < 18:print("票价为:", 60 / 2)elif 18 <= age <= 60:print("票价为:", 60)else:print("票价为:", 60 / 3)
else:           # 淡季if 18 <= age <= 60:print("票价为:", 40)else:print("票价为:", 20)

P56 for 循环(1)2024/8/28

一、问题提出

实际需求

编写一个程序,可以打印10句"你好,韩顺平教育!"。请大家想想怎么做?

二、基本介绍

  • for循环-基本介绍

for循环听其名而知其意,就是让你的代码可以循环的执行,是通过for语句来实现的

  • 基本语法:

for <变量> in <范围/序列>

​ <循环操作语句>

  • for基本语法说明

1、for . in是关键字,是规定好的

2、<范围/序列>可以理解要处理的数据集,需要是可迭代对象(比如字符串,列表等…)

3、循环操作语句,这里可以有多条语句,也就是我们要循环执行的代码,也叫循环体

4、python的for循环是一种**“轮询机制”**,是对指定的数据集,进行"轮询处理"

案例演示

python"># @Author :zjc
# @File   :08_for_1.py
# Time    :2024/8/28 15:45# 编写一个程序,可以打印10句"你好,韩顺平教育!"。请大家想想怎么做?# 定义一个列表(后面会详细介绍),可以视为一个数据集
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(nums, type(nums))  # <class 'list'># 每次循环的时候,依次将nums中的值取出赋值给i
# for i in [1,2,3,4,5]:这样直接写列表也是可以的
for i in nums:print("你好,Python", i)
  • for循环控制流程图

image-20240828183016370

  • 内存示意图

image-20240828185806319

  • 驻留机制相同字符串的地址不变
python"># @Author :zjc
# @File   :09_test_for.py
# Time    :2024/8/28 18:35nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(nums, id(nums), nums[0], id(nums[0]))
print(nums, id(nums), nums[1], id(nums[1]))
print(nums, id(nums), nums[2], id(nums[2]))# Python中的数据相同,根据驻留机制,会发现1的地址和nums[0]一样
print(id(1))

image-20240828185326702

P57 for 循环(2)2024/8/29

一、注意事项和细节

  1. 循环时,依次将序列中的值取出赋给变量。
  2. 如需要遍历数字序列,可以使用内置range()函数,它会生成数列。range()生成的数列是前闭后开

image-20240829112256856

image-20240829112355854

代码演示

python"># @Author :zjc
# @File   :010_for_02.py
# Time    :2024/8/29 11:25# range函数的解读class range(stop)
# class range(stat, stop, step=1)
# 1.虽然被称为函数,但range实际上是一个不可变的序列类型
# 2. range 默认增加的步长step是1,也可以指定,start 默认是E
# 3.通过list()可以查看range()生成的序列包含的数据
# 4. range()生成的数列是 前闭后开 range(1,5)相当于[1,5)# 1.需求:生成一个[1,2,3,4,5]
# r1 = range(1, 6, 1)
r1 = range(1, 6)
print("r1 = ", list(r1))  # 使用list来输出# 2. 需求:生成一个[0,1,2,3,4,5]
# r2 = range(0, 6)
r2 = range(6)  # 等价
print("r2 = ", list(r2))# 3.需求:生成一个[1,3,5,7,9]
r3 = range(1, 10, 2)
print("r3 = ", list(r3))# 4.需求使用for+range方式输出10句"hello, python"
# for i in range(1, 11):
for i in range(10):print("hello,python", i)# hello,python 9 输出到9

二、for 和 else 可以配合使用

这里先给大家演示一下,后面学习了break,再回头加强一下

语法格式

image-20240829113834724

代码演示

python"># @Author :zjc
# @File   :011_for_else_exercise.py
# Time    :2024/8/29 11:43# for-else使用案例
nums = [1, 2, 3]
for i in nums:print("你好,韩顺平教育", i)# 演示一把breakif i == 2:break # 中断提前结束
else:print("没有循环数据了..")

题目练习

image-20240829114700773

解答:依次输出列表中的字符串

P58 while 循环(1)2024/8/29

一、基本介绍

while循环用于在表达式为真的情况下,重复的(循环的)执行,是通过while语句来实现的。

  • 基本语法

image-20240829115532167

image-20240829115544030

  • 案例演示
python"># @Author :zjc
# @File   :012_while_01.py
# Time    :2024/8/29 11:56# 使用while循环完成十句
"""思路分析:1、定义变量i2、使用while 循环判断i<=10,如果为真就执行"hello,python"3、注意i的值,要不断地增加 i +=1
"""i = 1
while i <= 10:print("hello,python", i)i += 1
  • 流程图

image-20240829120822599

  • 内存分析

image-20240829122051429

P59 while 循环(2) 2024/8/29

一、注意事项和细节说明

1、while可以和 else配合使用

​ 1)老韩说明:这里先给大家演示一下,后面学习了break,再回头加强一下

​ 2)语法格式

image-20240829162123044

解读: 在 while … else判断条件为 false时,会执行else 的语句块,即:在遍历过程中,没有被打断(解释:比如没有执行到break语句)

代码演示

python"># @Author :zjc
# @File   :013_while_02.py
# Time    :2024/8/29 16:23i = 0
while i < 3:print("hello,python", i)i += 1if i == 1:break
else:print("i < 3 不成立i = ",i)

二、课堂练习题

1、打印1-100之间所有能被3整除的数

python"># @Author :zjc
# @File   :014_while_exercise_011.py
# Time    :2024/8/29 16:28# 1、打印1-100之间所有能被3整除的数
"""思路分析:1. 定义变量i = 1,定义最大值max_num = 100,遍历的范围2. 如果i % 3 == 0,说明i是可以被3整除的3. 满足条件即可4. 自增i
"""
# 1、while循环
i = 1
while i < 100:if i % 3 == 0:print(i,)i += 1# 2、for循环
for i in range(1, 100):if i % 3 == 0:print(i)

2、打印40-200之间所有的偶数

python"># @Author :zjc
# @File   :015_while_exercise_02.py
# Time    :2024/8/29 16:37# 2、打印40-200之间所有的偶数# 1、while循环
i = 40
max_num = 200
while i < 200:if i % 2 == 0:print(i)i += 1# 2、for循环
for i in range(40, 200, 2):print(i)

3、不断输入姓名,直到输入"exit”为止

python"># @Author :zjc
# @File   :016_while_exercise_03.py
# Time    :2024/8/29 18:58# 3、不断输入姓名,直到输入"exit”为止
"""思路分析:1. 定义变量name 接收用户输入2. 使用while判断 ,如果name != “exit”就循环的输入
"""
name = ""
while name != "exit":name = input("请输入姓名")print("输入的内容是:", name)

image-20240829190611460

4、打印1-100之间所有是9的倍数的整数,统计个数及总和

python"># @Author :zjc
# @File   :017_while_exercise_04.py
# Time    :2024/8/29 19:09# 4、打印1-100之间所有是9的倍数的整数,统计个数及总和
"""思路分析:1. 定义变量i,和max_num=100,总和sum = 0,个数count2. 循环判断9的倍数 i % 9 == 03. 计算总和 sum += i
"""i = 1
max_num = 100
sum = 0
count = 0
while i < max_num:if i % 9 == 0:sum += icount += 1# 记得一定要加1i += 1
print("1-100中9的倍数的总和:%d 个数为%d" % (sum,count))

image-20240829192053858

5、完成下面表达式的输出

image-20240829192129804

python"># @Author :zjc
# @File   :018_while_exercise_05.py
# Time    :2024/8/29 19:21"""思路分析:1. 定义一个变量,接受用户的整数,定义一个i = 02. 遍历0-num.第一个加数是0-num,第二个加数是 num-03. 使用while循环完成
"""
num = int(input("请输入一个整数:"))
i = 0
while i <= num:print(f"{i} + {num - i} = {num}")i += 1

image-20240829192800471


http://www.ppmy.cn/server/123355.html

相关文章

C# 泛型使用案例_C# 泛型使用整理

一、系统自带常用的泛型 1.字典&#xff0c;集合 //字典 Dictionary<string, int> dic new Dictionary<string, int>(); //泛型集合 List<int> list new List<int>(); 2.泛型委托&#xff0c;输入参数&#xff0c;输出参数 //泛型 委托---输出参…

04_OpenCV图片缩放

import cv2 import matplotlib.pyplot as plt # Python 的 2D绘图库# 读入原图片 img cv2.imread(libarary.JPG) # 打印出图片尺寸 print(img.shape) # 将图片高和宽分别赋值给x&#xff0c;y x, y img.shape[0:2]# 显示原图 #cv.imshow(OriginalPicture, img)# 缩放到原来的…

Chrome Cookie最大有效期

Chrome Cookie最大有效期 代码设置了cookie有效期是10年&#xff0c;但在浏览器上实际上发现只有一年多一点&#xff0c;查证后发现chrome对cookie的最大有效期做了限制&#xff08;400&#xff09;天&#xff0c;实际上99.9999%的场景也是可以满足的 官方表述 测试 理论设置 …

服务器感染了.baxia勒索病毒,如何确保数据文件完整恢复?

导言 在数字化时代&#xff0c;数据已成为企业运营和个人生活不可或缺的核心资产。然而&#xff0c;随着网络技术的飞速发展&#xff0c;数据安全威胁也日益严峻&#xff0c;其中勒索病毒更是成为了悬挂在数字世界上方的一把利剑。近年来&#xff0c;诸如.baxia等新型勒索病毒…

MySQL vs PostgreSQL:2024年深度对比与选择指南

目录 引言基本特性对比性能比较可扩展性数据类型和索引支持复制和高可用性安全性生态系统和社区支持云服务支持使用场景分析总结 引言 在选择关系型数据库管理系统&#xff08;RDBMS&#xff09;时&#xff0c;MySQL和PostgreSQL常常是开发者和企业面临的两个主要选项。本文…

从 Oracle 集群到单节点环境(详细记录一次数据迁移过程)之二:生产服务器的备份操作

从 Oracle 集群到单节点环境&#xff08;详细记录一次数据迁移过程&#xff09;之二&#xff1a;生产服务器的备份操作 目录 从 Oracle 集群到单节点环境&#xff08;详细记录一次数据迁移过程&#xff09;之二&#xff1a;生产服务器的备份操作一、创建 pfile 文件二、创建备份…

Django中媒体文件的配置

1&#xff0c;在设置文件settings.py中配置 MEDIA_ROOT BASE_DIR / media/ MEDIA_URL /media/2&#xff0c;在根路由文件中加入静态路由&#xff08;需导入settings和static函数&#xff09; from django.contrib import admin from django.urls import path, include #sta…

Python知识点:如何使用Python进行卫星数据分析

开篇&#xff0c;先说一个好消息&#xff0c;截止到2025年1月1日前&#xff0c;翻到文末找到我&#xff0c;赠送定制版的开题报告和任务书&#xff0c;先到先得&#xff01;过期不候&#xff01; 如何使用Python进行卫星数据分析 卫星数据分析是地球观测领域的一项关键技术&a…