• Python学习笔记


    Python流程控制

      Python中的流程控制主要包含两部分:条件判断和循环。

    Python的缩进和语法 

      为什么要在这里说缩进和语法,是因为将要学习的条件判断和分支将会涉及到多行代码,在java、c等其他语言中,代码块使用{}进行包裹,而Python中不同。

      Python使用缩进(空格)和冒号来表示包含的意思,但Python并没有规定使用几个缩进,目前通用的标准是使用4个空格。

    >>> if ( 1 > 2) :     # 冒号
    ...     print(False)     # if 包含的代码段,需要缩进4个空格
    ... else:
    ...     print(True)   # else包含的代码段,需要缩紧4个空格
    ... 
    True
    >>> 
    
    # 需要注意的是:如果包含的代码继续包含,那么依旧需要缩进4个空格,如果不是被包含的代码,那么就不能缩进

    条件判断

      计算机之所以能做很多自动化的任务,因为它可以自己做条件判断。在Python中主要通过if以及else的搭配来完成条件判断的工作。

      条件判断主要有三种基本用法。

    单分支

      顾名思义即如果怎么样,就怎么样。(if)

    if expression:
        statement(s)
    
    注意:python使用缩进作为其语句分组的方法,建议使用4个空格
    # expression 表示条件表达式(比如:a>b)
    # statement 表示要执行的代码
    

    多分支

      多分支有分为两种情况:

      1、如果怎么样,就怎么样,否则,怎么样。(if、else)

      2、如果1怎么样,就怎么样,如果2怎么样,就怎么样...,否则,怎么样(if、elif、else)

    if expression:
        statement(s)
    else:
        statement(s)
    
    注意:else和if属于同级
     
    if expression:
        statement(s)
    elif expression:
        statement(s)
    else:
        statement(s)

    小结

      条件的写法非常多,可以写一个表达式或者多个表达式都可以,表达式的值为0,就表示false。
      if就是判断,主要就是对表达式的逻辑值进行判断
      逻辑值(bool)包含了两个值:
      • True:表示非空的量(比如:string、tuple、list、set、dictionary),所有非零数。  
      • False:表示0,None,空的量等。  

    小练习

    #!/usr/bin/env python
     
    num = raw_input("Please input Yes/No")
    num = num.lower()
    if num == "yes" or num == "y":
      print "Your Program is running..."
    elif num == "no" or num == "n":
      print "Your Program is stopped"
    else:
      print "Your input Error. please reinput !"

       扩展:循环是一个结构,导致程序要重复一定的次数,条件循环也是如此,当条件变为假,循环结束。

    Python循环

      为了让计算机能计算成千上万次的重复运算,我们就需要循环语句。Python中的循环主要有两种:for循环和while循环。

    for 循环

      在序列里,使用for循环遍历,字符串,元组,列表,字典,都属于序列。

    格式

    for iterating_var in sequence:
        statemen(s)
    
    # iterating_var 表示循环时表示元素的变量(自行指定)
    # sequence:这里表示序列,也可以为一个可迭代对象(以后会讲什么是可迭代对象)
    # statemen(s) 表示代码段

    for循环遍历字典

        默认情况下,循环便利字典,字典只能返回key列表,这时我们可以利用字典的 方法,把字典转换为列表或者对象,来编列字典中的key和value
    for k,v in b.items():
      print k,v
        把字典转换为列表(key和value会以元组的形式存储),然后定义两个变量,接收列表中元组的两个值,也可以利用字典的iteritems()方法,把字典转换成列表对象,这样更节省内存空间(类似xrange和range的区别)
    for k,v in b.iteritems():
      print k,v

    扩展

      1.for的高级特性
    print [ i for i in range(10) ]
    这叫列表重写,把for i in range(10),依次赋值给i,这样实际上等同于
    for i in range(10):
      print i
    后面也可以加条件:
    print [ i for i in range(10) if i % 2 == 0 ]
    来取偶数

      2.区间对象

    range(start,stop,step)
    整数型,用来取start----stop的区间,其中start和step默认省略,并且stop不包含在区间内,可以取一个范围,step是步长
     
    xrange(int)
    用法和range相同,只不过range会直接展开列表(展开列表即要占内存空间,在区间很大的时候,不建议使用),而xrange不会展开,仅仅当我们轮训的时候,才会展开显示。

    PS:Python3 中舍弃了range,并且把python2 中的xrange改成了range。

    练习

      打印9*9乘法表:
    for i in range(1, 10):
        for j in range(1, i+1):
            print('{} * {} = {}	'.format(i, j, j*j),end="")
        print()
      打印10以内的奇偶数:
    for i in range(1, 10):
        if i % 2 != 0:
            print(i)
    注意:由于print默认会打印一个换行符,这里我们在print语句后面添加,(逗号)来取消换行符的输出。 

    for循环的else语句

    for iterating_var in sequence:
      statemen(s)
    else:
      statemen(s)
    注意:else语句为for循环正常结束后要执行的语句,如果for循环被终止(比如满足某条件跳出循环等),那么就不会执行else后面的语句

    While循环

      for 循环主要去对列表、字符串、文件的行数等有次数的循环上。  
      while 循环在有条件的控制上。
      while循环,直到表达式变为假(或者有一个break),才退会出while循环,表达式是一个逻辑表达式,必须返回一个True或False

    语法格式

    while expression:
        statement(s)
    
    #注意:避免写成死循环
    

    练习

        直到输入是q,退出循环
    x = ''
    while x != 'q':
        user_input = input('Input: ')
        if user_input == 'q' or user_input == 'quit':
            x = 'q'
            print('End')
        else:
            print("Next")
            continue
        判断输入的时候是空字符,是的话,就退出循环
    x = ''
    while x != 'q':
        user_input = input('Input: ')
        if user_input == 'q' or user_input == 'quit':
            x = 'q'
            print('End')
        elif not user_input:
            break
        else:
            print("Next")
            continue

     在Python中空表示false,所以not x,就表示True,所以if not x表达式成立就直接break了。

    Python循环控制

      Python中的循环控制主要有三种方式,即:continue、break、pass。

      • continue:继续,当满足条件后,跳过本次循环。  
      • break:退出,当满足某一个条件后,终止循环。  
      • pass:占位符,仅仅起到占位的左右,没有其他效果。  
      扩展:sys.exit():sys模块的exit方法,表示退出整个程序

    练习

        猜数字游戏,给6次机会,数字是20以内的随机数。
    import random
    while True:
        guest_number = random.randint(1,20)
        n = 0
        while n <= 5:
            user_input = input('Guest a number:').strip()
            if user_input.isdigit():
                user_input = int(user_input)
                if user_input == guest_number:
                    print('Yeah,You Win!!!')
                    break
                elif user_input > guest_number:
                    print('Smaller')
                else:
                    print('Bigger')
                if n != 5:
                    print('You hava {} chances'.format(5 - n))
                n += 1
            else:
                print('Must be a Number')
                continue
        user_input = input('Continue? Y or other:').strip()
        if user_input == 'y' or user_input == 'yes':
            continue
        else:
            break
  • 相关阅读:
    第五周上机作业
    第四周练习
    第八周上机练习
    第七周作业
    第七周上机练习
    第六周作业
    第六周上机练习
    第五周上机作业
    第四周作业
    第四周上机练习
  • 原文地址:https://www.cnblogs.com/dachenzi/p/7696058.html
Copyright © 2020-2023  润新知