【Python】Python学习笔记(三)条件语句

news2024/10/5 17:24:46

条件语句

Python中的条件语句与c/cpp基本无异。

if语句

基本结构见以下代码。
Python使用缩进控制if/else语句之间的嵌套关系。

#判断两数是否相等。

a = int(input('a:'))
b = int(input('b:'))

if a == b:
    print('Same')
else:
    print('No Same')

elif

代替了cpp中“else if”的写法,用缩进控制if/else语句的之间的嵌套关系,使得程序结构更加清晰。

#A progame has the ability to identify zero, positive number and negative number.

n = int(input('integer:'))

if n>0:
    print('positive number')
elif n==0:
    print('zero')
else:
    print('nagetive number')

Python中没有switch语句。

pass语句

占位的一个语句,没有实际作用,该语句不会执行,有点像Java里面的TODO标识。
与continue的区别:pass后的语句仍然会执行,而在循环中continue之后的语句均不会执行。

n = int(input('integer:'))

if n>0:
    print('integer')
elif n==0:
    pass
else:
    print('negative')

逻辑运算符

x and y:如果x为真,则结果为y求值后的结果;如果x为假,则结果为x的值。
x or y:如果x为真,则结果为x的值,如果x为假,则结果为y求值后的结果
not x:如果x为真,则结果为False,如果x为假,则结果为True。
与cpp的&&等逻辑运算符不大一样。
区别:c/cpp的逻辑运算结果为真和假,python的逻辑运算结果(and和or)为表达式中某一项的值。
共性:均采用短路求值的原理。
在这里插入图片描述
利用Python的这一语法特性,可以写一些花里胡哨的代码(个人觉得可读性很差)。

a = int(input('integer a:'))
b = int(input('integer b:'))

c = b != 0 and a % b
print(c, end='...')

if c:
    print('a不能被b整除。')
else:
    print('b等于0或者a能被b整除。')

这段代码运用了短路求值的原理。
如果b为0,则其不能作为除数,那么b!=0这一项为假,根据短路求值的原理,and后语句不会执行,and表达式返回b!=0的结果为False,在下面的if语句时会执行else代码片。
如果b不等于0,则执行and后语句a%b,and表达式返回a%b的值,即返回a除以b的余数。如果余数为0,则c为0,视为False,下方的代码执行else代码片,如果余数不为0,则c的值为余数,视为True,执行if语句。
这里有一个小知识点:

  • False、0、0.0、None、空值视为假。
  • 除了上述之外的值和True视为真。

条件运算符

x if y else z

如果y为真,则该表达式的值为x,否则为z。
比较一下cpp中的条件运算符

a ? b : c

如果a为真,则表达式的值为b,否则为c。
个人还是喜欢c/cpp的写法,更加简洁~(PS:也可能单纯是写习惯了)

n = int(input('整数:'))

print('该值为:' + '正数' if n > 0 else '零' if n == 0 else '负数')

这是一个实例,进行了条件运算符的嵌套。
但是实际上嵌套多了可读性会很差,不如写if/else语句。

多层嵌套if语句

Python中使用缩进来控制if语句的嵌套结构。

n = int(input('正整数:'))

if n > 0:
    if n % 2 == 0:
        print('该值为正偶数。')
    else:
        print('该值为正奇数。')
else:
    print('输入的值不为正数。')

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

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

相关文章

数据结构(顺序结构、链式结构、索引结构、散列结构)

文章目录 1.概述2.数据间逻辑关系3.数据的存储结构(或物理结构)3.1顺序结构3.2链式结构3.3索引结构3.4散列结构 4.运算结构 1.概述 数据结构,就是一种程序设计优化的方法论,研究数据的逻辑结构和物理结构以及它们之间相互关系&am…

STM32 DMA详解

