python基础实战5-python基本结构

news2024/11/26 20:27:28

1 if语句

  • if语句是用来进行判断的,其使用格式如下

if 要判断的条件:

        条件成立时,要做的事情

案例一:

age = 30
print("------if判断开始------")
if age >= 18:
    print("我成年了")
print("------if判断结束------")

运行结果:

 

案例二:

age = 16
print("------if判断开始-------")
if age >= 18:
    print("我成年了")
print("------if判断结束-------")

运行结果:

总结:以上两个案例仅仅是age变量的值不一样,导致结果却不同;能够看得出来if判断语句的作用:就是当满足一定条件时才会执行代码块语句,否则就不执行代码块语句。

注意:代码的缩进为一个tab键,或者4个空格

           在python开发中,Tab和空格不要混用

 2 if-else语句

格式如下:

if 要判断的条件:

        条件成立,要做的事情

        ......

else:

        条件不成立,要做的事情

        ......

练习:

  1. 输入用户年龄
  2. 判断是否满18岁(>=)
  3. 如果满18岁,提示你以成年
  4. 如果未满18岁,提示未成年
# 输入用户年龄
age = int(input("请输入年龄:"))  
# 判断是否满18岁(>=)
if age >= 18:
    # 如果满18岁,提示你以成年
    print("你以成年")
else:
    # 如果未满18岁,提示未成年
    print("未成年")
#这句代码无论条件是否成立都会执行
print("这句代码什么时候执行?")

输出结果:

 

 注意:在python中通过控制台输入的内容类型是是字符串类型,在python中要进行大于等于的比较必须是相同的数据类型

3 if嵌套

if 条件 1:

        条件 1 满足执行的代码

        ......

        if 条件 1 基础上的条件 2:

                条件 2 满足时,执行的代码

                ......

        # 条件 2 不满足的处理

        else:

                条件 2 不满足时,执行的代码

# 条件 1 不满足的处理

else:

        条件 1 不满足时,执行的代码

        ......

if的嵌套 演练 -- 火车站安检

需求:

  1. 定义布尔型变量has_ticket表示是否有车票
  2. 定义整型变量knife_length表示刀的长度,单位:厘米
  3. 首先检查是否有车票,如果有,才允许进行安检
  4. 安检时,需要检查刀的长度,判断是否超过20厘米
    • 如果超过20厘米,提示刀的长度,不允许上车
    • 如果不超过20厘米,安检通过
  5. 如果没有车票,不允许进门
# 定义布尔型变量has_ticket表示是否有车票
has_ticket = True

# 定义整型变量knife_length表示刀的长度,单位:厘米
knife_length = 30

# 首先检查是否有车票,如果有,才允许进行安检
if has_ticket:
    print("车票检查通过,准备开始安检")

    # 安检时,需要检查刀的长度,判断是否超过20厘米
    if knife_length > 20:
    # 如果超过20厘米,提示刀的长度,不允许上车
        print("你的刀太长,有%d厘米长" %knife_length)
        print("不允许上车")
    # 如果不超过20厘米,安检通过
    else:
        print("安检通过,欢迎乘车")
# 如果没有车票,不允许进门
else:
    print("请先买票,谢谢配合!!!")

4 elif的使用格式

当条件A满足时做事情1;当条件A不满足、条件B满足时做事情2;当条件B不满足、条件C满足时做事情3,那么该怎么实现呢? 通过使用elif

if  xxx1:

        事情1

elif xxx2:

        事情2

elif xxx3:

        事情3

说明:

  • 当xxx1满足时,执行事情1,然后整个if结束
  • 当xxx1不满足时,那么判断xxx2,如果xxx2满足,则执行事情2,然后整个if结束
  • 当xxx1不满足时,xxx2也不满足,如果xxx3满足,则执行事情3,然后整个if结束
choice = input('请输入你喜欢的游戏:')

if choice == '和平精英':
    print('特种兵加油!')
elif choice == '王者荣耀':
    print('敌军还有五秒到达战场')
