3.Booleans and Conditionals

Booleans

Python有bool类型数据,有两种取值:True 和 False.

[1]

x = True
print(x)
print(type(x))
True
<class 'bool'>

我们通常从布尔运算符中获取布尔值,而不是直接在我们的代码中放入True或False。 这些是回答yes或no的运算符。 我们将在下面介绍其中一些运算符。

Comparsion Operations

OperationDescription OperationDescription
a == ba equal to b a != ba not equal to b
a < ba less than b a > ba greater than b
a <= ba less than or equal to b a >= ba greater than or equal to b

[2]

def can_run_for_president(age):"""Can someone of the given age run for president in the US?"""#The US constitution says you must "have attained to the Age of the thirty-five years"return age >= 35print("Can a 19-year-old run for president?", can_run_for_president(19))print("Can a 45-year-old run for president?", can_run_for_presidnet(45))
Can a 19-year-old run for president? False
Can a 45-year-old run for president? True

比较运算有点聪明......

[3]

3.0 == 3
True

但不是很聪明...

[4]

'3' == 3
True

比较运算符可以与我们已经看到的算术运算符组合,以表达无限的数学测试范围。 例如,我们可以通过模2运算来检查数字是否为奇数:

[5]

def is_odd(n):return (n % 2) == 1print("Is 100 odd?", is_odd(100))
print("Is -1 odd?", is_odd(-1))
Is 100 odd? False
Is -1 odd? True

在进行比较时,请记住使用==而不是=。 如果你写n == 2,你会问n的值是否与2相等。 当你写n = 2时,你正在改变n的值。

Combining Boolean Values

Python使用“and”,“or”和“not”的标准概念组合布尔值的运算符。 事实上,相应的Python运算符只使用这些单词:and,or ,not。
有了这些,我们可以使我们的can_run_for_president函数更准确。

[6]

def can_run_for_president(age, is_natural_born_citizen):"""Can someone of the given age and citizenship status run for president in the US?"""# The US Constitution says you must be a natural born citizen *and* at least 35 years oldprint(can_run_for_president(19, True))print(can_run_for_president(55, False))print(can_run_for_president(55, True))
False
False
True

你能猜出这个表达式的值吗?

[7]

True or True and False
Ture

Python具有优先级规则,用于确定在上述表达式中运算的顺序。 例如,and优先级高于or,这就是上面第一个表达式为True的原因。 如果我们从左到右对它进行运算,我们首先计算True或True(即True),然后计算and False,得到最终值为False。
您可以尝试记住优先顺序,但更安全的选择是使用自由括号。 这不仅有助于防止错误,还可以使您的意图更清晰,任何人都可以阅读您的代码。
例如,请考虑以下表达式:

prepared_for_weather = have_umbrella or rain_level < 5 and have_hood or not rain_level > 0 and is_workday

我会说今天的天气很安全....

  •      如果我有一把伞......
  •      或者雨下的不是很大,我有一个帽子.....
  •      否则,我仍然很好,除非正在下雨,这但是一个工作日

但不仅仅是我的代码很难阅读,还有一个问题,我们可以通过添加一些括号来解决这两个问题。

prepared_for_weather = have_umbrella or (rain_level < 5 and have_hood) or not (rain_level > 0 and is_workday)

你还可以添加更多的括号,如果你认为这有助于可读性:

prepared_for_weather = have_umbrella or ((rain_level < 5) and have_hood) or (not (rain_level > 0 and is_workday))

我们也可以将它拆分成多行来强调上面描述的3部分结构:

prepared_for_weather = (have_umbrella or ((rain_level < 5) and have_hood) or (not (rain_level > 0 and is_workday))
)

Conditionals

虽然它们本身就足够有用,但是当与条件语句结合使用时,使用关键字if,elif和else,布尔语句真的开始闪耀。
条件语句(通常称为if-then语句)允许程序员根据某些布尔条件执行某些代码段。 Python条件语句的基本示例是:

[8]

def inspect(x):if x == 0:print(x, "is zero")elif x > 0:print(x, "is positive")elif x < 0:print(x, "is negative")else:print(x, "is unlike anything I've ever seen...")inspect(0)
inspect(-15)
0 is zero
-15 is negative

Python采用经常用于其它语言的if和else; 它更独特的关键词是elif,是“else if”的缩写。 在这些条件子句中,elif和else块是可选的; 此外,您可以包含任意数量的elif语句。

请特别注意使用冒号(:)和空格来表示单独的代码块。 这与我们定义函数时发生的情况类似 - 函数头以:结尾,后面的行用4个空格缩进。 所有后续的缩进行都属于函数体,直到我们遇到一条未缩进的行,结束函数定义。

[9]

def f(x):if x > 0:print("Only printed when x is positive; x = ", x)print("Also only printed when x is positive; x = ", x)print("Always printed, regardless of x's value; x = ", x)f(1)
f(0)
Only printed when x is positive; x = 1
Also only printed when x is positive; x = 1
Always printed, regardless of x's value; x = 1
Always printed, regardless of x's value; x = 0

