gridview怎么判断两行字符串是否相等_Python语言难学吗?第13讲——用数据做判断:布尔值...
我们还是接着上一关的while循环讲起,还记得while循环怎么写吧?
之前说到,while循环是需要有一个“条件”的,当条件被满足,才能开启循环。
在上面这个小例题中,这一点不难理解:我先定义了变量a,然后将0赋值给a;接下来,面对a<5
这个条件,计算机就会判断条件满足,用术语来说就是条件为【真】(True),然后开启循环。
直到a+1
不断执行,到了a=5
时,条件a<5
不再满足,即条件为【假】(False),这段循环就结束了。
真真假假,计算机是怎么做出这样的判断的呢?简单的数学题倒是一看便知,但当逻辑更复杂的时候,计算机怎么决定自己要不要进行下一步行动呢?比如下面这道小题:
我猜你的表情大概是ヾ(。ꏿ﹏ꏿ)ノ゙这样的。没事,很快你就能秒懂了,先不理它。
要看懂这种奇怪的条件判断,就要熟悉一个编程基础知识:布尔值。
用数据做判断:布尔值
之前我们提到,计算机利用数据有三种方式:1.直接使用数据,2.计算和加工数据,3.用数据做判断。
除了while循环,我之前学过的if...elif...else
语句,也涉及到【利用数据用做逻辑判断】。当逻辑判断通过才会继续执行:
当然,if和while有个显著的区别。那就是if语句只会执行一次,而while是循环语句,只要条件判断为真,就一直循环执行。
这个“判断”的过程,在计算机的世界里是如何发生的呢?
计算机的逻辑判断,只有两种结果,就是True
(英文意思是“真”)和False
(英文意思是“假”),没有灰色地带。这个计算真假的过程,叫做【布尔运算】。
而True
和False
,也就叫做【布尔值】。
举个例子,请你运行以下代码,看看结果是True还是False:
print()
括号内的计算其实就是【布尔运算】。终端上出现的True和False我们称为【布尔值】。
第1行和第2行代码很简单啦。我们看后面两行:两个字符串'长安'相等,结果正确,所以打印为True。而字符串'长安'和字符串'金陵'做比较,结果不相等,!=
代表不等号,结果正确,打印为True。
只有当条件判断为True时,if和while后面的子句才会执行下去。
好,现在我们来体验一下上面出现过的这段奇怪的代码,你会发现它执行后,终端上不显示任何结果:
这是因为while循环执行,必须要while后的条件为“真”,而【布尔值】False本身就是“假”,所以这个循环一次都没运行就结束了。
同理,3>5
这个条件恒为“假”,如果把while False
换成while 3>5
,效果会是一样的——什么都不会出现。
时候可能就有人会问了:“那如果我用while True
或者while 3<5
来做条件,会怎么样?”
我们就来体验一下。先剧透:请注意,这段代码将会无限运行,陷入【死循环】,你需要在键盘上按几次【ctrl+c】来强制结束运行。
这是因为【布尔值】True直接把条件判断的结果设置为真,也就是条件永远正确。所以代码会无限循环,必须手动强制退出。
【布尔值】对条件判断语句有一样的效果:
我们会发现,只有if True
成功运行,将结果显示在了屏幕上。当然,if语句不会陷入死循环。
做一个总结:
现在我们知道了什么是布尔运算以及布尔值的作用,我们接着学习【布尔运算】的三种方式。其中的第一种,就是作比较。
1.两个数值做比较
其实刚才我们print(3>5)
,计算机会先做一次布尔运算,判断3是否大于5,然后再把判断的结果以【布尔值】的方式打印出来。
用两个数值做比较的【布尔运算】,主要包含以下情况:
主要记住前两种==
和!=
,这两种在条件判断中用得非常多。还有大于>
和小于<
了,这都属于数学常识了。
另外,特别提醒大家一点:在代码中,A == B
表示A和B相等,==
表示相等关系;而=
表示给变量赋值。=
和==
虽然长得相似,但没有任何关系。
对于=
和==
,初学者很容易混淆写错,导致报错。请你来修改一下下面的代码,让它能正确运行:
我们接着看布尔运算的第二种方式:直接用数值做运算。
2.直接用数值做运算
请看这段代码:
是不是觉得怪怪的,没关系,我们来运行一下,看终端会给我们一个啥样的结果。
终端打印出了一个字符串熊猫
。我们看看这两行代码,这是一段使用了条件判断的代码。因为终端打印出了'熊猫',说明 if 后面的条件为真。
可是怪就怪在,if后面接的不像是一个“条件”,而是一个数字。
其实,整数1
在这里就是作为一个条件,被判断为真(True)。这就是数值本身作为一个条件,被判断真假的情况。
那为什么可以这样操作呢?
因为在Python中已经设定好什么数据为真,什么为假。假的是有限的,那么除了假的,就都是真的。请看下图:
这个表的左侧一列,它们在Python中被判定为假,比如False
、0
、''
(空字符串)等等。假的东西是有限的,那么除了假的,其他就都是真的。比如上一个例子中出现的整数1
,就是真的。
至于None,它代表的是【空值】,自成一派,数据类型是NoneType。要注意它和0
的区别,0
是整数0
,可并非什么都没有。
好,现在请看这段代码,然后回答问题:请问执行这段程序时,终端会显示什么?
'开心'这个字符串作为一个条件时,被判定为真,所以if后面的条件满足,计算机会执行if的下一行代码;而 ''(空字符串)本身作为一个条件时,被判定为假,if后面的条件为假,计算机不会执行if的下一行代码。
我们可以使用bool()
函数来查看一个数据会被判断为真还是假。这个函数的用法与type()
函数相似(还有印象吧~),在bool()
函数括号中放入我们想要判断真假的数据,然后print出来即可。
我们来做个试验,用bool()
函数把前面我们提到的各种数据都放进去判断一下,打印出来看看。请阅读代码后再直接运行:
好啦,现在你明白了“直接用数值做布尔运算”是怎么一回事,再来看看第三种情况。
3.布尔值之间的运算
会接触到and
、or
、not
、in
、not in
五种运算。
还是用例子来说明吧。我们先看看【and】和【or】。请先阅读代码,然后直接运行:
a==1 and b==1
的意思是【a=1并且b=1】,要两个条件都满足,才能判断为True,而a==1 or b==1
的意思是【a=1或者b=1】,只要两个条件满足一个,就能判断为True。
这里把and和or的计算逻辑和大家做一个总结:
接下来我们看看【not】运算。这个运算很简单,表示翻转的意思。not True
就等于False
,not False
就等于True
。
最后,我们讲一下【in】和【not in】两种运算。
【in】的意思是“判断一个元素是否在一堆数据之中”,【not in】反之。这个超简单的。
你用肉眼就能判断a,b,c三个变量在不在(in或是not in)列表list里面了对吧?来简单运行一个试试呗。
如果涉及到的数据集合是字典的话,【in】和【not in】就可以用来判断字典中是否存在某个【键】:
到这里,我们学完了5种布尔值的运算方式,不难,就是有点多~
老样子,做个总结吧~
掌握了布尔值,以后我们可以写出更加简洁的while循环。
比如说,上节课用while循环重复执行100遍任务,代码会这样写:
今天理解布尔运算原理后,可以把这段代码改造成更“程序员”的方式:
第二种方式对计算机来说是更简单的,因为计算次数减少了(减少了计算i<100,i<99……这个过程),这也是程序员在写代码时的思考方式。
我们以后还会经常看到布尔运算和布尔值在代码中的运用,今天对布尔值的讲解就到这里。
----------------------------------------------------------------------------------------------
更多Pthon课程请扫码关注
gridview怎么判断两行字符串是否相等_Python语言难学吗?第13讲——用数据做判断:布尔值...相关推荐
- python集合类型的操作符_Python 语言学习 第一篇:数据类型(数字,集合,布尔类型,操作符)...
Python语言最常用的对象是变量和常量,常量的值是字面意思,变量的值是可变的,例如,123,"上海"是常量,而a=1,a=2,其中a是变量名.内置的核心数据类型有:数字.字符串. ...
- python提取包含特定字符串的行_python语言----txt中搜索特定字符串所在行
打开IDLE(python),并新创建一个py文件,编辑内容为: '''本示例演示如何在一个txt文件中搜索特定的字符串,并将其行显示''''''# 1. 打开文件# 2. 读取行信息# 3. 判断是 ...
- python简单命令语句_Python语言----linux常用命令(13)
归档和压缩的概念 压缩也是一种打包,压缩的原理是将文件中相同的信息用一个字符代替,致使文件体积变小达到压缩的目的,压缩对于文本类或数据类文件有较明显的作用. 归档就是将一些文件放在一起变成一个包,便于 ...
- python判断ip地址是否合法_python实现判断一个字符串是否是合法IP地址的示例
一个刚结束的笔试题目,简单贴一下吧,下面是具体实现: #!usr/bin/env python #encoding:utf-8 ''' __Author__:沂水寒城 功能:判断一个字符串是否是合法I ...
- python字符串的表示_Python字符串方法总结
Python字符串方法图示: (温馨提示:对图片点右键--在新标签页中打开图片) 1.index() 定义:查找并返回指定str的索引位置,如果没找到则会抛异常(查找的顺序是从左至右)可以指定范围:开 ...
- aspx 判断字符串是否为decimal_python实现判断一个字符串是否是合法IP地址
一个刚结束的笔试题目,简单贴一下吧,下面是具体实现: #!usr/bin/env python#encoding:utf-8 '''__Author__:沂水寒城功能:判断一个字符串是否是合法IP地址 ...
- 判断一个字符串是否为空(null)或者是空字符串(“”)的方法总结
第一步:理解null和""的区别 null表示这个字符串在栈中没有被实例化,没有任何指向,因此在堆中没有分配内存空间.如果要调用这个字符串的方法会出现空指针异常 `String s ...
- python语言的数据类型有哪些_Python语言有哪些数据类型
在Python中,能够直接处理的数据类型有以下几种: 一.整数 Python可以处理任意大小的整数,当然包括负整数,在Python程序中,整数的表示方法和数学上的写法一模一样,例如:1,100,-80 ...
- python如何判断字符串是否包含某些汉字_Python如何判断一个字符串是否包含指定子字符串...
Python如何判断一个字符串是否包含指定字符串?本篇文章就给大家介绍Python判断一个字符串是否包含指定子串的3种方法.有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助. 程序员在字 ...
- python字符串是否包含某元素_Python实现判断一个字符串是否包含子串的方法总结...
本文实例总结了Python实现判断一个字符串是否包含子串的方法.分享给大家供大家参考,具体如下: 1.使用成员操作符 in >>> s='nihao,shijie' >> ...
最新文章
- 5 亿微博数据疑泄露,Python 爬虫如何避免踩天坑?
- J20170521-ts
- tf.train.MomentumOptimizer()优化器
- 在Oracle 11g中用看Oracle的共享内存段---------IPCS
- Java里try catch的简单用法
- 群论及Polya计数定理题目入门
- java string补空格_Java String字符串补0或空格详解
- mysql子查询总分最高的学生_mysql高级内容
- 技校考大专单招计算机考试,高职单招题简单吗 单招一般考什么科目
- 版本控制系统(SVN,Git)与项目托管平台(Github,Gitee,Coding)
- c++中map的基本函数
- java工具类(六)根据经纬度计算距离
- Java学习到什么程度可以找第一份工作?
- PHP代码审计入门学习过程
- 著名的十大经济学效应
- component lists rendered with v-for should have explicit keys.
- 企业微信之发送应用消息案例
- 【技巧分享】股票代码规则
- 2018运动场景内运动检测调研文章
- H265摄像头如何实现网页直播
热门文章
- Too many authentication failures for
- 《C语言及程序设计》实践参考——找数字
- SharePoint 2013技巧分享系列 - 隐藏Blog和Apps左侧导航菜单
- linux网络客户端命令
- 18. RSS订阅(RSS Feeds)and price rule
- 5. http://kb.cnblogs.com/page/90838/
- 3. jQuery 选择器
- 用jquery在一个页面加载另一个页面
- WCF 入门调用实例教程
- NIO Channel Scatter/Gather 管道Pipe类