美文网首页小白学Python
练习 30 if 和 else - Learn Python 3

练习 30 if 和 else - Learn Python 3

作者: 爱学习的ai酱 | 来源:发表于2018-03-10 13:38 被阅读95次

    练习 30 Else 和 if

    在上个练习中你学到了一些 if 语句,思考了它的含义和作用。在你学习更多内容之前,我会解释一下上个附加练习中的问题。首先确定你做了那些练习。

    1. 你认为 if 对它下面的代码起什么作用?

    if 语句在代码中创建了一个“分支”(branch),有点类似于在一本冒险书中,你选择了哪个答案,就翻到对应的一页,如果你选择了不同的答案,就会去到不同的地方。if 语句就是告诉脚本,如果这个布尔表达式是 True,那就运行它下面的代码,否则的话就跳过。

    2. 为什么 if 下面的代码要缩进 4 个空格?

    通过一行代码结尾的冒号告诉 Python 你在创建一个新的代码块,然后缩进四个空格告诉 Python 这个代码块中都有些什么。这就跟本书前半部分中你学的函数是一样的。

    3. 如果没有缩进会发生什么?

    如果没有缩进,你很可能收到一个错误提示。Python 一般会让你在一个带 : 的代码行下面缩进一些内容。

    4. 你能从练习 27 里面把一些布尔表达式放进 if 语句吗?试试看。

    试试吧,你可以的。你可以把它们写得很复杂,不过复杂的东西一般风格都很糟糕。

    5. 如果你改变 people,cats 和 dogs 的初始值会发生什么?

    因为你在比较数字,所以如果你改变了数字,不同的 if 语句将会得出不同的判断结果,那么下面某些代码块就有可能运行。回到练习中给这些变量一些不同的数值,然后看看你能否在脑中判断出来哪些代码块会运行。

    把我的答案和你的比较一下,然后确保你真的理解了代码块的概念。这对你进行接下来的练习很重要。把下面的代码输入进去然后运行。

    ex30.py

    1   people = 30
    2   cars = 40
    3   trucks = 15 
    4
    5
    6   if cars > people:
    7       print("We should take the cars.")
    8   elif cars < people:
    9       print("We should not take the cars.")
    10  else:
    11      print("We can't decide.") 
    12
    13  if trucks > cars:
    14      print("That's too many trucks.")
    15  elif trucks < cars:
    16      print("Maybe we could take the trucks.")
    17  else:
    18      print("We still can't decide.") 
    19
    20  if people > trucks:
    21      print("Alright, let's just take the trucks.")
    22  else:
    23      print("Fine, let's stay home then.")
    

    你会看到

    练习 30 结果

    $ python3.6 ex30.py
    We should take the cars.
    Maybe we could take the trucks. 
    Alright, let's just take the trucks.
    

    附加练习

    1. 试着猜猜 elif 和 else 的作用是什么。
    2. 改变 cars,people,和 trucks 的数值,然后追溯每一个 if 语句,看看什么会被打印出来。
    3. 试试一些更复杂的布尔表达式,比如cars > people 或者 trucks < cars。
    4. 在每一行上面加上注释。

    常见问题

    如果多个 elif 块都是 True 会发生什么? Python 从顶部开始,然后运行第一个是 True 的代码块,也就是说,它只会运行第一个。

    相关文章

      网友评论

        本文标题:练习 30 if 和 else - Learn Python 3

        本文链接:https://www.haomeiwen.com/subject/hzpvfftx.html