加分练习
猜一猜 “if 语句” 是什么,他有什么作用。在做下一道题之前,试着用自己的话回答下面的问题:

你认为 if 对他下一行代码做了什么?
为什么 if 语句的下一行需要 4 个空格缩进?
如果不缩进,会发生什么事情?
把练习 27 中的其它布尔表达式放到 if 语句中会不会也可以运行呢?试一下。
如果把变量 people, cats 和 dogs 的初始值改掉,会发生什么事情?

  1. people = 20
  2. cats = 30
  3. dogs = 15
  4.  
  5. if people < cats:
  6. print("Too many cats! The world is doomed!")
  7.  
  8. if people > cats:
  9. print("Not many cats! The world is saved!")
  10.  
  11. if people < dogs:
  12. print("The world is drooled on!")
  13.  
  14. if people > dogs:
  15. print("The world is dry!")
  16.  
  17. dogs += 5
  18.  
  19. if people >= dogs:
  20. print("People are greater than or equal to dogs.")
  21.  
  22. if people <= dogs:
  23. print("People are less than or equal to dogs.")
  24.  
  25. if people == dogs:
  26. print("People are dogs.")

从打字上来说这一题挺简单的,不过重点在于理解 if 语句的使用。跑一下结果如下。 

29.1 if 语句的作用
分析一下前四段 if 语句可以发现 if 语句的作用

if 语句会根据其中语句的布尔值(True、False)影响其下一行代码是否执行。
如果是真 (if something Ture),就执行下面的代码。否则不执行。
29.2 为什么 if 语句下面一行的代码需要 4 个空格? + 29.3 如果不缩进会怎样?
这和我们在函数里面遇到的情况一样,4 个空格表示了哪些代码属于此条 if 语句。

  1. a = 1
  2. b = 2
  3. c = 3
  4.  
  5. if a < b:
  6. print("这是第一行")
  7. print("这是第二行")
  8. if c < a:
  9. print("这是第三行")
  10. print("这是第四行")
  11. print("这是第五行")
  12.  
  13. print("-" * 10)
  14. print("反过来条件试一下")
  15.  
  16. if a > b:
  17. print("这是第一行")
  18. print("这是第二行")
  19. if c > a:
  20. print("这是第三行")
  21. print("这是第四行")
  22. print("这是第五行")

 
可以看到,没有缩进的第五行是不受 if 语句影响的,而在缩进中的部分是否执行则在于 if 语句的真伪。

29.4 把 27 题改 if 语句

  1. print("Is 'not False' True?")
  2. if not False:
  3. print("Yes! is True!")
  4.  
  5. print("\n------------------------")
  6. print("Is 'not True' True?")
  7. if not True:
  8. print("Yes! is True!")
  9.  
  10. print("\n------------------------")
  11. print("Is 'True or True' True?")
  12. if True or True:
  13. print("Yes! is True!")
  14.  
  15. print("\n------------------------")
  16. print("Is 'True or False' True?")
  17. if True or False:
  18. print("Yes! is True!")
  19.  
  20. print("\n------------------------")
  21. print("Is 'False or True' True?")
  22. if False or True:
  23. print("Yes! is True!")
  24.  
  25. print("\n------------------------")
  26. print("Is 'False or False' True?")
  27. if False or False:
  28. print("Yes! is True!")
  29.  
  30. print("\n------------------------")
  31. print("Is 'True and True' True?")
  32. if True and True:
  33. print("Yes! is True!")
  34.  
  35. print("\n------------------------")
  36. print("Is 'True and False' True?")
  37. if True and False:
  38. print("Yes! is True!")
  39.  
  40. print("\n------------------------")
  41. print("Is 'False and True' True?")
  42. if False and True:
  43. print("Yes! is True!")
  44.  
  45. print("\n------------------------")
  46. print("Is 'False and False' True?")
  47. if False and False:
  48. print("Yes! is True!")
  49.  
  50. print("\n------------------------")
  51. print("Is 'not (True or True)' True?")
  52. if not (True or True):
  53. print("Yes! is True!")
  54.  
  55. print("\n------------------------")
  56. print("Is 'not (True or False)' True?")
  57. if not (True or False):
  58. print("Yes! is True!")
  59.  
  60. print("\n------------------------")
  61. print("Is 'not (False or True)' True?")
  62. if not (False or True):
  63. print("Yes! is True!")
  64.  
  65. print("\n------------------------")
  66. print("Is 'not (False or False)' True?")
  67. if not (False or False):
  68. print("Yes! is True!")
  69.  
  70. print("\n------------------------")
  71. print("Is 'not (True and True)' True?")
  72. if not (True and True):
  73. print("Yes! is True!")
  74.  
  75. print("\n------------------------")
  76. print("Is 'not (True and False)' True?")
  77. if not (True and False):
  78. print("Yes! is True!")
  79.  
  80. print("\n------------------------")
  81. print("Is 'not (False and True)' True?")
  82. if not (False and True):
  83. print("Yes! is True!")
  84.  
  85. print("\n------------------------")
  86. print("Is 'not (False and False)' True?")
  87. if not (False and False):
  88. print("Yes! is True!")
  89.  
  90. print("\n------------------------")
  91. print("Is '1 != 1' True?")
  92. if 1 != 1:
  93. print("Yes! is True!")
  94.  
  95. print("\n------------------------")
  96. print("Is '1 != 0' True?")
  97. if 1 != 0:
  98. print("Yes! is True!")
  99.  
  100. print("\n------------------------")
  101. print("Is '0 != 1' True?")
  102. if 0 != 1:
  103. print("Yes! is True!")
  104.  
  105. print("\n------------------------")
  106. print("Is '0 != 0' True?")
  107. if 0 != 0:
  108. print("Yes! is True!")
  109.  
  110. print("\n------------------------")
  111. print("Is '1 == 1' True?")
  112. if 1 == 1:
  113. print("Yes! is True!")
  114.  
  115. print("\n------------------------")
  116. print("Is '1 == 0' True?")
  117. if 1 == 0:
  118. print("Yes! is True!")
  119.  
  120. print("\n------------------------")
  121. print("Is '0 == 1' True?")
  122. if 0 == 1:
  123. print("Yes! is True!")
  124.  
  125. print("\n------------------------")
  126. print("Is '0 == 0' True?")
  127. if 0 == 0:
  128. print("Yes! is True!")

