zoukankan      html  css  js  c++  java
  • py4 程序流程控制

    目录

    条件语句

    Python程序语言指定任何非0和非空(null)值为true,0 或者 null为false。

    Python 编程中 if 语句用于控制程序的执行,基本形式为:

    if后面跟的判断条件可以是0 or 1 和 True or False

    if 判断条件1:
        执行语句1……
    elif 判断条件2:
        执行语句2……
    elif 判断条件3:
        执行语句3……
    else:
        执行语句4……
    import getpass
      
    name = raw_input('请输入用户名:')
    pwd = getpass.getpass('请输入密码:')
      
    if name == "alex" and pwd == "cmd":
        print("欢迎,alex!")
    else:
        print("用户名和密码错误")
    实例

    循环语句

    注意:循环的时候不能改变被迭代对象

    while循环

    i = 1
    while i < 10:   
        i += 1
        if i%2 > 0:     # 非双数时跳过输出
            continue
        print i         # 输出双数2、4、6、8、10
     
    i = 1
    while 1:            # 循环条件为1必定成立
        print i         # 输出1~10
        i += 1
        if i > 10:     # 当i大于10时跳出循环
            break
    
    
    # while配合else的用法
    # while … else 在循环条件为 false 时执行 else 语句块:
    count = 0
    while count < 5:
       print count, " is  less than 5"
       count = count + 1
    else:
       print count, " is not less than 5"
    使用实例

    for循环

    主要用于循环次数确定,或者遍历时使用

    Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。

    for letter in 'Python':     # 第一个实例
       print '当前字母 :', letter
     
    fruits = ['banana', 'apple',  'mango']
    for fruit in fruits:        # 第二个实例
       print '当前水果 :', fruit
     
    print "Good bye!"
    
    #for循环和else配合使用
    #else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while … else 也是一样。
    for num in range(10,20):  # 迭代 10 到 20 之间的数字
       for i in range(2,num): # 根据因子迭代
          if num%i == 0:      # 确定第一个因子
             j=num/i          # 计算第二个因子
             print '%d 等于 %d * %d' % (num,i,j)
             break            # 跳出当前循环
       else:                  # 循环的 else 部分
          print num, '是一个质数'
    实例

     Python中for循环搭配else的陷阱

    假设有如下代码:

    for i in range(10):
        if i == 5:
            print 'found it! i = %s' % i
    else:
        print 'not found it ...'

    你期望的结果是,当找到5时打印出:

    found it! i = 5

    实际上打印出来的结果为:

    found it! i = 5
    not found it ...

    显然这不是我们期望的结果。

    其实当迭代的对象迭代完并为空时,位于else的子句将执行,而如果在for循环中含有break时则直接终止循环,并不会执行else子句。

    所以正确的写法应该为:

    for i in range(10):
        if i == 5:
            print 'found it! i = %s' % i
            break
    else:
        print 'not found it ...'

    循环嵌套

    for循环嵌套

    for iterating_var in sequence:
       for iterating_var in sequence:
          statements(s)
       statements(s)

    while循环嵌套

    i = 2
    while(i < 100):
       j = 2
       while(j <= (i/j)):
          if not(i%j): break
          j = j + 1
       if (j > i/j) : print i, " 是素数"
       i = i + 1

    循环内语句

    Python pass 语句

    Python pass是空语句,是为了保持程序结构的完整性。

    pass 不做任何事情,一般用做占位语句。

    # 输出 Python 的每个字母
    for letter in 'Python':
       if letter == 'h':
          pass
          print '这是 pass 块'
       print '当前字母 :', letter

    break语句

    Python break语句,就像在C语言中,打破了最小封闭for或while循环。

    break语句用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,也会停止执行循环语句。

    break语句用在while和for循环中。

    如果您使用嵌套循环,break语句将停止执行最深层的循环,并开始执行下一行代码。 

    for letter in 'Python':     # 第一个实例
       if letter == 'h':
          break
       print '当前字母 :', letter
      
    var = 10                    # 第二个实例
    while var > 0:              
       print '当前变量值 :', var
       var = var -1
       if var == 5:   # 当变量 var 等于 5 时退出循环
          break
     

    continue语句

    Python continue 语句跳出本次循环,而break跳出整个循环。

    continue 语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环。

    continue语句用在while和for循环中。

    for letter in 'Python':     # 第一个实例
       if letter == 'h':
          continue
       print '当前字母 :', letter
     
    var = 10                    # 第二个实例
    while var > 0:              
       var = var -1
       if var == 5:
          continue
       print '当前变量值 :', var

    其他

    enumrate
    为可迭代的对象添加序号
    li = [11,22,33]
    for k,v in enumerate(li, 1):
        print(k,v)
    range和xrange
    指定范围,生成指定的数字
    print range(1, 10)
    # 结果:[1, 2, 3, 4, 5, 6, 7, 8, 9]
     
    print range(1, 10, 2)
    # 结果:[1, 3, 5, 7, 9]
     
    print range(30, 0, -2)
    # 结果:[30, 28, 26, 24, 22, 20, 18, 16, 14, 12, 10, 8, 6, 4, 2] 
     
  • 相关阅读:
    [SQL SERVER] The CHECK_POLICY and CHECK_EXPIRATION options cannot be turned OFF when MUST_CHANGE is ON. (Microsoft SQL Server, Error: 15128)
    CENTOS7 SYSTEMD SERVICE 将自己的程序放入自动启动的系统服务
    CentOS7 关闭selinux
    面试总结TODO
    很好用的 UI 调试技巧
    点满 webpack 技能点,让你的打包速度提效 90%
    前端缓存最佳实践
    Fiddler抓包工具总结
    按钮粒子效果
    如何优雅的在 vue 中添加权限控制
  • 原文地址:https://www.cnblogs.com/wlx97e6/p/9311815.html
Copyright © 2011-2022 走看看