设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 40637|回复: 35
打印 上一主题 下一主题

【Python 第6课】bool

[复制链接]

12

主题

0

好友

81

积分

注册会员

Rank: 2

跳转到指定楼层
楼主
发表于 2013-7-30 21:21:52 |只看该作者 |倒序浏览
本帖最后由 iamocean 于 2013-7-30 21:22 编辑

昨天说到了python中的几个基本类型,字符串、整数、浮点数都还算好理解,关于剩下的那个bool(布尔值)我要稍微多说几句。


逻辑判断在编程中是非常重要的。大量的复杂程序在根本上都是建立在“真”与“假”的基本逻辑之上。而bool所表示的就是这种最单纯最本质的True / Flase,真与假,是与非。


来看下面的例子:
  1. a = 1 < 3
  2. print a
  3. b = 1
  4. c = 3
  5. print b > c
复制代码
通过用“>”“<”来比较两个数值,我们就得到了一个bool值。这个bool值的真假取决于比较的结果。


“>”“<”在编程语言中被成为逻辑运算符,常用的逻辑运算符包括:


>:大于
<:小于
>=:大于等于
<=:小于等于
==:等于。比较两个值是否相等。之所以用两个等号,是为了和变量赋值区分开来。
!=:不等与
not:逻辑“非”。如果x为True,则not x为False
and:逻辑“与”。如果x为True,且y为True,则x and y为True
or:逻辑“或”。如果x、y中至少有一个为True,则x or y为True


关于bool值和逻辑运算其实远不止这些,但现在我们暂时不去考虑那么多,以免被绕得找不到北。最基本的大于、小于、等于已经够我们先用一用的了。



试试把bool加到我们的小游戏里:
  1. num = 10
  2. print 'Guess what I think?'
  3. answer = input()


  4. result = answer<num
  5. print 'too small?'
  6. print result


  7. result = answer>num
  8. print 'too big?'
  9. print result


  10. result = answer==num
  11. print 'equal?'
  12. print result
复制代码
代码比之前稍微多了一点,解释一下。
第一段代码:先创建一个值为10的变量num,输出一句提示,然后再输入一个值给变量answer。
第二段代码:计算answer<num的结果,记录在result里,输出提示,再输出结果。
第三段、第四段都与第二段类似,只是比较的内容不一样。

51b746310a55b319664286cf42a98226cefc1741.jpg

看看结果是不是跟你预期的一致?虽然看上去还是有点傻,但是离目标又进了一步。


现在数数你手上的工具:输入、输出,用来记录数值的变量,还有可以比较数值大小的逻辑运算。用它们在你的python里折腾一番吧。



#==== Crossin的编程教室 ====#
微信ID:crossincode


面向零基础初学者的编程课
每天5分钟,轻松学编程

扫描二维码添加微信

f68e6e3d269759eee7be4973b3fb43166c22df15.jpg
边复习边水贴  ---- 搬运工....
回复

使用道具 举报

0

主题

0

好友

21

积分

新手上路

Rank: 1

沙发
发表于 2013-9-27 12:28:55 |只看该作者
网页版无法INPUT吗?
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

板凳
发表于 2013-9-27 13:35:36 |只看该作者
Janie 发表于 2013-9-27 12:28
网页版无法INPUT吗?

是的
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

1

好友

78

积分

注册会员

Rank: 2

地板
发表于 2013-10-1 09:27:23 |只看该作者
本帖最后由 nemo 于 2013-10-1 09:28 编辑

guess what i think?
100
too small?
False
too big?
True
equal?
10
------------------------
不对劲,结果为什么会这样?
程序是
num=10
print 'guess what i think?'
answer=input()

result=answer<num
print 'too small?'
print result

result=answer>num
print 'too big?'
print result

result=answer=num
print 'equal?'
print result

回复

使用道具 举报

0

主题

0

好友

24

积分

新手上路

Rank: 1

5#
发表于 2013-10-4 22:09:43 |只看该作者
nemo 发表于 2013-10-1 09:27
guess what i think?
100
too small?

你的代码写错了:
倒数第三行 等于 ==  
应该是
result=answer==num
你写成result=answer=num,那就是把num赋值给answer,answer的值就是10 了,然后answer的值又给result
所以,result也等于10
。。。。。。。。。。。。。
回复

使用道具 举报

0

主题

1

好友

78

积分

注册会员

Rank: 2

6#
发表于 2013-10-11 12:07:58 |只看该作者
puffbaby 发表于 2013-10-4 22:09
你的代码写错了:
倒数第三行 等于 ==  
应该是

谢谢啊,确实是这样。
回复

使用道具 举报

0

主题

0

好友

16

积分

新手上路

Rank: 1

7#
发表于 2014-2-19 13:30:26 |只看该作者
为什么两次对比的结果一样呢?

捕获0000.PNG (50.55 KB, 下载次数: 662)

捕获0000.PNG

回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

8#
发表于 2014-2-19 13:42:22 |只看该作者
很好很好很好 发表于 2014-2-19 13:30
为什么两次对比的结果一样呢?

变量名拼错了
所以第二个值被赋到另一个变量上了
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

16

积分

新手上路

Rank: 1

9#
发表于 2014-2-22 10:16:21 |只看该作者
crossin先生 发表于 2014-2-19 13:42
变量名拼错了
所以第二个值被赋到另一个变量上了

谢谢
回复

使用道具 举报

0

主题

0

好友

54

积分

注册会员

Rank: 2

10#
发表于 2014-3-30 15:50:36 |只看该作者
crossin先生 发表于 2014-2-19 13:42
变量名拼错了
所以第二个值被赋到另一个变量上了

那里错了?我怎么没发现?
一个自由主义的堕落文艺男青年
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-11-23 08:45 , Processed in 0.129602 second(s), 23 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部