elif choice == '英雄联盟':
    print('英雄们加油啊!')

 也可以和else一起使用:

if 性别为男性:

        输出男性的体重

        ...

elif 性别为女性:

        输出女性的体重

else:

        第三种性别的体重

        ...

说明:

  • 当”性别为男性“满足时,执行”输出男性的体重“的相关代码
  • 当”性别为男性“不满足时,如果”性别为女性“满足,则执行”输出女性的体重“的相关代码
  • 当”性别为男性“不满足,”性别为女性“也不满足,那么就默认执行else后面的代码,即”第三种性别的体重“相关代码

elif必须和if一起使用,否则出错

else一般用在最后,即所有条件都不满足时使用

5 循环语句

5.1 while语法

while 判断条件:

        代码块

while循环的语法结构与if语句的结构区别:

  • if语句只会执行一次判断条件,条件成立以后,只会执行一次代码块
  • while语句,会先执行一次判断条件,如果条件成立,会执行一次代码块,代码块执行完成以后,会再次判断条件语句,如果还成立,将会再执行代码语句...直到最后条件不成立,

例如:输出十遍hello world

i = 1
while i <= 10:
    print('hello world')
    i += 1 #一定要记得让 i += 1,否则会造成死循环

注意:
    1.初始化变量i
    2.循环条件的制定
    3.自增或者自减
例如:打印1-10的累加和

i = 1 #初始化变量i
total = 0 #用于求和
while i <= 10: # 条件在1-10以内
    total += i # 累加求和
    i += 1 # 一定要记得让 i += 1,否则会造成死循环
    print(total)

例如:用户登陆有三次机会

i = 3
while i >= 1:
    username = input('请输入用户名:')
    password = input('请输入密码:')

    #用户名是admin且密码是123456则身份验证成功否则验证失败
    if username == 'admin' and password == '123456':
        print('身份验证成功!')
        break
    else:
        print('身份验证失败!')
        i -= 1
        print(f'还有剩余{i}次机会')

运行结果:

5.2 for循环与基础语法

5.1.1 for循环的格式

for 临时变量 in 序列:

        循环满足条件时执行代码

 说明:

  1. for 、in、冒号 - 固定写法
  2. 变量  -自定义变量名,要求和单独定义变量的时候一样
  3. 序列  -容器型数据类型的数据,比如:字符串、列表、元组、集合...
    1. 数字和布尔都不属于序列
  4. 循环体 -需要重复执行的代码:结构上必须和for保持一个缩进
  • 遍历字符串:

for s in 'hello':
    print(s)

输出结果:

  • 换一种字符串的打印
str1 = 'abc'
for x in str1:
    print('今天你学习了吗?')

 输出结果:

 5.1.2 range()函数

range()函数通常是结合for使用的,单独使用没有什么意义

for x in range(5):
    print(x)

输出结果:

 如上图range(5)产生的序列是0-4之间的数字。如果换成range(10)那么打印的是0-9之间的数字。

其实range的用法非常灵活,如下:

  • range(101):可以用来产生0到100范围的整数,需要注意的是取不到101
  • range(1,101):可以用来产生1到100范围的整数,相当于前面是闭区间后面是开区间
  • range(1,101,2):可以用来产生1到100的奇数,其中2是步长,即每次数值递增的值
  • range(100,0,-2):可以用来产生100到1的偶数,其中-2是步长,即每次数字递减的值

实现1~100之间的偶数求和

total = 0
for x in range(2,101,2):
    total += x
print(total)

5.1.3 break和continue

break:表示跳出整个循环结构

continue:表示跳过本次循环后面的语句不执行,继续下一次循环

i = 0
while i <= 12:
    i += 1
    if i == 7 or i == 11:
        break
    print(i)

运行结果:

从上运行的结果,可以发现在7的时候就结束了循环,即使i == 11 也没有任何作用,因为在7的时候就结束了。

将break换成continue