1.DMA简介 DMA (Direct Memory Access) 直接存储器存取 DMA 可以提供外设和存储器或者存储器和存储器之间的高速数据传输,无须CPU干预,节省了CPU的资源( 比如想把Flash里的一批数据转运到SRAM里,需要软件触发,使用软件触发之后&a…

NAT网络地址转换技术入门到详解

本文目录 1、NAT简介1.1、SNAT 和IP伪装(Masquerade)1.2、DNAT1.3、Full NAT (也称为Full Cone NAT)1.4、PAT (也称为NAPT) 2、如何通过iptables将一台多网卡的主机配置成NAT路由器3、汇总 本文会从NAT的简介入手,详解NAT技术本身,通过本文,你…

巧用千寻位置GNSS软件| 电力线勘测如何实现?

正如大家所知,电力线勘测是在做电力线路设计之前对设计线路沿途自然环境进行勘察测量,最后把手簿测量数据在电脑端经过转换输出为电力软件专用格式数据的专用功能。 那么在千寻位置GNSS软件中该如何操作完成电力线的勘察测量呢? 点击【测量】…

市场岗位都在通缩,Framework开发就业环境怎么样?

随着 Android 设备的普及和应用领域的不断扩大,Android Framework 开发需求量将会持续增长,并且会越来越多地向行业、企业级应用和系统优化等方向发展。以下是一些 Android Framework 开发相关的应用场景: 特定垂直领域的智能设备&#xff1…

写最好的Nacos Server稳定版(nacos-server-2.1.1)在Centos、Docker和Windows上安装部署(单机、集群)教程

写最好的Nacos Server稳定版(nacos-server-2.1.1)在Centos、Docker和Windows上安装部署(单机、集群)教程 一、前言二、Nacos Server在 Centos7 安装部署(单机模式)2.1 下载 nacos-server-2.1.1 安装包2.1.1…

Matplotlib绘图库的高级使用

Matplotlib绘图库的高级使用 Matplotlib的三层结构容器层辅助显示层图像层 Matplotlib的绘图配置设置画布属性绘图保存自定义x与y刻度解决中文显示异常网格显示多次plot绘图标记显示图例多个坐标系显示 Matplotlib的三层结构 Matplotlib从层次结构上分,可以分为三层…

在线安装QT5.15.2+VS2019-16.11.26

在线安装QT5.15.2VS2019-16.11.26 一、安装QT5 官方下载: https://download.qt.io/archive/online_installers/4.5/ 选择【qt-unified-windows-x64-4.5.2-online.exe】 登录账户 需要提前注册,过程省略。 安装位置(自定义) …

GitHub Repo

GitHub Repo 之前笔记写了 git 和 gitup(pullpush),这里记一下 giehub repo 二三事。 权限 我不是很确定 github 的企业版是什么样的,不过我们用的是 gitlab 的企业版,这个是需要通过 vpn 才能连接的,如…

【C语言】基础语法6:字符串和字符处理

上一篇:数组和指针 下一篇:文件操作 ❤️‍🔥前情提要❤️‍🔥   欢迎来到C语言基本语法教程   在本专栏结束后会将所有内容整理成思维导图(结束换链接)并免费提供给大家学习,希望大家纠错…

redis7 安装 与 启动

文章目录 1. redis 的 概述2. redis 的 安装3. redis 的启动4. redis 的卸载 1. redis 的 概述 redis : 是 远程 词典服务器 ,是 一个基于内存的 键值型 Nosql 数据库. 官方解释 : Remote Dictionary Server(远程字典服务)是完全开源的,使用ANSIC语言编写…

QMS-云质说质量 - 6 中小企业常用的结构化问题解决方法有哪些?

云质QMS原创 转载请注明来源 作者:王洪石 引言 爱因斯坦如何解决问题 面对问题时,有的人可能很盲目地开始行动,干到一定程度,却突然发现自己所做的是无用功。 有人问过科学巨匠爱因斯坦,如果给他一个关系到他生命的问…

R基础函数概览(一)

rep 函数形式:rep(x, time , length , each ,) 参数说明: x:代表的是你要进行复制的对象,可以是一个向量或者是一个因子。 times:代表的是复制的次数,只能为正数。负数以及NA值都会为错误值。复制是指的…

[oeasy]python0139_尝试捕获异常_ try_except_traceback

尝试捕获异常 回忆上次内容 变量相加 整型数字变量可以相加字符串变量也可以拼接 但是 字符串 和 整型数字整型数字 和 字符串不能相加 怎么办? 转格式int(“1”)str(2) 可是 如果输入的苹果数量是 字符串"abc" int(“abc”)会发生什么?&…

通信算法之149:EVM测量

1.星座图 h scatterplot(sqrt(sps)*txSig(sps*span1:end-sps*span),sps,offset); hold on scatterplot(rxSigFilt(span1:end-span),n,offset,bx,h) scatterplot(dataMod,n,offset,r,h) legend(Transmit Signal,Received Signal,Ideal,location,best) 2. 眼图 Eye Diagram D…

华为OD机试真题(Java),简单密码(100%通过+复盘思路)

一、题目描述 现在有一种密码变换算法。 九键手机键盘上的数字与字母的对应: 1--1, abc--2, def--3, ghi--4, jkl--5, mno--6, pqrs--7, tuv--8 wxyz--9, 0--0,把密码中出现的小写字母都变成九键键盘对应的数字,如:a …

C++ -4- 类和对象(下)

文章目录 1.初始化列表什么是初始化列表?初始化列表的 意义及使用 2.explicit关键字单参数构造函数(C98)多参数的构造函数(C11)(了解) 3.static静态成员静态成员变量与静态成员函数静态成员变量…

Java并发(三)----创建线程的三种方式及查看进程线程

一、直接使用 Thread // 创建线程对象 Thread t new Thread() {public void run() {// 要执行的任务} }; // 启动线程 t.start(); 例如: // 构造方法的参数是给线程指定名字,推荐 Thread t1 new Thread("t1") {Override// run 方法内实现…

Codeforces Round 864 (Div. 2)(A~D)

A. Li Hua and Maze 给出两个不相邻的点,最少需要堵上几个方格,才能使得两个方格之间不能互相到达。 思路:显然,对于不邻任何边界的方格来说,最少需要的是4,即上下左右都堵上;邻一个边界就-1&a…

Python樱花树

文章目录 前言一、Turtle基础1.1 Turtle画板1.2 Turtle画笔1.3 Turtle画图1.4 Turtle填色1.5 Turtle写字 二、Python樱花树2.1 樱花类2.2 樱花树2.3 主函数2.4 程序分析2.5 樱花林 尾声 前言 粉色系最爱!Python樱花树等你获取~ 哈喽小伙伴们好久不见啦,…