首页 > 代码库 > Python学习笔记2(控制语句)

Python学习笔记2(控制语句)

1.if条件语句

if(表达式):     语句1else:     语句2

2.if...elif...else判断语句

if(表达式1):语句1elif(表达式2):语句2...elif(表达式n):语句nelse:语句m

  eg:

#if elif else语句score = float( input("score:"))if 90 <= score <=100:      print("A")elif 80<= score <=90:      print("B")elif 60<= score <=80:      print("C")else:      print("D")

 PS:编写if条件语句时,尽量避免使用嵌套语句。不便阅读,且可能忽略一些可能性

1 # 错误的嵌套语句2 x = -13 y = 994 if(x != 0):5     if(x > 0):6         y = 17 else:8     y = 09 print ("y =", y)

 

注意: Python代码的缩进规则。具有相同缩进的代码被视为代码块,则上面的第7行的 else 语句与第4行的if对应。因此,当x!=0时,只考虑了x大于0的情况。

缩进请严格按照Python的习惯写法:4个空格,不要使用Tab,更不要混合Tab和空格,否则很容易造成因为缩进引起的语法错误。

3.switch语句的代替方案

python中没有switch语句,因此可用其他方式构造出switch语句。

  • 通过字典实现switch语句
from _future_ import divisionx = 1y = 2operator = "/"result = {                                  #定义一个字典result    "+" : x + y    "-"  : x - y     "*" : x * y    "/"  : x / y}print ( result.get(operator))
  • 创建一个switch类,处理程序的流转
class switch(object):    def _init_(self, value):            # 初始化需要匹配的值value        self.value =http://www.mamicode.com/ value        self.fall = False                  # 如果匹配到的case语句中没有break,则fall为True    def _iter_(self):        yield self.match                  # 调用match方法  返回一个生成器        raise StopIteration              # StopIteration异常来判断for循环是否结束    def match(self, *args):            # 模拟case子句的方法        if self.fall or not args:          # 如果fall为True,则继续执行下面的case语句                                                 # 或case子句没有匹配项,则流转到默认分支            return True        elif self.value in args:          # 匹配成功            self.fall = True            return True        else:                                  # 匹配失败            return Falseoperator = "+"x = 1y = 2for 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  ""

PS:switch语句造成代码不已维护,使源代码臃肿。不推荐使用switch。

4.while循环

while(表达式):                    # 表达式错误,程序转到else语句    ...else:                                 #else也属于while循环的一部分    ...                                 #最后一次循环结束后将执行else子句

 eg:(遍历numbers中的数据)

numbers = input("输入几个数字,用逗号分隔:").split(",")print(numbers)x = 0while x < len(numbers):    print (number[x])    x += 1

 5.for循环

for 变量  in  集合:    ...elsse:                                 #最后一次循环结束后执行else子句,else可省略    ...

for...in...循环通常与range()函数一起使用,range()返回一个列表,for...in...遍历列表中的元素。range()函数的声明如下:

class range(object)        range(stop) -> range object    range(start, stop[, step]) -> range object# start表示列表开始的值,默认值为0;# stop表示列表结束的值,该参数不可缺少;# step表示步长,每次递增或递减的值,默认值为1;

eg:

for x in range(-1,2):    if x > 0:        print  ("正数: ", x)    elif x == 0:        print  ("零: ", x)    else:        print  ("负数: ", x)else:    print ("循环结束")

6.break和continue语句(同C)

7.冒泡排序示例

#  冒泡排序def bubbleSort(numbers):                              # 冒泡算法的实现    for j in range(len(numbers) -1, -1, -1):        for i in range(j):            if numbers[i] > numbers[i*1]:            # 把数值小的数字放到顶端               numbers[i], numbers[i+1] = numbers[i+1], numbers[i]            print  (numbers)def main():                                                    # 主函数    numbers = [23, 12, 9, 15, 6]    bubbleSort(numbers)if _name_ == _main_:    main()

 

Python学习笔记2(控制语句)