分享

Python-if语句

 浸心阁 2015-03-28

条件语句


1)      if 语句


例子:


# 执行if语句内的程序


a = input("a:")


b = input("b:")


if(a > b):


print a, " > ", b


Note:如果是在pydeveclipse下,运行然后输入数字,打个回车就会出现“SyntaxErrorunexpected EOF while parsing”,所以只能用raw_input来代替。原因是回车,编译器都多读一个/r,一般按回车后,shells 会输入“/n”,但因为Eclipse控制台输入的是“/r/n”,python就不能很好的识别,可以说这是Python的一个bug


 


# 跳过if语句


a = input("a:")


b = input("b:")


if(a > b):


    print a, " > ", b


print a, " < ", b


 


# if else语句


a = input("a:")


b = input("b:")


if(a > b):


    print a, " > ", b


else:


print a, " < ", b


Noteinput()he raw_input. Raw_input( )捕获用户的原始输入,raw_input()函数的声明如下所示:


Raw_input([prompt])->string,参数prompt是控制台输出的提示文字,提示用户输入。返回值为字符串。如果输入的是数字,返回的还是字符串。


Input( )支持用户输入数字或表达式,不支持输入字符串。Input( )函数的声明如下所示:


Input([prompt])->value


2)      if…elif…else语句


例子:


# if elif else语句


score = raw_input("score:")


score=int(score)


if(score >= 90) and (score <= 100):


    print "A"


elif(score >= 80) and (score < 90):


    print "B"


elif(score >= 60) and (score < 80):


    print "C"


else:


    print "D"


3)      if语句的嵌套


编写条件语句时,应该尽量避免使用嵌套语句。嵌套语句不便于阅读,而且可能会忽略一些可能性。


例子:


x = -1


y = 99


if(x >= 0):


    if(x > 0):          #嵌套的if语句


        y = 1


    else:


        y = 0


else:


    y = -1


print "y =", y


输出为y=-1


4)      实现switch语句的功能


Python并没有提供switch语句,Python可以通过字典实现switch语句的功能。


实现方法分两步。首先,定义一个字典。字典是由键值对组成的集合。其次,调用字典的get()获取相应的表达式。


例子:


from __future__ import division


x = 1


y = 2


operator = "/"


result = {


    "+" : x + y,


    "-" : x - y,


    "*" : x * y,


    "/" : x / y


}


print result.get(operator)          


输出为0.5


另一种使用switch分支语句的方案是创建一个switch类,处理程序的流程。


a)         创建一个switch类,该类继承自Python的祖先类object。调用构造函数init( )初始化需要匹配的字符串,并需要定义两个成员变量valuefallValue用于存放需要匹配的字符串,fall用于记录是否匹配成功,初始值为false,标识匹配不成功。如果匹配成功,程序往后执行。


b)        定义一个match( )方法,该方法用于用于匹配case子句。这里需要考虑三种情况:首先是匹配成功的情况,其次是匹配失败的默认case子句,最后是case子句中没有使用break中断的情况。


c)         重写__iter__( )方法,定义该方法后才能使switch类用于循环语句中。__iter__( )调用match( )方法进行匹配。通过yield保留字,使函数可以在循环中迭代。此外,调用StopIteration异常中断循环。


d)        编写调用代码,在for…in…循环中使用switch类。


例子:


#!/usr/bin/python


# -*- coding: UTF-8 -*-


 


class switch(object):


    def __init__(self, value):      # 初始化需要匹配的值value


        self.value = value


        self.fall = False           # 如果匹配到的case语句中没有break,则falltrue


 


    def __iter__(self):


        yield self.match            # 调用match方法 返回一个生成器


        raise StopIteration         # StopIteration 异常来判断for循环是否结束


 


    def match(self, *args):         # 模拟case子句的方法


        if self.fall or not args:   # 如果falltrue,则继续执行下面的case子句


                                    # case子句没有匹配项,则流转到默认分支。


            return True


        elif self.value in args:    # 匹配成功


            self.fall = True


            return True


        else:                       # 匹配失败


            return False


 


operator = "+"


x = 1


y = 2


for case in switch(operator):        # switch只能用于for in循环中


    if case('+'):


        print x + y


        break


    if case('-'):


        print x - y


        break


    if case('*'):


        print x * y


        break


    if case('/'):


        print x / y


        break


    if case():                      # 默认分支


        print ""


