Python 从入门到精通 学习笔记 Day03

Python 从入门到精通 第三天

在这里插入图片描述

今日目标

流程控制语句、退出循环、练习学习的内容

一、流程控制语句

流程控制的三种方式:顺序语句、双分支语句、循环语句

双分支语句

Python 的双分支语句使用if-else语句实现。
其语法结构如下:

if条件:#如果条作为真,执行这个代码块
else:#如果条性为假,执行这个代码块

其中,条件是一个布尔表达式,如果它的结果为True,则执行第一个代码块,否则执行第二个代码块。
在Python中,代码块使用缩进来表示,因此需要注意代码块的缩进量。
通常使用四个空格来表示一个缩进级别。

# 获取用户输入的年龄
age = int(input("请输入您的年龄:"))# 判断是否可以去网吧上网
if age >= 18:print("您可以去网吧上网")
else:print("您未满18岁,不能去网吧上网")

多分支语句

在Python中,多分支语句通常使用if-elif-else语句实现。它的语法结构如下:
if 条件1:#如果条件1为真,执行这个代码块
elif 条件2:#如果条件1为假,且条件2为真,执行这个代码块。
elif 条件3:#如果条件1和条件2都为假,且条件3为真,执行这个代码块。
else:#如果所有条件都为假,执行这个代码块。
# 获取用户输入的身高和体重
height = float(input("请输入您的身高(单位:米):"))
weight = float(input("请输入您的体重(单位:千克):"))
# 计算BMI并输出结果
bmi = weight / (height ** 2)
print(f"您的BMI指数为{bmi}")# 根据BMI范围输出建议
if bmi < 18.5:print("您的体重过轻,请增加营养摄入并进行适当活动。")
elif bmi < 24:print("您的体重正常,请继续保持。")
elif bmi < 28:print("您的体重过重,请注意控制饮食并加强锻炼。")
else:print("您的体重严重超标,请及时咨询医生。")

分支嵌套

# 获取用户输入的身份证号码
id_nmuber = input("请输入您的身份证号码:")# 判断身份证号码是否为18位
if len(id_nmuber)!=18:print("您的身份证号码不是18位,请重新输入。")
else:# 获取身份证号码的前6位和倒数第二位native_place_code = id_nmuber[:6]gender_code = int(id_nmuber[-2])# 判断籍贯if native_place_code == "370600":print("您的籍贯是山东省。")elif native_place_code =="110000":print("您的籍贯是北京市。")elif native_place_code == "120000":print("您的籍贯是天津市。")elif native_place_code == "310000":print("您的籍贯是上海市。")elif native_place_code == "500000":print("您的籍贯是重庆市。")else:print("您的籍贯是其他城市。")#判断性别if gender_code % 2 == 0:print("您的性别是女性。")else:print("您的性别是男性。")

循环语句

循环语句是一种编程语言的控制结构,用于在程序中重复执行—段代码,直到满足特定条件为止。
循环语句可以帮助程序员简化重复性的任务,提高代码的可读性和效率。

while循环

while循环用于在条件为真的情况下重复执行一段代码,直到条件变为假为止。
以下是while循环的语法:

while条件:循环体

在执行while循环时,程序会先检查条件是否为真。
如果条件为真,就执行循环体中的代码,然后再次检查条件。
如果条件仍为真,就再次执行循环体中的代码,以此类推,直到条件变为假为止。

# 使用while循环打印10次“hello world"
count = 0
while count < 10:print("hello world")count += 1

for循环

for循环用于对一个序列(如字符串、列表、元组等)中的元素进行遍历和操作,直到序列中的所有元素都被遍历为止。
以下是for循环的语法:

for 变量 in 序列:循环体

在执行for循环时,程序会依次将序列中的每个元素赋值给变量,并执行循环体中的代码,直到序列中的所有元素都被遍历完为止。

以下是使用for循环打印10次"hello world"的代码示例:

# 使用for循环打印10次“hello world”
for i in range(10):print("hello world")
验证码案例
import random
import string# 定义可选字符集
characters = string.ascii_uppercase = string.digits# 生成五位随机验证码
code = ""
for i in range(5):code += random.choice(characters)
print(code)
累加和案例
# 定义变量sum并初始化为0
sum = 0# 使用for循环将1到100的数相加
for i in range(1, 101):sum += i# 输出结果
print("1到100的和为:", sum)
sum = 0
for i in range(1, 101):if i % 2 == 0:sum += iprint("1到100中所有偶数的和为:", sum)

