Python 基础起步 (九) 条件语句 if elif else 其实很简单

栏目: Python · 发布时间: 5年前

内容简介:大家好,在我们上一篇复习了dict的基础和实用技巧后,今天我们来看一下Python里的逻辑关系,所谓逻辑关系无非就是如果...就...否则...之类的,不是非常复杂,我的意思是复杂的地方不用目前了解,因为已经超出了小白的水准,哈哈,闲话少说,让我们一起来看看吧~Python里面用if-else的形式注意有两点:

大家好,在我们上一篇复习了dict的基础和实用技巧后,今天我们来看一下 Python 里的逻辑关系,所谓逻辑关系无非就是如果...就...否则...之类的,不是非常复杂,我的意思是复杂的地方不用目前了解,因为已经超出了小白的水准,哈哈,闲话少说,让我们一起来看看吧~

什么是if

Python里面用if-else的形式

if <expr>:                 #如果满足什么条件
    <statement>            #就执行什么步骤

注意有两点:

  • if 后面的判断结果就是True和False两种类型,如果True,将执行statement的步骤1
  • statement那里一定有缩进,写在if条件里面

让我们拿实际的情况看看具体是什么意思:

x = 0
y = 5

if x < y:                            # True
    print('yes')


if y < x:                            # False
    print('yes')


if x:                                # Falsy  
    print('yes')

if y:                                # Truthy
    print('yes')



if x or y:                           # Truthy
    print('yes')


if x and y:                          # Falsy
    print('yes')


if 'aul' in 'grault':                # Truthy
    print('yes')


if 'quux' in ['foo', 'bar', 'baz']:  # Falsy
    print('yes')

我给大家解释一个可能产生的疑问,就是如下这个条件式:

if x:                                # Falsy  
    print('yes')

这里为什么是错误的呢,因为很简单,在Python里默认1就是True,0就是False,这里x的值正好是0,和ython默认的规定的一样,所以这个判断也是错的,大家明白了吧~

满足if条件后有多个statements执行

用大白话讲就是说如果满足了if的条件,那么你有很多事情想依次执行,而且在做完这些事情后完成了条件,开始下一项任务,那么这种情况下调用形式如下图:

if <expr>:
    <statement>
    <statement>
    ...
    <statement>
<following_statement>

Python 基础起步 (九) 条件语句 if elif else 其实很简单

感觉还是图片比较容易理解哈哈~ 让我们来看一个真实的例子:

if 'foo' in ['bar', 'baz', 'qux']:
    print('Expression was true')
    print('Executing statement in suite')
    print('...')
    print('Done.')
print('After conditional')

这段代码完美的展示了图片中讲解的内容,大家可以猜猜结果,这段代码执行后会输出什么。

现在公布答案:

After conditional

简单说一下,很简单,我们想要看看'foo' 这个字符串是否在数组['bar', 'baz', 'qux']里面,如果在,一次执行底下的缩进的4个print方法,如果不在,跳出if,继续该干什么干什么,所以显然易见'foo'不在数组里,因此直接执行最后的print('After conditional')

多个if在一起

大家看一下下面的代码,如果你预想的输出结果和实际的一样,那恭喜你已经彻底明白if是什么东西了

# Does line execute?                        Yes    No
#                                           ---    --
if 'foo' in ['foo', 'bar', 'baz']:        #  x
    print('Outer condition is true')      #  x

    if 10 > 20:                           #  x
        print('Inner condition 1')        #        x

    print('Between inner conditions')     #  x

    if 10 < 20:                           #  x
        print('Inner condition 2')        #  x

    print('End of outer condition')       #  x
print('After outer condition')            #  x

输出结果为:

Outer condition is true
Between inner conditions
Inner condition 2
End of outer condition
After outer condition

if else

在Python中使用if else 的表达模板如下:

if <expr>:
    <statement(s)>
else:
    <statement(s)>

大家想必很容易看懂,现在举个栗子:

x = 20

if x < 50:
    print('(first suite)')
    print('x is small')
else:
    print('(second suite)')
    print('x is large')

输出结果为:

(first suite)
x is small

很容易理解了,如果满足if条件如何,else否则怎么怎么样

if,elif ,else

让我们来看最后一种情况,也很好弄懂,elif的意思就是else if 的缩写而已,表达模式如下:

if <expr>:
    <statement(s)>
elif <expr>:
    <statement(s)>
elif <expr>:
    <statement(s)>
    ...
else:
    <statement(s)>

看一个具体实例:

name = 'Joe'
if name == 'Fred':
    print('Hello Fred')
elif name == 'Xander':
    print('Hello Xander')
elif name == 'Joe':
    print('Hello Joe')
elif name == 'Arnold':
    print('Hello Arnold')
else:
    print("I don't know who you are!")

输出结果为:

Hello Joe

总而言之就是如果不满足第一个if条件,接着看是否满足第二个if条件,然后是第三个...

if 写在一行里

Python有一个好处就是它非常懒,很多东西它会自己想办法减少代码量,所以就出现了以下这种写法:

if <expr>: <statement>
if <expr>: <statement_1>; <statement_2>; ...; <statement_n>

分别看两个例子,第一个简单一些的:

if 'f' in 'foo': print('1'); print('2'); print('3')
Out:1
     2
     3

稍微复杂一些的:

x = 2
if x == 1: print('foo'); print('bar'); print('baz')
elif x == 2: print('qux'); print('quux')
else: print('corge'); print('grault')

Out: qux
     quux

总结

  • 基本的条件语句常见的就这几种
  • 个人建议不要写一行,还是拆成多行写,这样思路清晰

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Bandit Algorithms for Website Optimization

Bandit Algorithms for Website Optimization

John Myles White / O'Reilly Media / 2013-1-3 / USD 19.99

This book shows you how to run experiments on your website using A/B testing - and then takes you a huge step further by introducing you to bandit algorithms for website optimization. Author John Myle......一起来看看 《Bandit Algorithms for Website Optimization》 这本书的介绍吧!

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具