zoukankan      html  css  js  c++  java
  • 《转》python学习(11)-表达式和语句

    转自 http://www.cnblogs.com/BeginMan/p/3164600.html

    一、Python语句

    if语句、else语句、elif语句、条件表达式、while语句、for语句、break语句、continue语句、pass语句、Iterators(迭代器)、列表解析

    二、常用语句小结

    1、if语句可以通过布尔操作符and、or和not实现多重判断条件或否定判断条件

    2、if...elif...elif...else..

    3、三元操作符:Python2.5后:X if C else Y

    x,y=4,3
    if x>y:
        s = y
    else:
        s= x
        
    print s

    或许更加简洁的是:

    x,y = 4,3
    s = (x<y and [x] or [y])[0]

    在Python2.5更新后:

    x,y = 4,3
    s = x if x<y else y

    4、while:

    count = 0 
    while(count<9):
            .....
    或者:
    while True:
            .....
    #用的挺多的。

    5、for循环

    s = ['a','b','c','d','e']
    
    #No1:项
    for obj in s:
        print obj,          #a b c d e
        
    print range(len(s))     #[0, 1, 2, 3, 4]
    #No2:索引
    for obj in range(len(s)):
        print s[obj],       #a b c d e

    配合len()、range()使用,使用range()能得到迭代对象的索引数的列表。

    #No3:使用项和索引迭代
    for i,eachline in enumerate(s):
        print i,eachline
    #0 a
    #1 b
    #2 c
    #3 d
    #4 e

    enumrate():返回两个对象,一个是下标索引(%d),另一个是下标索引对应的元素(%s)

    6、break、continue

    break:结束当前循环,跳到下一条语句。
    continue:终止当前循环,忽略剩余的部分,然后回到循环的顶端,在开始执行下一次迭代前,验证是否通过,然后再进行下一次的迭代。

    pwd='abc'
    count = 0
    while count<3:
        inp =raw_input('Please input password:')
        if inp == pwd:
            print 'ok'
            break
        else:
            count += 1
    #        if count<3:
    #            print  'you have %d times to input password' %(3-count)
    #        else:
    #            print 'game over'
            #精简:x if ..else y
            s = 'you have %d times to input password' %(3-count) if count<3 else 'game over'
            print s

    7、pass

    pass:是一个很好的占位符,不做任何事情。

    注意:编写代码时,最好先别结构定下来,如果不想让一些代码干扰,那么最好的方法就是使用pass

    8、for、while与else的联合使用

    其他语言中,else只能用于if条件句,但是Python不同其他语言,else还能与for、while一起使用。在循环后处理,并且如果遇到break,则也会跳过else的。

    def showMaxFactor(num):
        count = num / 2
        while count > 1:
            if num % count == 0:
                print u'%d的最大公约数是: %d' %(num,count)
                break
            count -= 1
        else:
            print num,u'是素数'
            
    for eachNum in range(10,21):
        showMaxFactor(eachNum)  
  • 相关阅读:
    [JLOI2011]飞行路线 不同的算法,不同的悲伤
    洛谷 [USACO17OPEN]Bovine Genomics G奶牛基因组(金) ———— 1道骗人的二分+trie树(其实是差分算法)
    P3203 [HNOI2010]弹飞绵羊 —— 懒标记?分块?
    tarjan 题目汇总(含解析)
    P1262 间谍网络 (tarjan缩点 水过去)
    #1117. 编码 ( 字典树版 ) 题解分析
    一道并查集的(坑)题:关闭农场closing the farm
    四重解法---P1047 校门外的树
    一道搜索题【2013 noip提高组 DAY2 t3】华容道
    ●BZOJ 1499 [NOI2005]瑰丽华尔兹
  • 原文地址:https://www.cnblogs.com/nolonely/p/6624386.html
Copyright © 2011-2022 走看看