设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 33783|回复: 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

好友

28

积分

新手上路

Rank: 1

35#
发表于 2018-5-6 10:32:24 |只看该作者
crossin先生 发表于 2018-5-2 23:28
数字要你自己输入

谢谢,我一直以为是电脑会自己判定选择。
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

34#
发表于 2018-5-2 23:28:42 |只看该作者
iris 发表于 2018-5-2 15:07
为什么我的输入之后,第二行没有数字出现,而是直接进行判断
这是int(input())却报错
...

数字要你自己输入
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

28

积分

新手上路

Rank: 1

33#
发表于 2018-5-2 15:07:13 |只看该作者
本帖最后由 iris 于 2018-5-2 15:34 编辑

输入之后,没有第二行数字,而是直接跳转到下面
为什么我的输入之后,第二行没有数字出现,而是直接进行判断
这是int(input())却报错
QQ截图20180502152848.png
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

32#
发表于 2017-7-24 23:25:53 |只看该作者
katherinewnj 发表于 2017-7-24 22:30
为什么在Shell里面一直显示第一行有错误?
num=10
print('Guess what I think')

上报错信息或者截图
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

4

积分

新手上路

Rank: 1

31#
发表于 2017-7-24 22:30:59 |只看该作者
为什么在Shell里面一直显示第一行有错误?
num=10
print('Guess what I think')
answer = eval(input())

result = answer<num
print('too small')
print (result)

result = answer>num
print('too big')
print (result)

result = answer==num
print('equal?')
print (result)
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

30#
发表于 2016-8-7 23:24:20 |只看该作者
emoheiri 发表于 2016-8-6 16:21
num=10
print'guess what i think'
answer=input()

你这里还没有学到 if 的条件判断,你这是几行代码都是顺序执行的,你写的什么,它就输出什么,跟你输入什么完全没有关系
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

18

积分

新手上路

Rank: 1

29#
发表于 2016-8-6 16:21:18 |只看该作者
num=10
print'guess what i think'
answer=input()

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

故意把第五行换成了too big,知道出来的结果不对,但是不知道为什么不对,希望给解答下,多谢。

sp160806_161945.png (32.08 KB, 下载次数: 274)

sp160806_161945.png

回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

28#
发表于 2016-4-28 16:11:01 |只看该作者
追风 发表于 2016-4-28 14:46
在这个练习中,我尝试将字母、标点符号和程序设定的num比较,但是,得到的结果都是too big为true,而且没 ...

字符和数字不好比较大小
直接输入数字才行
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

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

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

GMT+8, 2024-5-2 23:59 , Processed in 0.029658 second(s), 25 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部