首页 > 编程语言 >Python 基础知识 之 选择(分支)结构 + 模式匹配结构(match)

Python 基础知识 之 选择(分支)结构 + 模式匹配结构(match)

时间:2025-01-12 19:21:34浏览次数:1  
标签:case 语句 Python else match eval print input 模式匹配

选择结构

  • 按照条件选择执行不同的代码段

1. 单分支结构if语法结构

image

  • 执行流程:如果表达式的值为True,就执行语句块,如果表达式的值为False,就跳过语句块,继续执行下面的语句 ⭐

  • 注意: ⭐⭐⭐

  1. 表达式后面的冒号
  2. 缩进,python中通过缩进来控制程序逻辑
  • 示例;
# 1. 判断是否中奖
number = eval(input('请输入您的6位中将号码:'))  #eval将输入的类型(字符型)转化为int类型
# 使用if语句
if number == 987654: #等值判断
    print('中奖了')

if number != 987654:
    print('您未中奖')
# 以上if判断的表达式,是通过比较运算符计算出来的,结果是布尔类型
--------------------------------------------------------------------------
# 2. 判断奇偶数
n = 98 # 赋值操作

if n % 2:    # %取余操作 ,98%2的余数为0,0的布尔值为False,非0的布尔值为True
    print('n是偶数')
else:
    print('n是计数')

n = 98 # 赋值操作

if not n % 2:   #not取反  not False的结果为True
    print('n是偶数')
else:
    print('n是奇数')
------------------------------------------------
# 3.  判断一个字符串是否为空字符串
x = input('请输入一个字符串:')
if x: #在python中一切皆对象,每个对象都有一个布尔值,而非空字符串的布尔值是True,空字符串的布尔值为False
    print('x是一个非空字符串')

if not x:
    print('x是一个空字符串')
----------------------------------------------------
# 4. 表达式也可以是一个单纯的布尔类型

flag = eval(input('请输入一个布尔类型True or False:')) #注意input输入的类型为str,
if flag:
    print('flag的值为True')
if not flag:
    print('flag的值为False')
	
# 5. 使用if语句时,如果语句块中只有一句代码,可以将语句块直接写在冒号后面
a=10
b=8
if a>b:max = a                    ==> if a>b:
print('a和b的最大值为:',max)             max = a

2. 双分支结构if···else···语法结构

image

  • 示例:
# 1. 判断中奖
  使用if···else··语句
number = eval(input('请输入6位中奖号码:'))
if number == 987654: #等值判断
    print('中奖了')
else:
    print('您未中奖')
精简版:print('您中奖了' if number == 987654 else '您未中奖') #如果判断成立,输出if之前的语句,如果不成立,输出if之后的语句
----------------------------------------------------------
# 2. 判断生日那年的
birth = eval(input('birth: '))
if birth < 2000:
    print('00qian')
else:
    print('00hou')

3. 多分支结构

  • 多选一执行
    image
  • 示例
# 1. 判断bmi是否正常
tall = 1.78
weight = 60
bmi = (weight / tall **2 )
print (bmi)
if bmi < 18.5:
    print ('too thin')
elif 18.5 < bmi <25:
    print ('normal')
elif 25 < bmi <28:
    print('too weight')
elif 28< bmi <32:
    print ('fat')
else:
    print ('too fat')
-------------------------------------------------
# 2. 判断年龄
age = eval(input('age: '))
if (age < 6):
    print ("kid")
elif age < 18:
    print ('teenager')
else:
    print ('adult')
-------------------------------------------------------
# 3. 判断成绩
score = eval(input('请输入您的成绩:'))
if score < 0 or score > 100:
    print('成绩有误')
elif 90<= score<=100:
    print('A')
elif 80 <= score <= 90:
    print('B')
elif 70 <= score <= 80:
    print('C')
elif 60 <= score <= 70:
    print('D')
else:
    print('E')

4. 嵌套if使用

  • 单分支结构、双分支结构和多分支结构在实际开发中是可以互相嵌套使用的,内层的分支结构将作为外层分支结构的语句块使用
    image
  • 示例:
# 判断酒驾
answer = input("请问您喝酒了嘛?")
if answer == "y" or "Y":
    proof=eval(input('酒精含量:'))
    if proof < 20:
        print('构不成酒驾,祝您一路平安')
    elif proof < 80:  # 20<=proof<80
        print('已构成醉驾标准,请不要开车')
    else:
        print('已达到酒驾')
else:
    print('go')

5. 多个条件的连接

  • and(同时满足),or(其中之一满足)
  • 示例:
# 1. 使用and连接多个选择条件 (登录案例)
user_name = input('请输入用户名:')
pwd = input('请输入您的密码:')
if user_name == 'kyle' and pwd =='666':
    print('登录成功')
else:
    if user_name != 'kyle':
        print('用户名不对')
    else:
        print('密码不对')
