python28-Python的运算符之三目运算符

Python可通过if语句来实现三目运算符的功能,因此可以近似地把这种if语句当成三目运算符。作为三目运算符的f语句的语法格式如下

True_statements if expression else False_statements

三目运算符的规则是:先对逻辑表达式expression求值,如果逻辑表达式返回True,则执行并返回True statements的值;如果逻辑表达式返回 False,则执行并返回False statements的值。看如下代码。

# !/usr/bin/env python

# -*- coding: utf-8 -*-

# @Time : 2024/01

# @Author : Laopi

a = 7

b = 4

c = "a大于b" if a > b else "a不大于b"

# 输出"a大于b"

print(c)

实际上,如果只是为了在控制台输出提示信息,还可以将上面的三目运算符表达式改为如下形式(程序清单同上)。

# 输出"a大于b"

print("a大于b") if a > b else print("a不大于b")

Python允许在三目运算符的True statements或False statements中放置多条语句。Python主要支持两种放置方式。

1)多条语句以英文逗号隔开:每条语句都会执行,程序返回多条语句的返回值组成的元组.

2)多条语句以英文分号隔开:每条语句都会执行,程序只返回第一条语句的返回值。

#第一种返回值部分使用两条语句,用逗号隔开

d = print('测试划水老师傅'),'a大于b' if a>b else 'a不大于b'

print(d) #(None, 'a大于b')

上面程序中True statements为print('测试划水老师傅'),a大于b这两条语句都会执行,程序将会返回这两条语句的返回值组成的元组。由于 print()函数没有返回值组成的元组,由于print()函数没有返回值,相当于它的返回值是 None。运行上面代码,将看到如下结果。

#第一个返回值部分使用两条语句,用分号隔开

d = print('测试划水老师傅');x ='a大于b' if a>b else 'a不大于b'

print(d) #(None, 'a大于b')

print(x)

此时虽然Truestatements包含两条语句,但程序只会返回第一条语句print('测试划水老师傅')的返回值,该语句同样返回None,因此相当于str 的返回值为None。运行上面代码,将看到如下结果。

需要指出的是,三目运算符支持嵌套,通过嵌套三目运算符,可以执行更复杂的判断。例如,

下面代码需要判断c、d两个变量的大小关系:

#下面将输出“e=f”

print("e大于f") if e>f else (print("e小于f") if e<f else print("e等于f"))

上面代码首先对e>f求值,如果该表达式为True,程序将会执行并返回第一个表达式:print("e大于f");否则系统将会计算else后面的内容:(print("e小于f") if e<f else print("e等于f")),这个表达式又是一个嵌套的三目运算符表达式一注意,进入该表达式时只剩下"e小于f"或"e等于f"两种情况,因此该三目运算符再次判断e<f,如果该表达式为 True,将会输出"e小于f"否则只剩下"e等于f"一种情况,自然就输出该字符串了。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java实现数据可视化的智慧河南大屏 JAVA+Vue+SpringBoot+MySQL

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示四、核心代码4.1 数据模块 A4.2 数据模块 B4.3 数据模块 C4.4 数据模块 D4.5 数据模块 E 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的数据可视化的智慧河南大屏&#xff0c;包含了GDP、…

学习好并用好大模型

大模型是个好东西&#xff0c;学好并用好益处多多~ 1. 运用大模型服务我们的工作 运用大模型服务于工作&#xff0c;可以从以下几个方面着手&#xff1a; 知识管理与检索&#xff1a; 利用大模型强大的自然语言处理能力&#xff0c;建立企业内部的知识库系统。员工可以通过提问…

python flask 魔术方法

魔术方法作用_init_对象的初始化方法_class_返回对象所属的类_module_返回类所在的模块_mro_返回类的调用顺序&#xff0c;可以找到其父类&#xff08;用于找父类&#xff09;_base_获取类的直接父类&#xff08;用于找父类&#xff09;_bases_获取父类的元组&#xff0c;按它们…

Flask 入门6:模板继承

1. 一个网站中&#xff0c;大部分网页的模块是重复的&#xff0c;比如顶部的导航栏&#xff0c;底部的备案信息。如果在每个页面中都重复的去写这些代码&#xff0c;会让项目变得臃肿&#xff0c;提高后期的维护成本。比较好的做法是&#xff0c;通过模板继承&#xff0c;把一…

MCU+SFU视频会议一体化,视频监控,指挥调度(AR远程协助)媒体中心解决方案。

视频互动应用已经是政务和协同办公必备系统&#xff0c;早期的分模块&#xff0c;分散的视频应该不能满足业务需要&#xff0c;需要把视频监控&#xff0c;会议&#xff0c;录存一体把视频资源整合起来&#xff0c;根据客户需求&#xff0c;需要能够多方视频互动&#xff0c;直…

Spring Batch 批处理框架适配达梦数据库,实现从文件批量读取写入数据库(完整教程)

效果展示(达梦数据库): 技术简介: Spring Batch 是一个基于 Spring 的批处理框架,用于开发和执行大规模、高性能、可靠的批处理应用程序。它提供了丰富的功能和组件,用于处理复杂的批处理任务,例如大数据ETL(Extract-Transform-Load)、数据清洗、数据迁移、报表生成…

EV1527协议应用