循环语句嵌套分支语句

print("欢迎来到游戏世界!")
while True:print("请选择您要进行的操作:")print("1.攻击敌人")print("2.购买道具")print("3.逃跑")choice = input("请选择操作(输入数字1,2,3):")if choice == "1":print("您发起了攻击,打败了敌人!")elif choice == "2":print("您购买了一件道具,增强了自己的能力!")elif choice == "3":print("您逃跑了,但是被追上了!")else:print("您的输入无效,请重新输入")continueconfirm = input("是否继续游戏?(输入y或n):")if confirm == "n":print("游戏结束,谢谢参与!")break
# 九九乘法表
for i in range(1,10):for j in range(1,i+1):print(f"{j} * {i} = {i * j}",end="\t")print()

编写一个Python程序,输出一个nx n的方阵,其中第i行第j列的格子中应该填写i+j的结果。
要求:
输入n的值,保证是一个正整数。
要求输出的方阵中每个格子的宽度都为4个字符,格子之间用制表符分隔。
输出的方阵中每行的末尾不能有多余的制表符。
输出的方阵中每行的末尾必须有一个换行符。

def print_matrix(n):for i in range(1, n + 1):for j in range(1, n + 1):# 格式化每个格子的内容为4个字符宽度cell = "{:4d}".format(i + j)# 输出格子内容,以制表符分隔print(cell, end="\t")# 每行末尾去除多余的制表符,并换行print()# 输入n的值
n = int(input("请输入正整数n的值:"))# 调用函数输出方阵
print_matrix(n)

二、退出循环

在Python编程语言中,break和continue是两个控制流语句,可以用于改变程序的执行流程。
break语句用于跳出当前的循环(for循环或while循环),使程序继续执行循环之后的代码,即跳出整个循环体。
例如:

for i in range(1, 11):if i == 5:breakprint(i)

上面的代码将会输出1、2、3、4,因为当i等于5时,break语句被执行,跳出整个循环。
continue语句用于结束当前的循环迭代,跳过剩余的代码,继续执行下一次循环迭代。
例如:

for i in range(1, 11):if i == 5:continueprint(i)

上面的代码将会输出1、2、3、4、6、7、8、9、10。
因为当i等于5时,continue语句被执行,跳过当前的迭代,直接进入下一次迭代。

三、练习学习的内容

1.假设你正在写一个简单的计算器程序,可以让用户输入两个数字和一个操作符,然后输出计算结果。
你需要使用分支循环语句来实现这个程序。
假设操作符可以是加号、减号、乘号或除号,你的程序需要根据用户输入的操作符执行相应的计算操作,并输出计算结果。如果用户输入的操作符不是加号、减号、乘号或除号,则输出错误信息并让用户重新输入。

while True:# 用户输入两个数字和一个操作符num1 = float(input("请输入第一个数字:"))num2 = float(input("请输入第二个数字:"))operator = input("请输入操作符(+、-、*、/):")# 根据操作符执行相应的计算操作,并输出结果if operator == '+':result = num1 + num2print("计算结果:", result)elif operator == '-':result = num1 - num2print("计算结果:", result)elif operator == '*':result = num1 * num2print("计算结果:", result)elif operator == '/':if num2 != 0:result = num1 / num2print("计算结果:", result)else:print("错误:除数不能为0,请重新输入。")else:print("错误:无效的操作符,请重新输入。")# 询问用户是否继续计算choice = input("是否继续计算?(y/n)")if choice.lower() != 'y':break

2.计算初始本金为1万,年利率为0.0325的情况下,需要多少年才能将本金和利息翻倍,即本金和利息的总和达到原来的两倍。

principal = 10000  # 初始本金
interest_rate = 0.0325  # 年利率
target_amount = principal * 2  # 目标金额years = 0  # 初始年数
while principal < target_amount:principal += principal * interest_rate  # 计算每年的利息years += 1print("本金和利息翻倍需要{}年".format(years))

3.首先,程序使用random.randint()函数产生一个1~10之间的随机数。
然后,程序通过for循环提示玩家输入一个猜测的数字,玩家可以输入一个1~10之间的整数。
如果玩家猜对了数字,程序输出恭喜玩家的信息并结束游戏;
如果玩家猜错了,程序会根据玩家输入的数字与随机数之间的大小关系来提示玩家是否猜对
并在每次猜错后告诉玩家还剩下几次机会。
如果玩家在三次机会内猜对了数字,程序输出恭喜玩家的信息并结束游戏;
否则程序输出很遗憾的信息并结束游戏。