---------------------------------------------------------
# 2. 使用or连接多个选择条件 (成绩案例)
score = eval(input('请输入您的成绩:'))
if score < 0 or score >100:
    print('成绩无效')
else:
    if 90 <= score <= 100:
        print(score,'A')
    elif 80 <= score <= 90:
        print(score,'B')
    elif 70 <= score <= 80:
        print(score,'C')
    elif 60 <= score <= 70:
        print(score,'D')
    else:
        print(score,'E')

模式匹配结构(match)

  • match ,case
  • 示例:
# 1. 判断年龄
# age = 20
age = eval(input('请输入您的年龄:'))
match age:
   case x if x < 10:
       print(f'< 10 years old: {x}','kid')
   case 10:
       print('10 years old.','children')
   case 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18:
       print('11~18 years old.','teenager')
   case _:
       print(age,'years old.','adult')
# 2. 判断成绩等级
score = input('请输入您的成绩等级:')
match score:
    case 'A'|'a':
        print('优秀')
    case 'B'|'b':
        print('良好')
    case 'C'|'c':
        print('及格')
    case 'D'|'d':
        print('差')

标签:case,语句,Python,else,match,eval,print,input,模式匹配
From: https://www.cnblogs.com/kyle-7Qc/p/18667185

相关文章

  • Python库房管理系统开发指南
    在现代仓储管理中,高效、准确的信息系统是提高运营效率的关键。Python作为一种强大且易于学习的编程语言,非常适合用来开发简易而功能齐全的库房管理系统。本文将详细介绍如何使用Python编写一个基本的库房管理系统,包括商品入库、出库、查询库存及生成报表等功能。通过本文,读者不仅......
  • Python 魔法学院 - 第18篇:Python 多线程 ⭐⭐⭐
    目录引言1.多线程编程基础1.1什么是多线程?1.2为什么需要多线程?1.3Python中的多线程模块2.创建和启动线程2.1使用`threading.Thread`创建线程2.2使用`target`参数创建线程3.线程同步3.1为什么需要线程同步?3.2使用`Lock`实现线程同步3.3使用`RLock`......
  • Python教程丨Python环境搭建 (含IDE安装)——保姆级教程!
    工欲善其事,必先利其器。学习Python的第一步不要再加收藏夹了!提高执行力,先给自己装好Python。1.Python下载1.1.下载安装包既然要下载Python,我们直接进入python官网下载即可Python官网:WelcometoPython.org注意不要通过搜索引擎进入Python下载助手之类的广告网站!......
  • Python 网络爬虫全面指南
    ......
  • C++、Python、Java、JavaScript的fill函数使用
    C++在C++中,std::fill函数用于将指定的值赋给容器或数组中给定范围内的所有元素。它定义在<algorithm>头文件中,函数原型如下:template<classForwardIterator,classT>voidfill(ForwardIteratorfirst,ForwardIteratorlast,constT&value);ForwardIterator:前向迭代......
  • 了解Python中的SciPy库
    什么是SciPy?SciPy(发音为“SighPie”)是ScientificPython的首字母缩写词,它是Python的开源库,用于科学和技术计算。它是Python编程语言中称为Numpy的基本数组处理库的扩展,旨在支持高级科学和工程计算。为什么使用SciPy?它基本上是Python编程语言的扩展,用于提供......
  • 淘宝商品搜索神器:Python代码实现item_search API调用
    在电商蓬勃发展的今天,淘宝作为国内领先的购物平台,拥有海量商品信息。对于商家、消费者以及市场分析师来说,能够快速、准确地获取淘宝商品数据至关重要。淘宝开放平台提供了丰富的API接口,其中item_search接口便是按关键字搜索商品的利器。本文将详细介绍如何使用Python代码调用淘宝i......
  • 利用Python爬虫获取item_search_shop-获得店铺的所有商品API接口
    在电子商务领域,获取店铺的所有商品信息对于市场分析、竞品研究和用户体验优化至关重要。淘宝开放平台提供了丰富的API接口,其中item_search_shop接口允许开发者获取指定店铺的所有商品信息。本文将详细介绍如何使用Python爬虫技术调用该API接口,并对获取到的数据进行分析和应用。一......
  • Python · MuJoCo | MuJoCo 与 mujoco_py 的版本对应,以及安装 Cython<3
    0系统环境&需求环境:LinuxUbuntu20.04,Cuda12.2(?)也可能是11,我不是很清楚驱动版本…需求:安装gym、dm_control、MuJoCo和mujoco_py。参考博客:知乎|Mujoco&Mujoco-py安装教程以及常见报错解决方法(非常感谢......
  • python中国科学院院士图片+文本爬虫代码
    1.爬取网页https://www.cae.cn/cae/html/main/col48/column_48_1.html 2.爬虫思路 1.网页源码分析,判断网页是动态网页与静态网页(改网页位静态网页)2.获取每位院士网页地址3.进入网页查看院士图片地址,与院士文本介绍内容,(利用re库解析网页)4.数据存储,图片存储,注意保存图片......