设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 28358|回复: 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
边复习边水贴  ---- 搬运工....
回复

使用道具 举报

0

主题

0

好友

15

积分

新手上路

Rank: 1

沙发
发表于 2013-8-29 09:10:25 |只看该作者
在3.3中  invalid syntax      2.x正常   是哪里不一样了?
回复

使用道具 举报

0

主题

0

好友

42

积分

新手上路

Rank: 1

板凳
发表于 2013-10-14 18:04:54 |只看该作者

为什么我输入'flase' 也能输出这段话?



未命名1.jpg (9.41 KB, 下载次数: 376)

未命名1.jpg

回复

使用道具 举报

0

主题

0

好友

42

积分

新手上路

Rank: 1

地板
发表于 2013-10-14 18:09:51 |只看该作者
海岸上的猪头 发表于 2013-10-14 18:04
为什么我输入'flase' 也能输出这段话?

我自己尝试了一下,if thisIslove==’ture':这样的话输入ture就会得到回答,输入其他的就什么也没有 ,
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

5#
发表于 2013-10-14 19:16:47 |只看该作者
海岸上的猪头 发表于 2013-10-14 18:09
我自己尝试了一下,if thisIslove==’ture':这样的话输入ture就会得到回答,输入其他的就什么也没有 , ...

'true' 'false'这种带引号的是字符串
True、Flase这样首字母大写不带引号,是python中的bool值。
你输入的时候输的是字符串,非空字符串永远是True
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

42

积分

新手上路

Rank: 1

6#
发表于 2013-10-15 22:32:05 |只看该作者
crossin先生 发表于 2013-10-14 19:16
'true' 'false'这种带引号的是字符串
True、Flase这样首字母大写不带引号,是python中的bool值。
你输入 ...

果然是这样的,大小写这些的话平常用应当多注意,要不然就犯我这样的错误啊,
回复

使用道具 举报

0

主题

0

好友

68

积分

注册会员

Rank: 2

7#
发表于 2014-6-10 17:27:02 |只看该作者
如何重复输入判断呢?以后会学到的吧,哈哈
回复

使用道具 举报

0

主题

0

好友

27

积分

新手上路

Rank: 1

8#
发表于 2014-6-23 08:17:49 |只看该作者
在官网下载python 3

thisIsLove = input()
if thisIsLove:
    print ("再转身就该勇敢留下来")

这样还是不管输入True或者False都会显示啊
大叔学编程,Just do it
回复

使用道具 举报

0

主题

0

好友

27

积分

新手上路

Rank: 1

9#
发表于 2014-6-23 09:05:44 |只看该作者
哦哦,知道了help (input) 发现说3里面input()返回的是字符串,改成下面的就实现目的了

thisIsLove=input()
if thisIsLove=='True':
    print ("再转身就该勇敢留下来")
大叔学编程,Just do it
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

10#
发表于 2014-6-23 16:30:53 |只看该作者
lenfari 发表于 2014-6-23 09:05
哦哦,知道了help (input) 发现说3里面input()返回的是字符串,改成下面的就实现目的了

thisIsLove=input( ...

是的,如果你输了字符,不管什么,它的bool值都是True
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

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

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

GMT+8, 2024-4-24 17:31 , Processed in 0.021664 second(s), 24 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部