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

news2024/11/19 20:22:37

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 += i

print("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("您的输入无效,请重新输入")
        continue

    confirm = 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:
        break
    print(i)

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

for i in range(1, 11):
    if i == 5:
        continue
    print(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 + num2
        print("计算结果:", result)
    elif operator == '-':
        result = num1 - num2
        print("计算结果:", result)
    elif operator == '*':
        result = num1 * num2
        print("计算结果:", result)
    elif operator == '/':
        if num2 != 0:
            result = num1 / num2
            print("计算结果:", 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 += 1

print("本金和利息翻倍需要{}年".format(years))

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

import random

random_number = random.randint(1, 10)  # 生成1~10之间的随机数

for _ in range(3):  # 最多猜3次
    guess = int(input("请输入一个1~10之间的整数:"))

    if guess == random_number:
        print("恭喜你,猜对了!")
        break
    elif 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.coloradmin.cn/o/1298140.html

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

相关文章

stm32 使用18B20 测试温度

用18b20 测试温度是非常常用的&#xff0c;不过18B20的调试不是这么容易的&#xff0c;有些内容网上很多的&#xff0c;不再重复说了&#xff0c;我先把波形说一下&#xff0c;再说程序部分&#xff1a; 整个都温度数据的顺序是&#xff1a; 1.700uS的低电平复位并测试18B20的…

使用MetaMask + Ganache搭建本地私有网络并实现合约部署与互动

我使用Remix编写合约&#xff0c;MetaMask钱包工具和Ganache搭建了一个私有网络&#xff0c;并且实现了合约的部署和互动。 在前面的博客中提到了 Remix在线环境及钱包申请 以及 Solidity的基本语法 &#xff0c;没看过的小伙伴可以点击链接查看一下&#xff0c;都是在本专栏下…

Swift 如何实现自定义 Tab Bar

前言 每个 UI 设计师都喜欢美丽而有动画效果的 Tab Bar。然而&#xff0c;对于开发人员来说&#xff0c;实现这种设计可能是一场噩梦。当然&#xff0c;使用 Apple 的原生 Tab Bar 组件并专注于更有趣的事情&#xff0c;比如业务逻辑的实现&#xff0c;会更容易。但如果我们必…

CPU、MCU、MPU、DSP、FPGA各是什么?有什么区别?

1、CPU 中央处理器&#xff0c;简称 CPU&#xff08;Central Processing Unit&#xff09;&#xff0c;中央处理器主要包括两个部分&#xff0c;即控制器、运算器&#xff0c;其中还包括高速缓冲存储器及实现它们之间联系的数据、控制的总线。 电子计算机三大核心部件就是CPU…

了解c++11中的新增

一&#xff0c;统一的初始化列表 在引入c11后&#xff0c;我们得出计划都可以用初始化列表进行初始化。 C11 扩大了用大括号括起的列表 ( 初始化列表 ) 的使用范围&#xff0c;使其可用于所有的内置类型和用户自 定义的类型&#xff0c; 使用初始化列表时&#xff0c;可添加等…

JS基础之原型原型链

JS基础之原型&原型链 原型&原型链构造函数创建对象prototypeprotoconstructor实例与原型原型的原型原型链其他constructorproto继承 原型&原型链 构造函数创建对象 我们先使用构造函数创建一个对象&#xff1a; function Person(){ } var person new Person();…

【数据结构和算法】到达首都的最少油耗

其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、题目描述 二、题解 三、代码 四、复杂度分析 前言 这是力扣的2477题&#xff0c;难度为中等&#xff0c;解题方案有很多种&…

tomcat源码学习记录

tomcat 学习记录 tomcat 编译ant 下载编译运行 源码Debug运行 Bootstrap运行Tomcat查看状态 pom.xml测试EmbeddedTomcat 参考书籍博客 tomcat 编译 下载 tomcat 10 源码&#xff0c;解压然后idea导入 包存放的默认位置如下&#xff1a;base.path${user.home}/tomcat-build-lib…

Linux升级nginx版本

处于漏洞修复目的服务器所用nginx是1.16.0版本扫出来存在安全隐患&#xff0c;需要我们升级到1.17.7以上。 一般nginx默认在 /usr/local/ 目录&#xff0c;这里我的nginx是自定义的路径安装在 /app/weblogic/nginx 。 1.查看生产环境nginx版本 cd /app/weblogic/nginx/sbin/…

class065 A星、Floyd、Bellman-Ford与SPFA【算法】

class065 A星、Floyd、Bellman-Ford与SPFA【算法】 2023-12-9 19:27:02 算法讲解065【必备】A星、Floyd、Bellman-Ford与SPFA code1 A*算法模版 // A*算法模版&#xff08;对数器验证&#xff09; package class065;import java.util.PriorityQueue;// A*算法模版&#xff…

Elon Musk艾隆・马斯克的聊天机器人Grok上线可以使用啦,为X Premium Plus订阅者推出

艾隆・马斯克旗下的 AI 初创公司X&#xff08;前身“推特”&#xff09;开发的 ChatGPT 竞争对手 Grok 已经在 X 平台上正式推出。Grok 是一个基于生成模型 Grok-1的聊天机器人&#xff0c;它能够回答问题并提供最新的信息。与其他聊天机器人不同&#xff0c;Grok 可以实时获取…

luceda ipkiss教程 44:在PyCharm 中设置Template text

通过设置Template text&#xff0c;可以提升写代码的速度和版图设计效率。 设置了Template text&#xff0c;在PyCharm 命令窗口输入i3后按enter建&#xff0c;就可以快速输入 from ipkiss3 import all as i3 这一段代码&#xff0c;使用起来也是非常方便&#xff1a; 设置过程…

万界星空科技mes系统中看板管理

我们很多企业现在都有大屏&#xff0c;那到底万界星空科技低代码云mes系统管理中看板管理有什么作用&#xff1f;我总结了几条: 1.提高车间的生产效率 2.有效的监控设备运行状况 3.控制生产线运行 4.增加和改善用户体验 5.提高工作效率和工作安全性

课堂练习3.4:进程的切换

3-9 课堂练习3.4:进程的切换 进程切换是支持多进程的一个关键环节,涉及到 CPU 现场的保存和恢复,本实训分析 Linux 0.11 的进程切换过程。 第1关第一次进程切换过程分析 任务描述 本关任务回答问题: 在第一次进程切换时: 1.是从几号进程切换到几号进程?0 号进程和 1 号…

人工智能大型语言模型的突破

近年来&#xff0c;随着深度学习和人工智能技术的飞速发展&#xff0c;大型语言模型在自然语言处理领域取得了巨大的突破&#xff0c;引发了广泛的关注和讨论。本文将介绍大型语言模型的发展历程、技术原理、应用场景以及未来发展趋势。 一、发展历程大型语言模型的发展可以追…

Android : Xui- RecyclerView+BannerLayout 轮播图简单应用

实例图&#xff1a; 1.引用XUI http://t.csdnimg.cn/Wb4KR 2.创建显示图片布局 banner_item.xml <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"…

综述 2017-Genome Biology:Alignment-free sequence comparison

Zielezinski, Andrzej, et al. "Alignment-free sequence comparison: benefits, applications, and tools." Genome biology 18 (2017): 1-17. https://genomebiology.biomedcentral.com/articles/10.1186/s13059-017-1319-7 被引次数&#xff1a;476应用问题&…

【九】spring、springmvc、springboot、springcloud

spring、springmvc 、springboot 、springcloud 简介 从事IT这么些年&#xff0c;经历了行业技术的更迭&#xff0c;各行各业都会有事务更新&#xff0c;IT行业技术更迭速度快的特点尤为突出&#xff0c;或许这也是从事这个行业的压力所在&#xff0c;但另一方面反应了这个行业…

利用jdbc对数据库进行增删改查

步骤/过程&#xff1a; 1&#xff0c;导入驱动包 2&#xff0c;加载驱动包 3&#xff0c;输入信息&#xff0c;进行数据库连接 4&#xff0c;创建 statement对象 5&#xff0c;执行sql语句 6&#xff0c;如果是查询操作&#xff0c;利用ResultSet处理数据&#xf…

【动手学深度学习】(十一)池化层+LeNet

文章目录 一、池化层1.理论知识2.代码 二、LeNet1.理论知识2.代码实现 【相关总结】nn.MaxPool2d() 卷积层对位置比较敏感 一、池化层 1.理论知识 二维最大池化 填充、步幅和多个通道 池化层与卷积层类似&#xff0c;都具有填充和步幅没有可学习的参数在每个输入通道应用池…