Boolean conversion

我们已经看到了int(),它将事物变成了int,而float()将事物变成了浮点数,所以你可能不会惊讶于Python有一个bool()函数可以将事物变成bool。

[10]

print(bool(1)) # all numbers are treated as true, except 0
print(bool(0))
print(bool("asf")) # all strings are treated as true, except the empty string ""
print(bool(""))
# Generally empty sequences (strings, lists, and other types we've yet to see like lists and tuples)
# are "falsey" and the rest are "truthy"
True
False
True
False

如果条件语句和其他需要布尔值的地方,我们可以使用非布尔对象。 Python将隐式将它们视为相应的布尔值:

[11]

if 0:print(0)
elif "spam":print("spam")
spam

Conditional expressions(aka 'ternary')

根据某些条件将变量设置为两个值中的任何一个是一种常见的模式。

[12]

def quiz_message(grade):if grade < 50:outcome = 'failed'else:outcome = 'passed'print('You', outcome, 'the quiz with a grade of', grade)quiz_message(80)
You passed the quiz with a grade of 80

Python有一个方便的单行“条件表达式”语法来简化这些情况:

[13]

def quiz_message(grade):outcome = 'failed' if grade < 50 else 'passed'print('You', outcome, 'the quiz with a grade of', grade)quiz_message(45)
You failed the quiz with a grade of 45