i = 0
while i <= 12:
    i += 1
    if i == 7 or i == 11:
        continue
    print(i)

运行结果:

continue是在7和11的时候跳过没有打印数字。

注意:

  1. 在python中,break和continue只能用于循环语句中。
  2. break和continue在嵌套循环中使用时,只对最内层循环有效 

5.1.4 while和for与else的使用

在python中,循环语句还可以和else语句联合使用。

语法结构:

while 判断条件:

        条件成立时,循环体代码

else:

        循环后,不符合循环条件执行的代码

或者

for x in 序列:

      循环体代码

else:

        循环完所有序列,执行的代码

从上述结构中,我们可以看出,在非死循环中,正常情况下else里的语句都是会被执行的。那这个else语句到底有什么作用呢?一般情况下,循环语句和else共同出现时,在循环语句里都会配合break语句来使用。

i = 0
while i <= 12:
    if i == 7:
        break
    i += 1
    print(i)
else:
    print('循环条件不成立时执行的代码')

从上述代码中,执行后发现else代码没有被执行,因为只要循环没有顺利完成,中间被break中断了则else里面的内容就不会执行。

5.1.5 综合案例

掷骰子游戏

  1. 欢迎进入皇家游戏长
  2. 输入用户名,默认用户没有币
  3. 提示用户充值买币(100块钱30币,充值必须是 100的倍数,充值不成功可以再次充值)
  4. 玩一局游戏扣除2个币,猜大【两个骰子相加和大于6】、小【两个骰子相加和小于6】(系统用1-6之间的随机数模拟骰子产生值)
  5. 只要猜对了奖励1个币,可以继续玩(想不想继续玩,也可以没有金币自动退出)

代码参考:

import random
print('*' * 30)
print('欢迎进入澳门皇家娱乐城')
print('*'*30)

username = input('输入用户名:')
coins = 0

answer = input('是否加入"猜猜乐"游戏(yes/no)')

if answer == 'yes':
    #同意进入游戏
    while  True:
        num = int(input('%s!当前您的金币为%d! 请充值(100块钱30币,充值必须是100的倍数):' %(username,coins)))
        if num % 100 == 0 and num > 0:
            #充值成功
            coins += (num / 100) * 30

        else:
            print('充值失败!')
        ans = input('是否继续充值(yes/no)?')
        if ans == 'no': #not 5>3
            break
        print('当前金币数是:',coins)

        #开始玩
        print('玩一局扣除5个金币,进入游戏中……')

        #计数器
        count = 0

        #可以玩多局
        while True:
            #模拟两个骰子 使用随机数
            ran1 = random.randint(1,6)
            ran2 = random.randint(1,6)
            print(ran1)
            print(ran2)
            #扣金币
            coins -= 5

            #押大 押小 买定离手
            print('押大?押小?买定离手!')
            guess = input('输入大小:')

            #判断输赢 6 ,如果赢返3金币,玩5局送10个
            if(ran1 + ran2) > 6 and guess == '大' or (ran1 + ran2) <= 6 and guess == '小':
                #金币累加
                coins += 3
                print('恭喜!你赢了!当前金币数是:',coins)
            else:
                print('很遗憾!回去多加练习!当前金币数是:',coins)

            #计数的累加
            count += 1

            #送金币
            if count % 5 == 0:
                print('满五局送金币15个!!!')
                coins += 15

            #是否继续
            flag = input('是否再玩一局游戏(yes/no)?')
            if flag == 'no' or coins < 5:
                print('主动离开或者金币不足!')
                break
else:
    print('欢迎下次再来!!!')

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

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

相关文章

从零基础到网络安全专家:全网最全的网络安全学习路线

前言 网络安全知识体系非常广泛&#xff0c;涉及的领域也非常复杂&#xff0c;有时候即使有想法和热情&#xff0c;也不知道从何入手。 为了帮助那些想要进入网络安全行业的小伙伴们更快、更系统地学习网络安全知识&#xff0c;我制定了这份学习路线。本路线覆盖了网络安全的…

