zoukankan      html  css  js  c++  java
  • Python入门系列——第8篇

    if-else语句

    上节,我们认识了“布尔逻辑表达式”。紧接着,我们要学习if-else语句。我们来看看这条语句在代码中是怎样的功能。
    我们仍然还是创建一个交互式的对话模式程序。
    #python3
    My_age = 20
    My_tall = 175
    My_weight = 65
    
    your_age = int(input("How old are you?
    "))
    your_tall = int(input("How tall are you?
    "))
    your_weight = int(input("How weight are you?
    "))
    
    if My_age > your_age:
    	print("I'm older than you.")
    elif My_age == your_age:
    	print("You are as old as me.")
    else:
    	print("You are older than me.")
    
    if My_tall > your_tall:
    	print("I'm taller than you.")
    elif My_tall == your_tall:
    	print("You are as tall as me.")
    else:
    	print("You are taller than me.")
    	
    if My_weight > your_weight:
    	print("I'm fat,you are thin.")
    elif My_weight == your_weight:
    	print("You and I the same weight")
    else:
    	print("You may need to lose weight")
    在这个程序中,我们首先用到了int()这个函数,还记得前面我们说过,input()将所有的输入都视作字符串。我们在这里需要对数据进行比较,所以必须转换成int。int()这个函数实现了我们的需求。你自己可以在写几个程序试试int()这个函数。紧接着我们就使用了if-else语句。我来详细解释一下if-else语句。
    if-else 是所谓的“分支语句”。就像我们玩过的一些RPG游戏一样,你在NPC处需要做出选择,然后游戏根据你的选择,做出相应的判断。在这个程序里,程序根据你的输入,判断我和你谁年长一些,谁更高一些,谁的体重更轻。
    if-else语句必须以if开头。后面跟着一个布尔逻辑表达式。如果表达式的结果是True,那么就执行if语句下面的内容。否则就不执行if下面的内容。转而跳转到,elif处判断布尔逻辑表达式的结果,如果结果是True,执行紧跟着的语句。否则执行else后面的语句。这就是if-else语句的执行流程。
    输出结果如下:

    注意:if-else语句的格式:if + 布尔逻辑表达式 + 冒号,一定记得加上冒号。而且下面所有的语句要进行统一的缩进。否则会造成语法错误。好了,不要问为什么。这就是python的语法。记住,缩进也是python的语法,这可能和其他的编程语言不太一样。每行的开头处的缩进一定要有所注意,如果缩进不一致可能就会导致错误。缩进可能是python这么编程语言的特色吧。这样的要求使得写出来的python代码看起来就很美。而不是像某些语言一样,可以写的很任意,这就导致了一些很糟糕的代码出现。
    if语句可以单独使用。但是else语句和elif不可以单独使用:
    if My_age > your_age:
    	print("I'm older than you.")
    if My_tall > your_tall:
    	print("I'm taller than you.")
    if My_weight > your_weight:
    	print("I'm fat,you are thin.")
    像上面这样使用单独使用if语句是没有什么问题的。
    如果你写的程序中有多个elif语句,而且它们的块都是True,那么Python只执行它遇到的第一个True块。
    多个if-else语句和elif之间还是有区别的。if-elif只要遇到True,就停下了。不会再继续执行下面的代码了。而多个
    if-else语句还会继续执行下面的代码。
    额,写的这里突然记起来,上次忘了说的一些事情。
    python和很多其他语言一样,对于 1 and 2这样的语句返回的是两个操作对象的其中一个,而非返回True或者False。
    这个东西还是需要你下去多试试。
    在Python里,!=是主流用法,而不是<>。这一点上和C++是一样的。
    短路逻辑:在Python里也有短路逻辑,具体是:任何以False开头的and语句都会直接处理成False,而and后面的部分将不会得到执行。任何包含True的or语句,一旦遇到True,不管后面还有什么,都不会再执行后面,而是直接返回True。
    还有一点python2和python3的不同之处:
    python2支持使用“<>”作为“!=”的代替,但是python3废弃了这种做法。

    好了,记住一定要多加练习,下次见。

  • 相关阅读:
    lintcode:最大子正方形
    lintcode 中等题:k Sum ii k数和 II
    lintcode 中等题:A + B Problem A + B 问题
    Protege汉字不能正常显示问题
    Protege A DOT error has occurred错误
    lintcode :reverse integer 颠倒整数
    Reported time is too far out of sync with master. Time difference of 52692ms > max allowed of 30000ms
    Please add or free up more resources then turn off safe mode manually.
    Permission denied: user=root, access=WRITE, inode="/":hadoopuser:supergroup:drwxr-xr-x
    Hadoop重新格式化HDFS的方法
  • 原文地址:https://www.cnblogs.com/zy666/p/10504333.html
Copyright © 2011-2022 走看看