import randomrandom_number = random.randint(1, 10)  # 生成1~10之间的随机数for _ in range(3):  # 最多猜3次guess = int(input("请输入一个1~10之间的整数:"))if guess == random_number:print("恭喜你,猜对了!")breakelif guess < random_number:print("猜错了,你猜的数字太小了。")remaining_chances = 2 - _if remaining_chances > 0:print("还剩下{}次机会。".format(remaining_chances))else:print("很遗憾,你没有猜对。正确答案是{}。".format(random_number))else:print("猜错了,你猜的数字太大了。")remaining_chances = 2 - _if remaining_chances > 0:print("还剩下{}次机会。".format(remaining_chances))else:print("很遗憾,你没有猜对。正确答案是{}。".format(random_number))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/207059.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Facebook广告报告指标CPC

在Facebook广告中&#xff0c;CPC可以作为一个关键指标来评估广告效果和投资回报。较低的CPC意味着广告主能以更低的价格获得更多的点击量&#xff0c;从而降低广告投放成本。而较高的CPC可能暗示着广告主需要更大的预算才能获得相同数量的点击。本文小编将讲讲Facebook广告报告…

k8s上安装KubeSphere

安装KubeSphere 前置环境安装nfs-server文件系统配置nfs-client配置默认存储创建了一个存储类metrics-server集群指标监控组件 安装KubeSphere执行安装查看安装进度 前置环境 下载配置我都是以CentOS 7.9 安装 k8s(详细教程)文章的服务器作为示例&#xff0c;请自行修改为自己的…

2.vue学习笔记(目录结构+模板语法+属性绑定)

1.目录结构 1.vscode ——VSCode工具的配置文件夹 2.node_modules ——Vue项目的运行依赖文件夹 3.public ——资源文件夹&#xff08;浏览器图标&#xff09; 4.src ——源码文件夹 5..gitgnore ——git忽略文件 6.index.html ——如果html文件 7.package.json —…

基于SpringBoot+Vue学生成绩管理系统前后端分离(源码+数据库)

一、项目简介 本项目是一套基于SpringBootVue学生成绩管理系统&#xff0c;主要针对计算机相关专业的正在做bishe的学生和需要项目实战练习的Java学习者。 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目可以直接作为bishe使用。 项目都经过严格调试&#xff0c;确…

虚幻学习笔记10—C++函数与蓝图的通信

一、前言 除了上一章C变量与蓝图通信讲的变量能与蓝图通信外&#xff0c;还有函数和枚举也可以和蓝图通信。函数的关键字为”UFUNCTION“、枚举的关键字为”UENUM“。 二、实现 2.1、BlueprintCallable蓝图中调用 该函数时带执行的&#xff0c;带入如下。编译成功后在蓝图中输…

来自Sui的温馨建议:保护您的Web3私钥

当您安装一个钱包并创建Sui账户时&#xff0c;钱包包含一个公钥和一个私钥。保护好私钥的安全非常重要&#xff0c;从而可以保护您的Sui资产&#xff0c;包括钱包中的任何tokens。 公钥加密技术是几十年前开发的&#xff0c;是当今互联网上大多数安全交易的基础&#xff0c;包…

Navicat Premium 16 for Mac/Windows:高效的数据库开发工具

Navicat Premium 16是一款功能强大的数据库开发工具&#xff0c;为开发人员提供了全面的工具和功能&#xff0c;帮助他们更高效地进行数据库开发和管理。不论是初学者还是专业开发人员&#xff0c;Navicat Premium 16都能满足他们的需求&#xff0c;并提供直观、易用的界面。 …

【深度学习】AlexNet网络实现猫狗分类

【深度学习】AlexNet网络实现猫狗分类 AlexNet简介 AlexNet是一种卷积神经网络&#xff08;Convolutional Neural Network&#xff0c;CNN&#xff09;模型&#xff0c;它在2012年的ImageNet图像分类挑战赛中取得了重大突破&#xff0c;引发了深度学习在计算机视觉领域的热潮…

为“异常”努力是值得的

异常是OO语言处理错误的方式,在C中&#xff0c;鼓励使用异常。侯捷再书中谈起异常&#xff0c;“十年前撰写“未将异常考虑在内的”函数是为一种美好实践&#xff0c;而今我们致力于写出“异常安全码”。”可见异常安全的重要。 说起异常安全&#xff0c;首先就要是异常的出现…

Leetcode—213.打家劫舍II【中等】

