跟老齐学Python之复习if语句

作者:hebedich 时间:2022-03-20 19:33:20 

基本语句结构


if 判断条件1:
    执行语句1……
elif 判断条件2:
    执行语句2……
elif 判断条件3:
    执行语句3……
else:
    执行语句4……

只有当“判断条件”的值是True的时候,才执行下面的执行语句。

那么,在python中,怎么知道一个判断条件是不是真呢?这个问题我们在眼花缭乱的运算符中已经讲解了一种数据类型:布尔类型。可以通过一个内置函数bool()来判断一个条件的结果True还是False。看看下面的例子,是不是能够理解bool()的判断规则?


>>> bool("")
False
>>> bool(0)
False
>>> bool('none')
True
>>> bool(False)
False
>>> bool("False")
True
>>> bool(True)
True
>>> bool("True")
True
>>> bool(3>4)
False
>>> bool("b">"a")
True
>>> bool(not "")
True
>>> bool(not True)
False

忘记了怎么办?看下面的语句:

if 忘记:
    复习-->眼花缭乱的运算符一讲
在执行语句中,其实不一定非要把bool()写上的。如同这样:


>>> x = 9

>>> if bool(x>7):       #条件为True则执行下面的
...     print "%d more than 7"%x
... else:
...     print "%d not more than 7"%x
...
9 more than 7

>>> if x>7:
...     print "%d more than 7"%x
... else:
...     print "%d not more than 7"%x
...
9 more than 7

以上两个写法是等效的,但是,在实际的编程中,我们不用if bool(x>7)的格式,而是使用if x>7的样式,还要特别提醒,如果写成if (x>7),用一个括号把条件表达式括起来,是不是可以呢?可以,但也不是python提倡的。


>>> if (x>7):       #不提倡这么写,这不是python风格
...     print "%d more than 7"%x
...
9 more than 7

拉出来溜溜

平时总有人在不服气的时候说“是骡子是马,拉出来溜溜”,赵本山有一句名言“走两步”。其本质都是说“光说不练是假把式”。今天收到一个朋友的邮件,也询问,在学习python的时候,记不住python的内容。其实不用记,我在前面的课程中已经反复讲过了。但是,在应用中,会越来越熟练。

下面就做一个练习,要求是:

接收任何字符和数字的输入
判断输入的内容,如果不是整数是字符,就告诉给用户;如果是小数,也告诉用户
如果输入的是整数,判断这个整数是奇数还是偶数,并且告诉给用户
在这个练习中,显然要对输入的内容进行判断,以下几点需要看官注意:

通过raw_input()得到的输入内容,都是str类型
要判断一个字符串是否是由纯粹数字组成,可以使用str.isdigit()(建议看官查看该内置函数官方文档)
下面的代码是一个参考:


#! /usr/bin/env python
#coding:utf-8

print "请输入字符串,然后按下回车键:"

user_input = raw_input()

result = user_input.isdigit()

if not result:
    print "您输入的不完全是数字"

elif int(user_input)%2==0:
    print "您输入的是一个偶数"
elif int(user_input)%2!=0:
    print "您输入的是一个奇数"
else:
    print "您没有输入什么呢吧"

特别提醒列为,这个代码不是非常完善的,还有能够修改的地方,看 * 否完善之?

再来一个如何?

已知一个由整数构成的list,从中跳出奇数和偶数,并且各放在一个list中。

请看官在看下面的参考代码之前,自己写一写。


#!/usr/bin/env python
#coding:utf-8

import random

numbers = [random.randint(1,100) for i in range(20)] #以list解析的方式得到随机的list

odd = []
even = []

for x in numbers:
    if x%2==0:
        even.append(x)
    else:
        odd.append(x)

print numbers
print "odd:",odd
print "even:",even

用这个例子演示一下if在list解析中的应用。看能不能继续改进一些呢?

可以将循环的那部分用下面的list解析代替


#!/usr/bin/env python
#coding:utf-8

import random

numbers = [random.randint(1,100) for i in range(20)] #以list解析的方式得到随机的list

odd = [x for x in numbers if x%2!=0]
even = [x for x in numbers if x%2==0]

print numbers
print "odd:",odd
print "even:",even

一个有趣的赋值

对赋值,看官应该比较熟悉了吧,如果要复习,请看《[赋值,简单也不简单]》(./127.md)以及《[正规地说一句]》(./201.md)的相关内容。

这里说的有趣赋值是什么样子的呢?请看:


>>> name = "qiwsir" if "laoqi" else "github"
>>> name
'qiwsir'
>>> name = 'qiwsir' if "" else "python"
>>> name
'python'
>>> name = "qiwsir" if "github" else ""
>>> name
'qiwsir'

总结一下:A = Y if X else Z

什么意思,结合前面的例子,可以看出:

如果X为真,那么就执行A=Y
如果X为假,就执行A=Z
再看看上面的例子,是不是这样执行呢?

if语句似乎简单,但是在编程时间中常用到。勤加练习吧。

标签:跟老齐学Python,复习,if语句
0
投稿

猜你喜欢

  • vue3 使用defineAsyncComponent与component标签实现动态渲染组件思路详解

    2024-05-02 16:32:38
  • 使用python编写脚本获取手机当前应用apk的信息

    2022-08-01 22:54:15
  • Windows 64位重装MySQL的教程(Zip版、解压版MySQL安装)

    2024-01-26 23:24:32
  • python回溯法实现数组全排列输出实例分析

    2023-06-18 20:42:27
  • SQL Server中读取XML文件的简单做法

    2008-12-23 15:29:00
  • javascript 多浏览器 事件大全

    2024-05-13 10:35:24
  • javscript 数组扁平化的实现

    2024-04-28 10:18:49
  • MYSQL主从数据库同步备份配置的方法

    2024-01-23 15:03:43
  • 对Python发送带header的http请求方法详解

    2022-02-06 11:44:59
  • 利用django model save方法对未更改的字段依然进行了保存

    2021-12-21 21:24:18
  • js实现调用网络摄像头及常见错误处理

    2024-05-11 09:32:30
  • sqlserver中with(nolock)深入分析

    2024-01-27 13:39:48
  • Python使用pygame模块编写俄罗斯方块游戏的代码实例

    2021-11-15 02:29:29
  • windows下mysql 5.7版本中修改编码为utf-8的方法步骤

    2024-01-14 14:02:44
  • python 虚拟环境的创建与使用方法

    2022-11-09 18:21:50
  • php报错502badgateway解决方法

    2023-11-22 13:12:06
  • Linux/UNIX和Window平台上安装Mysql

    2024-01-24 00:00:15
  • mysql中explain用法详解

    2024-01-13 16:28:25
  • 利用pandas将numpy数组导出生成excel的实例

    2021-03-10 02:43:14
  • 不要跳转或刷新 实现网页区域选择显示

    2010-07-02 16:25:00
  • asp之家 网络编程 m.aspxhome.com