输出为3

条件语句


1)      if 语句


例子:


# 执行if语句内的程序


a = input("a:")


b = input("b:")


if(a > b):


print a, " > ", b


Note:如果是在pydeveclipse下,运行然后输入数字,打个回车就会出现“SyntaxErrorunexpected EOF while parsing”,所以只能用raw_input来代替。原因是回车,编译器都多读一个/r,一般按回车后,shells 会输入“/n”,但因为Eclipse控制台输入的是“/r/n”,python就不能很好的识别,可以说这是Python的一个bug


 


# 跳过if语句


a = input("a:")


b = input("b:")


if(a > b):


    print a, " > ", b


print a, " < ", b


 


# if else语句


a = input("a:")


b = input("b:")


if(a > b):


    print a, " > ", b


else:


print a, " < ", b


Noteinput()he raw_input. Raw_input( )捕获用户的原始输入,raw_input()函数的声明如下所示:


Raw_input([prompt])->string,参数prompt是控制台输出的提示文字,提示用户输入。返回值为字符串。如果输入的是数字,返回的还是字符串。


Input( )支持用户输入数字或表达式,不支持输入字符串。Input( )函数的声明如下所示:


Input([prompt])->value


2)      if…elif…else语句


例子:


# if elif else语句


score = raw_input("score:")


score=int(score)


if(score >= 90) and (score <= 100):


    print "A"


elif(score >= 80) and (score < 90):


    print "B"


elif(score >= 60) and (score < 80):


    print "C"


else:


    print "D"


3)      if语句的嵌套


编写条件语句时,应该尽量避免使用嵌套语句。嵌套语句不便于阅读,而且可能会忽略一些可能性。


例子:


x = -1


y = 99


if(x >= 0):


    if(x > 0):          #嵌套的if语句


        y = 1


    else:


        y = 0


else:


    y = -1


print "y =", y


输出为y=-1


4)      实现switch语句的功能


Python并没有提供switch语句,Python可以通过字典实现switch语句的功能。


实现方法分两步。首先,定义一个字典。字典是由键值对组成的集合。其次,调用字典的get()获取相应的表达式。


例子:


from __future__ import division


x = 1


y = 2


operator = "/"


result = {


    "+" : x + y,


    "-" : x - y,


    "*" : x * y,


    "/" : x / y


}


print result.get(operator)          


输出为0.5


另一种使用switch分支语句的方案是创建一个switch类,处理程序的流程。


a)         创建一个switch类,该类继承自Python的祖先类object。调用构造函数init( )初始化需要匹配的字符串,并需要定义两个成员变量valuefallValue用于存放需要匹配的字符串,fall用于记录是否匹配成功,初始值为false,标识匹配不成功。如果匹配成功,程序往后执行。


b)        定义一个match( )方法,该方法用于用于匹配case子句。这里需要考虑三种情况:首先是匹配成功的情况,其次是匹配失败的默认case子句,最后是case子句中没有使用break中断的情况。


c)         重写__iter__( )方法,定义该方法后才能使switch类用于循环语句中。__iter__( )调用match( )方法进行匹配。通过yield保留字,使函数可以在循环中迭代。此外,调用StopIteration异常中断循环。


d)        编写调用代码,在for…in…循环中使用switch类。


例子:


#!/usr/bin/python


# -*- coding: UTF-8 -*-


 


class switch(object):


    def __init__(self, value):      # 初始化需要匹配的值value


        self.value = value


        self.fall = False           # 如果匹配到的case语句中没有break,则falltrue


 


    def __iter__(self):


        yield self.match            # 调用match方法 返回一个生成器


        raise StopIteration         # StopIteration 异常来判断for循环是否结束


 


    def match(self, *args):         # 模拟case子句的方法


        if self.fall or not args:   # 如果falltrue,则继续执行下面的case子句


                                    # case子句没有匹配项,则流转到默认分支。


            return True


        elif self.value in args:    # 匹配成功


            self.fall = True


            return True


        else:                       # 匹配失败


            return False


 


operator = "+"


x = 1


y = 2


for case in switch(operator):        # switch只能用于for in循环中


    if case('+'):


        print x + y


        break


    if case('-'):


        print x - y


        break


    if case('*'):


        print x * y


        break


    if case('/'):


        print x / y


        break


    if case():                      # 默认分支


        print ""