《笨方法学Python》加分题29的更多相关文章

  1. "笨方法学python"

    <笨方法学python>.感觉里面的方法还可以.新手可以看看... 本书可以:教会你编程新手三种最重要的技能:读和写.注重细节.发现不同.

  2. 笨方法学python 22,前期知识点总结

    对笨方法学python,前22讲自己的模糊的单词.函数进行梳理总结如下: 单词.函数 含义 print() 打印内容到屏幕 IDLE 是一个纯Python下自带的简洁的集成开发环境 variable ...

  3. 笨办法学python 13题:pycharm 运行

    笨办法学python 13题 代码: # -*- coding: utf-8 -*- from sys import argv # argv--argument variable 参数变量 scrip ...

  4. 《笨方法学Python》加分题20

    加分练习通读脚本,在每一行之前加注解,以理解脚本里发生的事情.每次 print_a_line 运行时,你都传递了一个叫 current_line 的变量,在每次调用时,打印出 current_line ...

  5. 《笨方法学Python》加分题17

    题目通过前学习的文件操作把一个文件中的内容拷贝到另一个文件中,并使用 os.path.exists 在拷贝前判断被拷贝的文件是否已经存在,之后由用户判断是否继续完成拷贝. 新知识os.path.exi ...

  6. 《笨方法学Python》加分题15

    本题本题开始涉及文件的操作,文件操作是一件危险的事情,需要仔细细心否则可能导致重要的文件损坏. 本题除了 ex15.py 这个脚本以外,还需要一个用来读取的文件 ex15_sample.txt 其内容 ...

  7. 《笨方法学Python》加分题33

    while-leep 和我们接触过的 for-loop 类似,它们都会判断一个布尔表达式的真伪.也和 for 循环一样我们需要注意缩进,后续的练习会偏重这方面的练习.不同点在于 while 循环在执行 ...

  8. 《笨方法学Python》加分题28

    #!usr/bin/python # -*-coding:utf-8-*- True and True print ("True") False and True print (& ...

  9. 《笨方法学Python》加分题16

    基础部分 # 载入 sys.argv 模块,以获取脚本运行参数. from sys import argv # 将 argv 解包,并将脚本名赋值给变量 script :将参数赋值给变量 filena ...

随机推荐

  1. [java,2019-01-15] word转pdf

    word转pdf jar包 <dependency> <groupId>org.docx4j</groupId> <artifactId>docx4j& ...

  2. Tools:实现vmware虚拟机开机自启动

    [来自同事笔记分享] 背景:很多时候宿主机会因为各种原因导致关机或重启,但是里面配置的各个虚拟机不会随宿主机启动而启动,而是需要人为的再去一个一个的操作,无疑会对工作造成一定的影响 因此,正文来了: ...

  3. 70.纯 CSS 创作一只徘徊的果冻怪兽

    原文地址:https://segmentfault.com/a/1190000015484852 感想:monster中边框角.上下动画.旋转动画.左右动画,眼睛中transform:scaleY(n ...

  4. LoadRunner 安装汉化后的一些问题

    我装好LoadRunner11后,按照下面的方法破解: 1.  把loadrunner相关程序全部退出: 2.  用LR8.0中的mlr5lprg.dll.lm70.dll覆盖LR9.5安装目录下“b ...

  5. tensorflow 如何读取npy文件里的参数

    import numpy as npc = np.load( "vgg16.npy" )   #npy的文件名x = c.item()     #此时,x的type是一个字典nam ...

  6. Linux连接虚拟机及操作指令

    Linux的安装(虚拟机环境)与基础配置   一.背景 本文介绍如何安装虚拟机VMware以及如果在虚拟机上安装Linux系统以及Linux安装完毕之后的基础配置 需要准备的东西有VMware以及Li ...

  7. 为什么对string调用swap会导致迭代器失效

    一般来说,swap操作将容器内容交换不会导致容器的指针.引用.迭代器失效. 但当容器类型为array和string时除外. 原因在于:SSO  (Short String Optimization 指 ...

  8. 把一个syn报文给rst掉

    下面展示一个极其简单的例子,看如何使用netfilter来将一个指定端口的syn报文给rst掉. //************************************************* ...

  9. (转)php读取文件使用redis的pipeline导入大批量数据

    第一次写博客,哈哈,纯属用来记录一下自己工作中遇到的问题及解决办法. 昨天因为工作的需求,需要做一个后台上传TXT文件,读取其中的内容,然后导入redis库中.要求速度快,并且支持至少10W以上的数据 ...

  10. UE4 多人网络对战游戏笔记

    1.给物体施加一个径向力 定义一个径向力: URadialForceComponent* RadialForceComp; 在构造函数里赋默认值: RadialForceComp = CreateDe ...