2023每日刷题&#xff08;五十二&#xff09; Leetcode—213.打家劫舍II 算法思路 实现代码 class Solution { public:// 左闭右开int rob1(vector<int>& nums, int start, int end) {int n nums.size();int f0 0, f1 0, new_f 0;for(int i start; i < end…

机器学习硬件十年:性能变迁与趋势

本文分析了机器学习硬件性能的最新趋势&#xff0c;重点关注不同GPU和加速器的计算性能、内存、互连带宽、性价比和能效等指标。这篇分析旨在提供关于ML硬件能力及其瓶颈的全面视图。本文作者来自调研机构Epoch&#xff0c;致力于研究AI发展轨迹与治理的关键问题和趋势。 &…

【送书活动四期】被GitHub 要求强制开启 2FA 双重身份验证,我该怎么办?

记得是因为fork了OpenZeppelin/openzeppelin-contracts的项目&#xff0c;之后就被GitHub 要求强制开启 2FA 双重身份验证了&#xff0c;一拖再拖&#xff0c;再过几天帐户操作将受到限制了&#xff0c;只能去搞一下了 目录 2FA是什么为什么要开启 2FA 验证GitHub 欲在整个平台…

消息队列 - RabbitMQ

消息队列 - RabbitMQ 1. 初识 MQ1.1 同步调用1.2 异步调用1.3.技术选型 2. RabbitMQ2.1 安装2.2 收发信息2.2.1 交换机(Exchange)2.2.2 队列2.2.3 绑定关系2.2.4 发送消息 2.3 数据隔离 1. 初识 MQ 微服务一旦拆分&#xff0c;必然涉及到服务之间的相互调用&#xff0c;之前讲…

编译 Android gradle-4.6-all.zip 报错问题记录

编译 Android gradle-4.6-all.zip 报错问题记录 方法一&#xff1a;替换资源&#xff1a;方法二&#xff1a;修改源方法三&#xff1a;修改版本 编译时候无法下载 gradle-4.6-all Downloading https://services.gradle.org/distributions/gradle-4.6-all.zip 方法一&#xf…

《一念关山》热度破万,爱奇艺古装赛道出尽风头

​刘诗诗重回古装剧、新式武侠公路片、质感细腻的镜头美学......看点满满的《一念关山》频频登上热搜&#xff0c;俘获了大批观众的心。 开播首日热度就刷新了爱奇艺2023年站内纪录&#xff0c;《一念关山》作为2023年爱奇艺在古装赛道的收官之作&#xff0c;口碑和热度兼收。…

一文详解Java反射

文章目录 反射是什么&#xff1f;反射的作用所有方法汇总一、加载Class对象二、加载类的构造器对象三、加载类的成员变量四、加载类的成员方法 反射是什么&#xff1f; 反射就是&#xff1a;加载类&#xff0c;并允许以编程的方式解剖类中的某个成分&#xff08;成员变量&#…

实战:Docker Compose 下 Nginx、Java、Mysql 和 Redis 服务协同部署(包含解决浏览器访问Linux部署服务器本地资源问题)

1. 背景 在该实战中&#xff0c;我们将探讨如何使用Docker Compose协同部署Nginx、Java、Mysql和Redis服务&#xff0c;实现一个视频上传与展示的应用。具体需求如下&#xff1a; Java应用负责上传视频和图片资源到Nginx目录下&#xff0c;作为资源服务器。Nginx服务作为静态…

Numpy数组常用属性汇总(第5讲)

Numpy数组常用属性汇总 (第5讲)         🍹博主 侯小啾 感谢您的支持与信赖。☀️ 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ…

【JavaEE进阶】 Spring使用注解存储对象

文章目录 &#x1f334;序言&#x1f340;前置⼯作&#xff1a;配置扫描路径&#x1f384;添加注解存储 Bean 对象&#x1f333;类注解&#x1f6a9;为什么要这么多类注解&#x1f6a9;注解之间的联系 &#x1f38b;⽅法注解 Bean&#x1f6a9;⽅法注解需要配合类注解使⽤ ⭕总…

探索AIGC未来:CPU源码优化、多GPU编程与中国算力瓶颈与发展

★人工智能&#xff1b;大数据技术;AIGC;Turbo;DALLE 3;多模态大模型&#xff1b;MLLM&#xff1b;LLM&#xff1b;Agent&#xff1b;Llama2&#xff1b;国产GPU芯片&#xff1b;GPU;CPU&#xff1b;高性能计算机&#xff1b;边缘计算&#xff1b;大模型显存占用&#xff1b;5G…