【C++】程序员必备知识:认识类与对象

【C】程序员必备知识&#xff1a;认识类与对象 ①.面向过程和面向对象②.类的引入③.类的定义Ⅰ.定义方式Ⅱ.命名规则建议&#xff1a; ④.类的访问限定符及封装Ⅰ.访问限定符Ⅱ.封装 ⑤.类的作用域⑥.类的实例化⑦.类的对象大小计算Ⅰ.如何计算&#xff1f;Ⅱ.类对象存储方式Ⅲ…

【物联网】初步认识了解MQTT

目录 一、MQTT是什么 二、MQTT的版本 两者之间的关系&#xff1a; ​编辑三、MQTT工作的基本原理 3.1、概念 MQTT客户端&#xff1a; MQTT服务端&#xff1a; MQTT主题&#xff1a; 以下面这个图为例进行解释&#xff1a; 3.2、MQTT订阅/发布主题的特点 相互可独立性…

【2023年五一数学建模竞赛C题】“双碳”目标下低碳建筑研究--完整思路和代码

1.问题背景与描述 赛题评析&#xff1a;这道题其实主要还是考察学生搜集资料的能力&#xff0c;可发挥空间大&#xff0c;适合小白快速上手 2.解题思路分析 2.1 问题一的分析 1.空调性能系数 2.热导系数 热导系数是指物质导热的能力&#xff0c;通常用单位时间内单位面积…

从STM32F407到AT32F407(一)

雅特力公司的MCU有着性能超群&#xff0c;价格优越的巨大优势&#xff0c;缺点是相关资料少一些&#xff0c;我们可以充分利用ST的现有资源来开发它。 我用雅特力的STM32F437开发板&#xff0c;使用原子 stm32f407的开发板自带程序&#xff0c;测试串口程序&#xff0c;原设定…

【网络安全】文件包含漏洞总结

目录&#xff1a; 介绍文件包含漏洞分类 LFIRFIPHP 的文件包含函数漏洞示例代码利用任意文件读取 使用 PHP 封装协议 php://filterphp://inputRFI getshellLFI文件上传 getshellLFI日志文件 getshellLFI/proc/self/environgetshellLFIphpinfo getshellLFIsession getshell绕过…

数据结构——队列的构建

在本次博客当中我们来学习一下队列的构建。首先来介绍一下队列。队列也是一种被限制的线性表。队列要求我们其中的元素只可以从队尾进入从队头出数据。也就是说我们先进入队列的数据就会先出队列。所以我们可以将我们的两种线性表改编成为我们的队列。话题又回到了我们两种线性…

算法记录 | Day44 动态规划

完全背包 有N件物品和一个最多能背重量为W的背包。第i件物品的重量是weight[i]&#xff0c;得到的价值是value[i] 。每件物品都有无限个&#xff08;也就是可以放入背包多次&#xff09;&#xff0c;求解将哪些物品装入背包里物品价值总和最大。 完全背包和01背包问题唯一不同…

【初学人工智能原理】【3】梯度下降和反向传播:能改(上)

前言 本文教程均来自b站【小白也能听懂的人工智能原理】&#xff0c;感兴趣的可自行到b站观看。 本文【原文】章节来自课程的对白&#xff0c;由于缺少图片可能无法理解&#xff0c;故放到了最后&#xff0c;建议直接看代码&#xff08;代码放到了前面&#xff09;。 代码实…

itop-3568开发板驱动学习笔记(24)设备树(三)时钟实例分析

《【北京迅为】itop-3568开发板驱动开发指南.pdf》 学习笔记 文章目录 生产者属性#clock-cells 属性clock-output-namesclock-frequencyassigned-clockclock-indicesassigned-clock-parents 消费者属性 设备树中的时钟信息以时钟树形式体现&#xff0c;时钟树包括时钟的属性和结…

C#_语言简介