您可能会认为这类似于许多其他语言中存在的三元运算符。 例如,在javascript中,我们将上面的赋值写为`var outcome = grade <50? 'failed':'passed'。 (说到可读性,我认为Python在这里是赢家。)

Your turn!

转到练习笔记本,以获得一些boolean和conditionals的实践练习。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

相关文章

能利用计算机来模拟某种真实的实验现象,自然现象或社会现象的课件是,《计算机辅助教学》课程复习资料...

考试资料《计算机辅助教学》课程复习资料一、单项选择题1. 教学软件又称为 A 。A.课件 B.多媒体 C.操作系统 D.应用软件2. 继课件之后的第二代教学软件称为 A 。A积件 B.课件 C.网络课件 D.智能型课件3. 建构主义学习理论强调认知主体是 B 。A. 教师 B. 学习者 C. 教务 D. 辅导…

【洛谷 - P3376 】【模板】网络最大流

题干&#xff1a; 如题&#xff0c;给出一个网络图&#xff0c;以及其源点和汇点&#xff0c;求出其网络最大流。 输入输出格式 输入格式&#xff1a; 第一行包含四个正整数N、M、S、T&#xff0c;分别表示点的个数、有向边的个数、源点序号、汇点序号。 接下来M行每行包含…

4.Lists

Lists Python中的列表表示有序的值。 可以使用方括号来定义&#xff0c;变量值之间用逗号隔开。 例如&#xff0c;这是几个素数的列表&#xff1a; [1] primes [2, 3, 5, 7] 我们可以将其他类型的东西放在列表中&#xff1a; [2] planets [Mercury, Venus, Earth, Mars…

怎么用计算机拟合数据,数据拟合的几个应用实例-毕业论文.doc

本科毕业设计(论文)数据拟合的几个使用实例燕 山 大 学年 月本科毕业设计(论文)数据拟合的几个使用实例学 院&#xff1a;专 业&#xff1a;学生姓名&#xff1a;学 号&#xff1a;指导教师&#xff1a;答辩日期&#xff1a;燕山大学毕业设计任务书学院&#xff1a; 系级教学单…

1.UNIX网络编程卷1:源码配置

本节主要介绍UNIX网络编程卷1&#xff08;第三版&#xff09;在Ubuntu16.04的配置问题&#xff0c;并运行一个简单时间获取客户程序。 1.首先下载源文件&#xff0c;链接如下&#xff1a;UNIX Network Programming Source Code 2.将下载好的压缩文件unpv13e.tar.gz解压&#…

【牛客 - 696C】小w的禁忌与小G的长诗(dp 或 推公式容斥)

题干&#xff1a; 链接&#xff1a;https://ac.nowcoder.com/acm/contest/696/C 来源&#xff1a;牛客网 自从上次小w被奶牛踹了之后&#xff0c;就一直对此耿耿于怀。 于是"cow"成为了小w的禁忌&#xff0c;而长得和"cow"很像的"owc"…凡是…

html 地球大气,地球大气层为什么永远不会消失?

地球的大气层是一个很神奇的存在&#xff0c;几十亿年来&#xff0c;它就如同一层厚厚的保护膜&#xff0c;将地球与太空完全阻隔起来&#xff0c;正因为如此&#xff0c;地球上的生命才能够繁衍生息&#xff0c;代代相传。相信很多人都会有这样的疑问&#xff0c;为什么地球上…

5.Loops and List Comprehensions

Loops 循环是一种重复执行某些代码的方法。 [1] planets [Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune] for planet in planets:print(planet, end ) # print all on same line Mercury Venus Earth Mars Jupiter Saturn Uranus Neptune 注意for循环…

【牛客 - 696D】小K的雕塑(dp,鸽巢原理,01背包类问题)

题干&#xff1a; 链接&#xff1a;https://ac.nowcoder.com/acm/contest/696/D 来源&#xff1a;牛客网 小K有n个雕塑&#xff0c;每个雕塑上有一个整数 若集合T中的每一个元素在n个雕塑上都能找得到&#xff0c;则称这个集合为一个优秀的集合 小K想知道所有大小<k优秀…

计算机专业需要汇编语言,重点大学计算机专业系列教材·汇编语言程序设计

重点大学计算机专业系列教材汇编语言程序设计语音编辑锁定讨论上传视频本词条缺少概述图&#xff0c;补充相关内容使词条更完整&#xff0c;还能快速升级&#xff0c;赶紧来编辑吧&#xff01;《重点大学计算机专业系列教材汇编语言程序设计》是2009年10月1日清华大学出版社出版…

6.Strings and Dictionaries

目录 Strings 1. String syntax 2、Strings are sequences 3、String methods Strings Python语言真正发挥作用的一个地方是字符串的操作。 本节将介绍Python的一些内置字符串方法和格式化操作。 这种字符串操作模式经常出现在数据科学工作中&#xff0c;并且在这种情况下…

【LightOJ - 1123】Trail Maintenance(在线维护最小生成树,删边思维)

题干&#xff1a; Tigers in the Sunderbans wish to travel freely among the N fields (numbered from 1 to N), even though they are separated by trees. The tigers wish to maintain trails between pairs of fields so that they can travel from any field to any ot…

7.Working with External Libraries

在本课中&#xff0c;我将讨论Python中的imports&#xff0c;提供一些使用不熟悉的库&#xff08;以及它们返回的对象&#xff09;的技巧&#xff0c;并深入研究Python的内容&#xff0c;以及谈谈运算符重载。 Imports 到目前为止&#xff0c;我们已经讨论了内置于该语言的类…

计算机原理期中考试,计算机组成原理期中考试试题

一、单选题(每小题2分&#xff0c;共34分)1&#xff0e;完整的计算机系统应包括__________。A&#xff0e;运算器、存储器、控制器 B&#xff0e; 主机和实用程序C&#xff0e;配套的硬件设备和软件系统 D&#xff0e; 外部设备和主机2&#xff0e;下列数中真值最小的数是_____…

【HDU - 1839】Delay Constrained Maximum Capacity Path(最短路 + 二分)

题干&#xff1a; 考虑一个包含 N 个顶点的无向图&#xff0c;编号从 1 到 N&#xff0c;并包含 M 条边。编号为 1 的顶点对应了一个矿藏&#xff0c;可从中提取珍稀的矿石。编号为 N 的顶点对应了一个矿石加工厂。每条边有相应的通行时间 (以时间单位计)&#xff0c;以及相应…

0.Overview

本文为Kaggle Learn的Python课程的中文翻译&#xff0c;原文链接为&#xff1a;https://www.kaggle.com/learn/python 欢迎来到Kaggle Learn的Python课程。本课程将介绍在开始使用Python进行数据科学之前需要的基本Python技能。这些课程针对那些具有一些编程经验的人&#xff…

量子计算机的体积有多大,量子计算机也能实现摩尔定律

原标题&#xff1a;量子计算机也能实现摩尔定律量子计算机拥有很强大的计算力&#xff0c;但是这对IBM来说&#xff0c;似乎还不够。据CNET消息&#xff0c;IBM制作了一个路线图&#xff0c;表达出了自己在量子计算领域的野心。IBM在图表的纵轴上列出了一个单位“量子体积(Quan…

1.How Models work

Introduction 我们首先概述机器学习模型如何工作以及如何使用它们。如果您之前已完成统计建模或机器学习&#xff0c;这可能会感觉很基础。别担心&#xff0c;我们很快就会建立强大的模型。 本课程将为您构建以下场景的模型&#xff1a; 你的堂兄已经花了数百万美元预测房地产…

【BZOJ - 1059】矩阵游戏(二分图匹配,建图,最小边覆盖)

题干&#xff1a; 小Q是一个非常聪明的孩子&#xff0c;除了国际象棋&#xff0c;他还很喜欢玩一个电脑益智游戏——矩阵游戏。矩阵游戏在一个N *N黑白方阵进行&#xff08;如同国际象棋一般&#xff0c;只是颜色是随意的&#xff09;。每次可以对该矩阵进行两种操作&#xff…

ji计算机一级题库,全国计算机等级考试一级题库0l0ji.doc

全国计算机等级考试一级题库0l0ji全国计算机等级考试一级题库(1)1&#xff0e;微机中1K字节表示的二进制位数是( )。D?   A、1000   B、8x1000   C、1024   D、8x1024??2&#xff0e;计算机硬件能直接识别和执行的只有( )。D?   A、高级语言   B、符号语言   …