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

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

 people = 20
cats = 30
dogs = 15 if people < cats:
print("Too many cats! The world is doomed!") if people > cats:
print("Not many cats! The world is saved!") if people < dogs:
print("The world is drooled on!") if people > dogs:
print("The world is dry!") dogs += 5 if people >= dogs:
print("People are greater than or equal to dogs.") if people <= dogs:
print("People are less than or equal to dogs.") if people == dogs:
print("People are dogs.")

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

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

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

a = 1
b = 2
c = 3 if a < b:
print("这是第一行")
print("这是第二行")
if c < a:
print("这是第三行")
print("这是第四行")
print("这是第五行") print("-" * 10)
print("反过来条件试一下") if a > b:
print("这是第一行")
print("这是第二行")
if c > a:
print("这是第三行")
print("这是第四行")
print("这是第五行")

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

29.4 把 27 题改 if 语句

 print("Is 'not False' True?")
if not False:
print("Yes! is True!") print("\n------------------------")
print("Is 'not True' True?")
if not True:
print("Yes! is True!") print("\n------------------------")
print("Is 'True or True' True?")
if True or True:
print("Yes! is True!") print("\n------------------------")
print("Is 'True or False' True?")
if True or False:
print("Yes! is True!") print("\n------------------------")
print("Is 'False or True' True?")
if False or True:
print("Yes! is True!") print("\n------------------------")
print("Is 'False or False' True?")
if False or False:
print("Yes! is True!") print("\n------------------------")
print("Is 'True and True' True?")
if True and True:
print("Yes! is True!") print("\n------------------------")
print("Is 'True and False' True?")
if True and False:
print("Yes! is True!") print("\n------------------------")
print("Is 'False and True' True?")
if False and True:
print("Yes! is True!") print("\n------------------------")
print("Is 'False and False' True?")
if False and False:
print("Yes! is True!") print("\n------------------------")
print("Is 'not (True or True)' True?")
if not (True or True):
print("Yes! is True!") print("\n------------------------")
print("Is 'not (True or False)' True?")
if not (True or False):
print("Yes! is True!") print("\n------------------------")
print("Is 'not (False or True)' True?")
if not (False or True):
print("Yes! is True!") print("\n------------------------")
print("Is 'not (False or False)' True?")
if not (False or False):
print("Yes! is True!") print("\n------------------------")
print("Is 'not (True and True)' True?")
if not (True and True):
print("Yes! is True!") print("\n------------------------")
print("Is 'not (True and False)' True?")
if not (True and False):
print("Yes! is True!") print("\n------------------------")
print("Is 'not (False and True)' True?")
if not (False and True):
print("Yes! is True!") print("\n------------------------")
print("Is 'not (False and False)' True?")
if not (False and False):
print("Yes! is True!") print("\n------------------------")
print("Is '1 != 1' True?")
if 1 != 1:
print("Yes! is True!") print("\n------------------------")
print("Is '1 != 0' True?")
if 1 != 0:
print("Yes! is True!") print("\n------------------------")
print("Is '0 != 1' True?")
if 0 != 1:
print("Yes! is True!") print("\n------------------------")
print("Is '0 != 0' True?")
if 0 != 0:
print("Yes! is True!") print("\n------------------------")
print("Is '1 == 1' True?")
if 1 == 1:
print("Yes! is True!") print("\n------------------------")
print("Is '1 == 0' True?")
if 1 == 0:
print("Yes! is True!") print("\n------------------------")
print("Is '0 == 1' True?")
if 0 == 1:
print("Yes! is True!") print("\n------------------------")
print("Is '0 == 0' True?")
if 0 == 0:
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. Android 开发 图片网络缓存加载框架Fresco

    简介 Fresco是一个在Android应用程序中显示图像的强大系统. Fresco负责图像的加载和显示.它将从网络.本地存储或本地资源加载图像,图像加载完成前会显示一个占位图片.它有两个级别的缓存: ...

  2. Disconnected from the target VM, address: '127.0.0.1:57178', transport: 'socket'

    idea 执行测试单元debug时控制台出现:Disconnected from the target VM, address: '127.0.0.1:57178', transport: 'sock ...

  3. 6.2 集合和映射--集合Set->底层基于链表实现

    在6.1中我们实现了底层基于二叉搜索树的集合,本节就底层如何基于链表实现进行学习,注意:此处的链表是之前自己封装的. 1.集合set相关功能 1.1 add()的不同 用于链表本身没有去重的效果,因此 ...

  4. jQuery入门基础(选择器)

    一.jQuery简介 jQuery 是一个 JavaScript 库. jQuery 极大地简化了 JavaScript 编程. jQuery 库位于一个 JavaScript 文件中,其中包含了所有 ...

  5. go 语言学习笔记(一)

    本次学习目的:熟悉了解 go 语言特点,实现基本功能. 1.readfile.go package main import ( "bufio" "fmt" &q ...

  6. 运用node真机调试移动web项目

    很多时候我们对移动端进行测试的时候,有pc端的测试,也有真机上的测试,pc的测试就不多说了,因为其实基本上大家都懂的.真机测试上也有几种方法,这里就推荐三种: 移动端真机调试方法 chrome真机调试 ...

  7. Servlet中response、request乱码问题解决

    Java Web(二) Servlet中response.request乱码问题解决   三月不减肥,五月徒伤悲,这就是我现在的状态,哈哈~ 健身.博客坚持. --WH 一.request请求参数出现 ...

  8. centos下删除MYSQL 和重新安装MYSQL

    centos下彻底删除MYSQL 和重新安装MYSQL 因centos系统自带的mysql版本比较低5.1,所以想卸载重新安装较新版本,下面是过程 1 删除Mysql yum remove mysql ...

  9. php导出excel不使用科学计数法

    在变量前后拼接上制表符 foreach($orderList as $k=>$v){ $orderList[$k]['pos_id'] = "\t".$v['pos_id'] ...

  10. SpringCloud-day07-Feign

    7.Feign 7.1.Feign简介 声明式服务调用Feign简单介绍下: Feign是一个声明式的Web Service客户端,它使得编写Web Serivce客户端变得更加简单.我们只需要使用F ...