跟老齐学Python之复习if语句

基本语句结构

代码如下:

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语句似乎简单,但是在编程时间中常用到。勤加练习吧。

(0)

相关推荐

  • Python入门教程之if语句的用法

    Python中的if语句是类似的其它语言的. if语句包含使用该数据进行比较,并根据比较的结果做出了决定的逻辑表达式. 语法: if语句在Python编程语言的语法是: if expression: statement(s) 如果布尔表达式的计算结果为true,那么if语句块将被执行.如果if语句布尔表达式计算为false,那么第一组代码将被执行. Python编程语言的假定任何非零和非null为true,如果是zero或null,则假定为false值. 例子: #!/usr/bin/pytho

  • 讲解Python中if语句的嵌套用法

    可能有这样一种情况,当你想检查其他条件后一个条件解析为真.在这种情况下,可以使用嵌套的if结构. 在嵌套的 if 语句结构,可以在一个 if... elif... else 结构里面可有另外一个 if... elif... else 结构. 语法: 嵌套 if...elif...else 结构的语法可以是: if expression1: statement(s) if expression2: statement(s) elif expression3: statement(s) else s

  • Python中的if、else、elif语句用法简明讲解

    下面我们学习if语句,输入下面的代码,确保能够正确运行. 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

  • python入门之语句(if语句、while语句、for语句)

    python入门之语句,包括if语句.while语句.for语句,供python初学者参考. //if语句例子 name = 'peirong'; if name == 'peirong': print 'this is peirong'; elif name== 'maojun': print 'this is maojun'; else: print 'others'; //while语句 i = 0; a = range(10); while i < a.__len__(): print

  • Python中在for循环中嵌套使用if和else语句的技巧

    for...[if]...构建List (List comprehension) 1.简单的for...[if]...语句 Python中,for...[if]...语句一种简洁的构建List的方法,从for给定的List中选择出满足if条件的元素组成新的List,其中if是可以省略的.下面举几个简单的例子进行说明. >>> a=[12, 3, 4, 6, 7, 13, 21] >>> newList = [x for x in a] >>> newL

  • Python学习笔记之if语句的使用示例

    前言 条件语句在实际开发中我们已经使用过几次了,在这里我们需要再次隆重的来介绍一下它,下面话不多说了,来一起看看详细的介绍吧. if语句 顾名思义,该语句为判断语句,先来一个简单的示例 cars=['audi','bmw','subaru',toyota] for car in cars: if car == 'audi': print(car.upper) else: print(car.title) #-->AUDI Bmw Subaru Toyota #可见第一个元素全部变成了大写,而其他

  • 跟老齐学Python之从if开始语句的征程

    一般编程的教材,都是要把所有的变量类型讲完,然后才讲语句.这种讲法,其实不符合学习的特点.学习,就是要循序渐进的.在这点上,我可以很吹一通了,因为我做过教师,研究教育教学,算是有一点心得的.所以,我在这里就开始讲授语句. 什么是语句 在前面,我们已经写了一些.py的文件,这些文件可以用python来运行.那些文件,就是由语句组成的程序. 为了能够严谨地阐述这个概念,我还是要抄一段维基百科中的词条:命令式编程 命令式编程(英语:Imperative programming),是一种描述电脑所需作出

  • 跟老齐学Python之复习if语句

    基本语句结构 复制代码 代码如下: if 判断条件1:     执行语句1-- elif 判断条件2:     执行语句2-- elif 判断条件3:     执行语句3-- else:     执行语句4-- 只有当"判断条件"的值是True的时候,才执行下面的执行语句. 那么,在python中,怎么知道一个判断条件是不是真呢?这个问题我们在眼花缭乱的运算符中已经讲解了一种数据类型:布尔类型.可以通过一个内置函数bool()来判断一个条件的结果True还是False.看看下面的例子,

  • 跟老齐学Python之for循环语句

    废话少说,上干活. for的基本操作 for是用来循环的,是从某个对象那里依次将元素读取出来.看下面的例子,将已经学习过的数据对象用for循环一下,看看哪些能够使用,哪些不能使用.同时也是复习一下过往的内容. 复制代码 代码如下: >>> name_str = "qiwsir" >>> for i in name_str:  #可以对str使用for循环 ...     print i, ...                     q i w s

  • 跟老齐学Python之玩转字符串(1)

    如果对自然语言分类,有很多中分法,比如英语.法语.汉语等,这种分法是最常见的.在语言学里面,也有对语言的分类方法,比如什么什么语系之类的.我这里提出一种分法,这种分法尚未得到广大人民群众和研究者的广泛认同,但是,我相信那句"真理是掌握在少数人的手里",至少在这里可以用来给自己壮壮胆. 我的分法:一种是语言中的两个元素(比如两个字)和在一起,出来一个新的元素(比如新的字):另外一种是两个元素和在一起,知识两个元素并列.比如"好"和"人",两个元素和

  • 跟老齐学Python之深入变量和引用对象

    在<永远强大的函数>那一讲中,老齐我已经向看官们简述了一下变量,之后我们就一直在使用变量,每次使用变量,都要有一个操作,就是赋值.本讲再次提及这个两个事情,就是要让看官对变量和赋值有一个知其然和知其所以然的认识.当然,最后能不能达到此目的,主要看我是不是说的通俗易懂了.如果您没有明白,就说明我说的还不够好,可以联系我,我再为您效劳. 变量和对象 在<learning python>那本书里面,作者对变量.对象和引用的关系阐述的非常明了.我这里在很大程度上是受他的启发.感谢作者Mar

  • 跟老齐学Python之正规地说一句话

    小孩子刚刚开始学说话的时候,常常是一个字一个字地开始学,比如学说"饺子",对他/她来讲,似乎有点难度,大人也聪明,于是就简化了,用"饺饺"来代替,其实就是让孩子学会一个字就能表达.当然,从教育学的角度,有人不赞成这种方法.这个此处不讨论了.如果对比学习编程,就好像是前面已经学习过的那些各种类型的数据(对应这自然语言中的单个字.词),要表达一个完整的意思,或者让计算机完成一个事情(动作),不得不通过一句话,这句话就是语句,它是按照一定规则组织起来的.自然语言中的一句话

  • 跟老齐学Python之使用Python查询更新数据库

    回顾一下已有的战果:(1)连接数据库;(2)建立指针:(3)通过指针插入记录:(4)提交将插入结果保存到数据库.在交互模式中,先温故,再知新. 复制代码 代码如下: >>> #导入模块 >>> import MySQLdb >>> #连接数据库 >>> conn = MySQLdb.connect(host="localhost",user="root",passwd="123123&

  • 跟老齐学Python之坑爹的字符编码

    字符编码,在编程中,是一个让学习者比较郁闷的东西,比如一个str,如果都是英文,好说多了.但恰恰不是如此,中文是我们不得不用的.所以,哪怕是初学者,都要了解并能够解决字符编码问题. >>> name = '老齐' >>> name '\xe8\x80\x81\xe9\xbd\x90' 在你的编程中,你遇到过上面的情形吗?认识最下面一行打印出来的东西吗?看人家英文,就好多了 >>> name = "qiwsir" >>&g

  • 跟老齐学Python之Python安装

    任何高级语言都是需要一个自己的编程环境的,这就好比写字一样,需要有纸和笔,在计算机上写东西,也需要有文字处理软件,比如各种名称的OFFICE.笔和纸以及office软件,就是写东西的硬件或软件,总之,那些文字只能写在那个上边,才能最后成为一篇文章.那么编程也是,要有个什么程序之类的东西,要把程序写到那个上面,才能形成最后类似文章那样的东西. 刚才又有了一个术语--"程序",什么是程序?本文就不讲了.如果列为观众不是很理解这个词语,请上网google一下. 注:推荐一种非常重要的学习方法

  • 跟老齐学Python之用Python计算

    一提到计算机,当然现在更多人把她叫做电脑,这两个词都是指computer.不管什么,只要提到她,普遍都会想到她能够比较快地做加减乘除,甚至乘方开方等.乃至于,有的人在口语中区分不开计算机和计算器. 那么,做为零基础学习这,也就从计算小学数学题目开始吧.因为从这里开始,数学的基础知识列为肯定过关了. 复习 还是先来重温一下伟大时刻,打印hello world. 打开电脑,让python idle运行起来,然后输入: >>> print 'Hello, World' Hello, World

  • 跟老齐学Python之玩转字符串(2)

    上一章中已经讲到连接两个字符串的一种方法.复习一下: >>> a= 'py' >>> b= 'thon' >>> a+b 'python' 既然这是一种方法,言外之意,还有另外一种方法. 连接字符串的方法2 在说方法2之前,先说明一下什么是占位符,此前在讲解变量(参数)的时候,提到了占位符,这里对占位符做一个比较严格的定义: 来自百度百科的定义: 顾名思义,占位符就是先占住一个固定的位置,等着你再往里面添加内容的符号. 根据这个定义,在python里面

随机推荐