输出为3

条件语句


1)      if 语句


例子:


# 执行if语句内的程序


a = input("a:")


b = input("b:")


if(a > b):


print a, " > ", b


Note:如果是在pydeveclipse下,运行然后输入数字,打个回车就会出现“SyntaxErrorunexpected EOF while parsing”,所以只能用raw_input来代替。原因是回车,编译器都多读一个/r,一般按回车后,shells 会输入“/n”,但因为Eclipse控制台输入的是“/r/n”,python就不能很好的识别,可以说这是Python的一个bug


 


# 跳过if语句


a = input("a:")


b = input("b:")


if(a > b):


    print a, " > ", b


print a, " < ", b


 


# if else语句


a = input("a:")


b = input("b:")


if(a > b):


    print a, " > ", b


else:


print a, " < ", b


Noteinput()he raw_input. Raw_input( )捕获用户的原始输入,raw_input()函数的声明如下所示:


Raw_input([prompt])->string,参数prompt是控制台输出的提示文字,提示用户输入。返回值为字符串。如果输入的是数字,返回的还是字符串。


Input( )支持用户输入数字或表达式,不支持输入字符串。Input( )函数的声明如下所示:


Input([prompt])->value


2)      if…elif…else语句


例子:


# if elif else语句


score = raw_input("score:")


score=int(score)


if(score >= 90) and (score <= 100):


    print "A"


elif(score >= 80) and (score < 90):


    print "B"


elif(score >= 60) and (score < 80):


    print "C"


else:


    print "D"


3)      if语句的嵌套


编写条件语句时,应该尽量避免使用嵌套语句。嵌套语句不便于阅读,而且可能会忽略一些可能性。


例子:


x = -1


y = 99


if(x >= 0):


    if(x > 0):          #嵌套的if语句


        y = 1


    else:


        y = 0


else:


    y = -1


print "y =", y


输出为y=-1


4)      实现switch语句的功能


Python并没有提供switch语句,Python可以通过字典实现switch语句的功能。


实现方法分两步。首先,定义一个字典。字典是由键值对组成的集合。其次,调用字典的get()获取相应的表达式。


例子:


from __future__ import division


x = 1


y = 2


operator = "/"


result = {


    "+" : x + y,


    "-" : x - y,


    "*" : x * y,


    "/" : x / y


}


print result.get(operator)          


输出为0.5


另一种使用switch分支语句的方案是创建一个switch类,处理程序的流程。


a)         创建一个switch类,该类继承自Python的祖先类object。调用构造函数init( )初始化需要匹配的字符串,并需要定义两个成员变量valuefallValue用于存放需要匹配的字符串,fall用于记录是否匹配成功,初始值为false,标识匹配不成功。如果匹配成功,程序往后执行。


b)        定义一个match( )方法,该方法用于用于匹配case子句。这里需要考虑三种情况:首先是匹配成功的情况,其次是匹配失败的默认case子句,最后是case子句中没有使用break中断的情况。


c)         重写__iter__( )方法,定义该方法后才能使switch类用于循环语句中。__iter__( )调用match( )方法进行匹配。通过yield保留字,使函数可以在循环中迭代。此外,调用StopIteration异常中断循环。


d)        编写调用代码,在for…in…循环中使用switch类。


例子:


#!/usr/bin/python


# -*- coding: UTF-8 -*-


 


class switch(object):


    def __init__(self, value):      # 初始化需要匹配的值value


        self.value = value


        self.fall = False           # 如果匹配到的case语句中没有break,则falltrue


 


    def __iter__(self):


        yield self.match            # 调用match方法 返回一个生成器


        raise StopIteration         # StopIteration 异常来判断for循环是否结束


 


    def match(self, *args):         # 模拟case子句的方法


        if self.fall or not args:   # 如果falltrue,则继续执行下面的case子句


                                    # case子句没有匹配项,则流转到默认分支。


            return True


        elif self.value in args:    # 匹配成功


            self.fall = True


            return True


        else:                       # 匹配失败


            return False


 


operator = "+"


x = 1


y = 2


for case in switch(operator):        # switch只能用于for in循环中


    if case('+'):


        print x + y


        break


    if case('-'):


        print x - y


        break


    if case('*'):


        print x * y


        break


    if case('/'):


        print x / y


        break


    if case():                      # 默认分支


        print ""


输出为3

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多