设为首页收藏本站

Crossin的编程教室

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

【Python 第7课】if

[复制链接]

12

主题

0

好友

81

积分

注册会员

Rank: 2

跳转到指定楼层
#
发表于 2013-7-30 21:28:26 |只看该作者 |正序浏览
本帖最后由 iamocean 于 2013-7-30 21:33 编辑

继续上次的程序。我们已经能让判断我们输入的值了,但这程序还是有点呆,不过怎样都要把话说三遍。因为到目前为止,我们的程序都是按照顺序从上到下一行接一行地执行。有同学发来问题了:怎么能让它根据我们输入的结果来选择执行呢?答案就是 -- if


来看一张图(纯手绘,渣画质)

786c097adab44aed39ff305fb21c8701a08bfb49.jpg


解释一下,程序顺序往下执行遇到if语句的时候,会去判断它所带条件的真假。

“如果”为True,就会去执行接下来的内容。“如果”为False,就跳过。


语法为:

if 条件:
选择执行的语句

特别说明:条件后面的冒号不能少,同样必须是英文字符。
特别特别说明:if内部的语句需要有一个统一的缩进,一般用4个空格。python用这种方法替代了其他很多编程语言中的{}。你也可以选择1/2/3...个空格或者按一下tab键,但必须整个文件中都统一起来。千万不可以tab和空格混用,不然就会出现各种莫名其妙的错误。所以建议都直接用4个空格。


上栗子:
  1. thisIsLove = input()
  2. if thisIsLove:
  3.     print "再转身就该勇敢留下来"
复制代码
试试看?输入True,就会得到回答。输入False,什么也没有。(如果你那里输出中文有问题,请自行改成英文)



所以,我们的游戏可以这样改写:
  1. num = 10
  2. print "Guess what I think?"
  3. answer = input()

  4. if answer < num:
  5.     print 'too small!'

  6. if answer > num:
  7.     print 'too big!'

  8. if answer == num:
  9.     print 'BINGO!'
复制代码
0277ad45d688d43f50ce1f497c1ed21b0ff43b9f.jpg



if在编程语言中被称为“控制流语句”,用来控制程序的执行顺序。还有其他的控制流语句,后面我们会用到。





有不少同学强烈要求布置作业。好吧,满足你们。还记得之前那个“你觉得我是什么人?”的程序吧?(不记得的请回复4。。。)
改写一下,只有你回答某些好话的时候,程序才会Oh yes。其他都不理你。甚至说某些词的时候,它还要反驳你。
至于用哪些词哪些条件,你们自己设定吧。




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


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

扫描二维码添加微信

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

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

28#
发表于 2019-9-17 22:54:32 |只看该作者
clearlove 发表于 2019-9-17 06:10
老师能发一下python第七课if的课后作业答案吗

你翻下就这个帖子,前面很多人都给出答案了
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

28

积分

新手上路

Rank: 1

27#
发表于 2019-9-17 06:10:30 |只看该作者
老师能发一下python第七课if的课后作业答案吗
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

26#
发表于 2016-11-4 14:21:55 |只看该作者
zegna1003 发表于 2016-11-4 11:28
老师我想问一下,这课游戏那个实例,如果我的answer输入‘a’,他显示too big,这代表什么意思,‘a’能与 ...

不要让字符和数字比较大小,这个结果没有意义。应当做一个bug来处理
在py3里已经会直接报错了。
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

4

积分

新手上路

Rank: 1

25#
发表于 2016-11-4 11:28:00 |只看该作者
老师我想问一下,这课游戏那个实例,如果我的answer输入‘a’,他显示too big,这代表什么意思,‘a’能与数字比大小吗,还是代表asc2码?
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

24#
发表于 2016-8-10 10:16:00 |只看该作者
vicky009 发表于 2016-8-10 04:47
Crossin先生好,
我用的是Python 3.5版本,按照您的教程输入以下代码,
thisIsLove = input()

python3的input直接得到的是字符串,所以一个非空的字符串是真,不管它是什么字符。除非你直接回车,什么都不输。或者用eval(input())
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

6

积分

新手上路

Rank: 1

23#
发表于 2016-8-10 04:47:55 |只看该作者
Crossin先生好,
我用的是Python 3.5版本,按照您的教程输入以下代码,
thisIsLove = input()
if thisIsLove:
    print ("YOU STAY")

空格处输入False,
为何依旧返回字符YOU STAY呢?
请见截图,谢谢。

2016-08-09_16-46-36.jpg (11.43 KB, 下载次数: 311)

2016-08-09_16-46-36.jpg

回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

22#
发表于 2016-8-7 23:23:03 |只看该作者
emoheiri 发表于 2016-8-6 17:04
不是很明白啊
thisIsLove = input()
if thisIsLove:

thisIsLove 是 False 的话,if 的判断条件不成立,所以就不执行
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

18

积分

新手上路

Rank: 1

21#
发表于 2016-8-6 17:04:38 |只看该作者
不是很明白啊
thisIsLove = input()
if thisIsLove:
    print "再转身就该勇敢留下来"
为什么输入True就会显示汉字,输入False就不显示呢?

初学者,请各位老师耐心解答,多谢~
回复

使用道具 举报

0

主题

0

好友

60

积分

注册会员

Rank: 2

20#
发表于 2016-7-19 10:51:56 |只看该作者
感谢您还在晚上回复我!虽然还不是特别明白bool,但是这个问题已经没问题了,谢谢您!
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

19#
发表于 2016-7-18 21:20:46 |只看该作者
liudaguo520 发表于 2016-7-18 18:06
老师您好,我是新学者,也没有基础,在我看到第七章if的时候,这个问题我有点理解不了,还请您解答一下!您 ...

因为这是两个不同的逻辑判断。
直接作为判断条件,是判断这个参数非空。如果你直接输两个引号,里面什么都没有,那就不会输出。
你写的那个,就是判断这个值是不是为 “True”,是才输出
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

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

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

GMT+8, 2024-5-7 15:47 , Processed in 0.023420 second(s), 25 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部