目录 1. C# 简介 2. Visual Studio 窗口界面显示 1. C# 简介 什么是程序&#xff1f; 程序&#xff08;Program&#xff09;简单来说就是&#xff1a; 计算机是无法听懂我们人类的语言的&#xff0c;也可以说我们通过我们日常交流的语言是无法控制计算机的&#xff0c;计算机…

排序算法 - 快速排序

文章目录 快速排序介绍快速排序实现快速排序时间复杂度和稳定性快速排序稳定性快速排序时间复杂度 代码实现核心&总结 每日一道算法&#xff0c;提高脑力。第二天&#xff0c;快速排序。 快速排序介绍 它的基本思想是: 选择一个基准数&#xff0c;通过一趟排序将要排序的…

Spring容器技术

Spring容器技术 1. Spring核心容器介绍1.1 创建容器1.2 获取bean对象1.3 容器类层次结构1.4 BeanFactory 2. Spring核心容器总结2.1 容器相关2.2 bean相关2.3 依赖注入相关 1. Spring核心容器介绍 问题导入 问题&#xff1a;按照Bean名称获取Bean有什么弊端&#xff0c;按照B…

(七)ArcCatalog应用基础——图层操作与数据输出

&#xff08;七&#xff09;ArcCatalog应用基础——图层操作与数据输出 目录 &#xff08;七&#xff09;ArcCatalog应用基础——图层操作与数据输出 1.地图与图层操作1.1创建图层1.2设置文件特征1.3保存独立的图层文件 2.地理数据输出2.1输出为Shapefile2.2输出为Coverage2.3属…

[Spring]初始导读

1.Spring初始 1. 为什么要学框架 学习框架相当于从"小作坊"到"工厂"的升级 , 小作坊什么都要做 , 工厂是组件式装配 , 特点就是高效. 2.框架的优点展示(SpringBoot Vs Servlet) 使用SpringBoot 项目演示框架相比 Servlet 所具备的以下优点: 无需配置 …

KDZD电缆安全双枪刺扎器

一、产品背景 多年以来&#xff0c;电力电缆的维护迁移过程中的识别与刺孔&#xff0c;均按照行业标准DL409-91《电业安全工作规程&#xff08;电力线路部分&#xff09;》第234条要求&#xff0c;采用人工刺孔&#xff0c;一旦电缆识别出错&#xff0c;误刺孔带电电缆将对人身…

Win11调整分区大小的方法有哪些?

电脑磁盘分区的大小关系着我们的系统运行流畅、文件数据分门别类、磁盘空间充分利用等&#xff0c;是一个非常重要的工作。那么Win11调整分区大小的方法有哪些&#xff1f; 使用命令提示符 缩小分区 步骤1. 在搜索框中输入cmd并以管理员身份运行命令提示符。 步骤2. 依次输入…

分布式事务TCC 你真的理解了吗

TCC&#xff08;补偿事务&#xff09; TCC 属于目前比较火的一种柔性事务解决方案。TCC 这个概念最早诞生于数据库专家帕特 赫兰德&#xff08;Pat Helland&#xff09;于 2007 发表的 《Life beyond Distributed Transactions: an Apostate’s Opinion》 这篇论文&#xff0…

本地 WAF 已死,云 WAF 永生

多年来&#xff0c;Web 应用程序防火墙 (WAF) 一直是应用程序保护的代名词。事实上&#xff0c;许多应用程序安全团队认为保护其应用程序的最佳选择是一流的本地 WAF 解决方案&#xff0c;尤其是当这些应用程序部署在本地或私有云中时。 但自从引入本地 WAF 以来&#xff0c;…

授权码 + PKCE 模式|OIDC OAuth2.0 认证协议最佳实践系列【03】

​ 在上一篇文章中&#xff0c;我们介绍了 OIDC 授权码模式&#xff08;点击下方链接查看&#xff09;&#xff0c;本次我们将重点围绕 授权码 PKCE 模式&#xff08;Authorization Code With PKCE&#xff09;进行介绍 &#xff0c;从而让你的系统快速具备接入用户认证的标准…