EV1527协议应用 EV1527 帧结构解码原理实现代码 EV1527 帧结构 EV1527 每帧数据由同步码和 24 位的数据码组成&#xff0c;数据码又分为地址码&#xff08;20 位&#xff09;和按键码&#xff08;4 位&#xff09;。 以 433Mhz EV1527 遥控器为例&#xff0c;遥控波形如下。 …

TOP100 二叉树(二)

7.108. 将有序数组转换为二叉搜索树 给你一个整数数组 nums &#xff0c;其中元素已经按 升序 排列&#xff0c;请你将其转换为一棵 高度平衡 二叉搜索树。 高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。 示例 1&#xff1a; 输入…

闲聊电脑(6)装个 Windows(二)

闲聊电脑&#xff08;6&#xff09;装个 Windows&#xff08;二&#xff09; 夜深人静&#xff0c;万籁俱寂&#xff0c;老郭趴在电脑桌上打盹&#xff0c;桌子上的小黄鸭和桌子旁的冰箱又开始窃窃私语…… 小黄鸭&#xff1a;冰箱大哥&#xff0c;上次说的镜像文件到底长啥样…

【华为 ICT HCIA eNSP 习题汇总】——题目集13

1、以下在项目规划阶段中需要完成的工作是&#xff08;&#xff09;。 A、确定技术方案 B、了解项目背景 C、选择网络产品 D、规划 IP 地址 考点&#xff1a;网络规划与设计 解析&#xff1a;&#xff08;B&#xff09; 确定技术方案是在网络规划的设计阶段完成的工作&#xff…

Anaconda的安装及其配置

一、简介 Anaconda是一个开源的包、环境管理器&#xff0c;主要具有以下功能和特点&#xff1a; 提供conda包管理工具&#xff1a;可以方便地创建、管理和分享Python环境&#xff0c;用户可以根据自己的需要创建不同的环境&#xff0c;每个环境都可以拥有自己的Python版本、库…

c#cad 创建-直线(五)

运行环境 vs2022 c# cad2016 调试成功 一、代码说明 这段代码是用于在AutoCAD中创建一条直线。首先获取当前活动文档和数据库的引用&#xff0c;然后创建一个编辑器对象用于提示用户输入。接下来&#xff0c;在一个事务中获取模型空间的块表记录&#xff0c;并定义直线的长度…

【Git】06 常用场景

文章目录 前言一、场景11.1 删除分支1.2 修改message信息1.2.1 最新一次commit的message1.2.2 过去commit的message 1.3 合并commit1.3.1 多个连续commit合并1.3.2 不连续commit合并 二、场景22.1 比较暂存区和HEAD所含文件的差异2.2 比较工作区和暂存区所含文件的差异2.3 将暂…

113.乐理基础-五线谱-五线谱的调号(二)

内容参考于&#xff1a;三分钟音乐社 上一个内容&#xff1a;五线谱的调号&#xff08;一&#xff09;-CSDN博客 调号一共有15个&#xff1a;如下图 上一个内容里写了&#xff0c;C、D、E、F、G、A、B这七个调号&#xff0c;如下图 然后所有调号的五线谱版本&#xff1a; 然后…

单片机向PC发送数据

#include<reg51.h> //包含单片机寄存器的头文件 unsigned char code Tab[ ]{0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F}; //流水灯控制码&#xff0c;该数组被定义为全局变量 /***************************************************** 函数功能&#xff1a;向PC发送…

html从零开始3-css【搬代码】

css简介 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width, in…

代码随想录算法训练营第45天|139.单词拆分、多重背包、背包问题总结

文章目录 139.单词拆分思路代码 多重背包思路代码 背包问题总结思路代码 139.单词拆分 题目链接&#xff1a;139.单词拆分 文章讲解&#xff1a;代码随想录|139.单词拆分 视频讲解&#xff1a;139.单词拆分 思路 按照双指针思路直接想这题更好理解&#xff0c;用动态规划五部曲…

StringBuilder类常用方法(Java)

StringBuilder类常用方法 StringBuilder 是 Java 中常用的字符串缓冲区类&#xff0c;适用于频繁修改字符串的场景。 1. append(): 将指定字符串、字符、布尔值或其他数据类型的表示追加到字符串缓冲区的末尾。 StringBuilder sb new StringBuilder("Hello"); sb.…

《数电》理论笔记-第2章-组合逻辑电路

一&#xff0c;集成门电路 1TTL门电路 TTL门电路中双极型三极管构成,它的特点是速度快、抗静电能力强集成度低、功耗大&#xff0c; 目前广泛应用于中、小规模集成电路中。 TTL门电路有 74 (商用) 和 54 (军用) 两大系列&#xff0c;每个系列中又有若干子系列。 2 CMOS门电路 …

雨云EPYC7702服务器上线了!适合幻兽帕鲁开服的VPS!雨云EPYC7702高防VPS性能测评

雨云游戏云上线了AMD EPYC 7702的VPS服务器&#xff0c;中等水平的单核性能&#xff0c;适合开幻兽帕鲁和我的世界1.17以下版本的服务器。 AMD Epyc 7702是一款64核心128线程&#xff0c;基础频率2.00 GHz加速频率高达3.35 GHz处理器&#xff0c;凭借着7 nm工艺及新一代Rome (…