精华内容
下载资源
问答
  • while (entries.hasNext()) { entry = (Map.Entry) entries.next(); name = (String) entry.getKey(); Object valueObj = entry.getValue(); if (null == valueObj) { value = ""; } else if (valueObj instanceof ...
     public static Map getRequestMap(HttpServletRequest request) {
            Map properties = request.getParameterMap();
            Map returnMap = new HashMap();
            Iterator entries = properties.entrySet().iterator();
            Map.Entry entry;
            String name = "";
            String value = "";
            while (entries.hasNext()) {
                entry = (Map.Entry) entries.next();
                name = (String) entry.getKey();
                Object valueObj = entry.getValue();
                if (null == valueObj) {
                    value = "";
                } else if (valueObj instanceof String[]) {
                    String[] values = (String[]) valueObj;
                    for (int i = 0; i < values.length; i++) {
                        value = values[i] + ",";
                    }
                    value = value.substring(0, value.length() - 1);
                } else {
                    value = valueObj.toString();
                }
                try {
                    returnMap.put(name, value);
    //                returnMap.put(name, new String(value.getBytes("iso8859-1"), "UTF-8"));
                } catch (Exception ex) {
    //                throw new PageErrorMessageException("HttpServletRequest转换字符出错!");
                }
            }
            return returnMap;
        }

     

    本方法将HttpServletRequest 对象中的请求参数们转成放入Map类型对象中的key-value对儿

    展开全文
  • 一、while循环1、一般格式格式:首行以及测试表达式,有一列或多列缩进语句的主体以及一个选用的else部分(控制权离开循环时而没有碰到break语句时会执行)python会一直计算开投的测试,然后执行循环主体内的语...

    while语句,提供了编写通用循环的一种方法,而for语句是用来遍历序列对象内的元素,并对每个元素运行一个代码块。break,continue用在循环内,跳出整个循环或者跳出一次循环。

    一、while循环

    1、一般格式

    格式:首行以及测试表达式,有一列或多列缩进语句的主体以及一个选用的else部分(控制权离开循环时而没有碰到break语句时会执行)

    python会一直计算开投的测试,然后执行循环主体内的语句,直到测试返回假值为止。

    while :

    else:

    2、例子

    >>> while True:

    ...  print "Type Ctrl+C to stop!"

    >>> while x:

    ...     print x,

    ...     x=x[1:]

    ...

    diege iege ege ge e

    注意 print末尾的逗号,会使所有输出都出现在同一行。

    >>> a,b=0,10

    >>> while a

    ...     print a,

    ...     a+=1

    ...

    0 1 2 3 4 5 6 7 8 9

    Python并没有其他语言中所谓的"do until”循环语句,不过我们可以在循环主体底部以一个测试和break来实现类似的功能。

    while    True:

    do something

    if exitTest():break

    3、对比shell的while语句

    while 命令

    do

    命令1

    命令2

    done

    在系统管理时常用与逐行读取一个文件并处理。

    while read line

    do

    echo $line

    done < /etc/rc.conf

    shell中还有一个类似while的循环until

    until 条件

    do

    命令1

    命令2

    done

    EG:

    IS_ROOT=`who |grep root`

    until [ "$IS_ROOT" ]

    do

    echo 'root online'

    sleep 2

    done

    二、 break continue pass和循环的else

    break

    跳出最近所在的循环(跳出整个循环语句)

    continue

    跳到最近所在循环的开头处(来到循环的首行,跳过本次循环)

    pass

    什么事也不做,只是空占位语句

    循环else块

    只有当循环正常离开时才会执行(也就是没有碰到break语句)

    1、一般循环格式

    加入break和continue语句后,while循环的一般格式如下:

    while :

    if :break

    if :continue

    if :pass

    else:

    break和continue可以出现在while(或for)循环主体的任何地方,但通常会进一步嵌套在if语句中,根据某些条件来采取对应的操作。

    2、列子

    pass

    >>> while 1:pass

    ...

    pass可用于空类,有时有指的是"以后会填上”,只是暂时用于填充函数主体而已:

    >>> def func1():

    ...     pass

    continue

    continue语句会立即跳到循环的顶端,开始下一次循环。

    >>> while x:

    ...     x=x-1

    ...     if  x%2!=0:continue

    ...     print x,

    ...

    8 6 4 2 0

    这个例子中,如果是奇数就返回循环顶部,不会打印.是偶数就打印。

    这个下面这个结果一样

    >>> while x:

    ...     x=x-1

    ...     if x%2==0:

    ...             print x,

    ...

    8 6 4 2 0

    注意这两个例子的print位置,第一个print是属于while块的,测试不通过下执行,测试通过就回到循环顶端,第二个是属于if块的,只有测试通过才打印

    >>> while x:

    ...     x=x-1

    ...     if x%2==0:

    ...             print x,

    ...break

    break语句会立刻离开循环。碰到break,位于其后的循环代码都不会执行。

    while 1:

    name=raw_input("Enter name:")

    if name=='stop':break

    age=raw_input("Enter age:")

    print 'Hello',name,'=>',int(age)**2

    当age不输入任何值时会报错。可以使用try解决

    while 1:

    name=raw_input("Enter name:")

    if name=='stop':break

    age=raw_input("Enter age:")

    try:

    print 'Hello',name,'=>',int(age)**2

    except:

    print 'Please input age!'

    else 只有当循环正常离开时才会执行(也就是没有碰到break语句【break的条件不满足】)

    >>> while x:

    ...     x=x-1

    ...     print x

    ... else:

    ...     print "over"

    ...

    9

    8

    7

    6

    5

    4

    3

    2

    1

    0

    over

    >>> x=10

    >>> while x:

    ...     x=x-1

    ...     if x==5:break

    ...     print x

    ... else:

    ...     print "over"

    ...

    9

    8

    7

    6

    三、for循环

    for循环在Python中是一个通用的序列迭代器:可以遍历任何有序的序列对象内的元素。for语句可用于字符串,列表,元组,其他内置可迭代对象以及之后我们能够通过类所创建的新对象。

    1、一般格式

    Python for循环的首行定义了一个赋值目标(或【一些目标】),以及你想遍历的对象,首行后面是你想重复的语句块(一般都有缩进)

    for in :

    else:

    当ptyhon运行for循环时,会逐个将序列对象中的元素赋值给目标,然后为每个元素执行循环主体。循环主体一般使用赋值的目标来引用序列中当前的元素,就好像那事遍历序列的游标。

    for首行中用作赋值目标的变量名通常是for语句所在作用于的变量(可能是新的)。这个变量名没有什么特别的,甚至可以在循环主体中修改。但是当控制权再次回到循环顶端时,就会自动被设成序列的下一个元素。循环之后,这个变量一般都还是引用了最近所用过的元素,也就是序列中最后的元素,除非通过一个break语句退出了循环。

    for语句也支持一个选用的else块,它的工作就像在while循环中一样:如果循环离开时没有碰到break语句,就会执行(也就是序列所有元素都被访问过了)

    break和continue语句也可用在for循环中,就像while循环那样。for循环完整的格式如下:

    for in :

    if :break

    if :conitnue

    else:

    对比shell的for循环

    for  变量名 in 列表

    do

    命令1

    命令1

    done

    for i in 1 2 3

    do

    echo $i

    don

    for i in `ls -1 /root`

    do

    echo $i

    done

    2、例子

    1)基本应用

    >>> x=[1,2,3,4,5]

    >>> for i in x:

    ...     print i

    ...

    1

    2

    3

    4

    5

    >>> for i in x:

    ...     if i==3:break

    ...     print i

    ...

    1

    2

    >>> for i in x:

    ...     print i

    ...     if i==3:break

    ...

    1

    2

    3

    注意if语句的位置

    > D={'name':['diege','lily','kelly'],'class':2012,'number':48}

    >>> for i in D:

    ...     print i,'=>',D[i]

    ...

    number => 48

    name => ['diege', 'lily', 'kelly']

    class => 2012

    多层

    >>> for i in D:

    ...     if type(D[i])==list:

    ...             for l in D[i]:

    ...                     print l

    ...     else:

    ...             print  D[i]

    ...

    48

    diege

    lily

    kelly

    2012

    for元组赋值

    首行定义了一个赋值【一些目标】

    >>> T=[(1,2),(3,4),(5,6)]

    >>> for (a,b) in T:

    ...     print a,b

    ...

    1 2

    3 4

    5 6

    for循环嵌套

    遍历一个字典(或列表)包括字典,列表,元组的的语句

    D={'game':'sjgame','version':[1.0,1.1,1.2,1.3],'useid':(1000,1001,1002,1003,1004),'character':{'WS':'wushi','FS':'fashi','MS':'moshi

    '},'CP':'ice'}

    for i in D:

    if type(D[i])==list:

    for l in D[i]:

    print l

    elif type(D[i])==tuple:

    for t in D[i]:

    print t

    elif type(D[i])==dict:

    for d in D[i]:

    print d

    else:

    print   D[i]

    代替break的

    >>> items=['diege',999,(3,7),1.3]

    >>> tests=[(3,7),3.14]

    >>> for key in tests:

    ...     for item in items:

    ...             if key==item:

    ...                     print key,'was found'

    ...                     break

    ...     else:

    ...             print key,'not found!'

    ...

    (3, 7) was found

    3.14 not found

    有点类似查找的功能。

    收集两个序列中相同元素

    >>> seq1='diege'

    >>> seq2='decgl'

    >>> res=[]

    >>> for x in seq1:

    ...     if x in seq2:

    ...             res.append(x)

    ...

    >>>

    >>> res

    ['d', 'e', 'g', 'e']

    准确的说是显示seq1和seq2都用的在seq1一次顺序。

    3、为什么要在意“文件扫描”

    循环读取文件:while在文件结尾时使用break

    >>> fl=open('/etc/rc.conf')

    >>> while True:

    ...     char=fl.read(1)

    ...     if not char:break

    ...     print char,

    MS for循环打印出来的字体正常点,呵呵。

    >>> for char in open('/etc/rc.conf'):for char in open('/etc/rc.conf').read():的缩写

    ...     print char

    ...

    使用while按行处理

    >>> fl=open('/etc/rc.conf')

    >>> while True:

    ...     line=fl.readline()

    ...     if not line:break

    ...     print line,

    ...

    按行读取文件文件时,for循环是最容易编写及执行最快的选择

    >>> for line in open('/etc/rc.conf'):#默认read()

    ...     print line

    ...

    >>> for line in open('/etc/rc.conf').readlines():

    ...     print line

    ...

    readlines会一次把文件载入到行字符串的列表

    >>> for line in open('/etc/rc.conf').xreadlines():

    ...     print line

    ...

    xreadlines则是按需求加载文字列,从而避免大型文件导致内存溢出。

    每个步骤所读取的数据越多,程序会员越快。

    四、迭代器:初探

    for循环可以用在任何【可迭代的对象】。这些迭代工具包括了for循环,列表解析,in成员关系测试,以及map内置函数等。

    可迭代对象:如果对象是实际保存的序列,或者可以在迭代工具环境中(如for循环)一次产生一个对象的结果,就被看作是可迭代。

    总之,可迭代对象包括实际序列和按照需求而计算的虚拟序列。

    1、文件迭代器

    文件对象有个方法名为readline,可以一次从一个文件中读取一行文本,每次调用readline方法时,就会前进到下一列,到文件末尾时,就会返回空字符串,可以通过它来检查从而跳出循环。文件对象有另外一个方法next,差不多用有相同的效果。

    >>> fl=open('/etc/rc.conf')

    >>> fl.next()

    '#apache22_enable="YES"\n'

    >>> fl.next()

    '# -- sysinstall generated deltas -- # Tue Feb 14 10:08:27 2012\n'

    两者的区别在于,达到文件末尾时,next是引发内置的StopIteration异常,而不是返回空字符串。

    这个接口就是python所谓的迭代协议:有next方法的对象会前进到下一个结果,而在一些列结果的末尾时,则会引发StopIteration.

    在Python中,任何这类对象都认为是可迭代的。任何这类对象也能以for循环或其他迭代工具遍历,因为所有迭代工具内部工作起来都是在每次迭代中调用next,并且捕捉StopIteration异常来确定何时离开。

    逐行读取文本的最佳方式就是根本不要去读取,其替代的方法就是,让for循环在每轮自动调用next从而前进到下一行。

    >>> for line in open('/etc/rc.conf'):

    ...     print line.upper(),

    逐行读取文件并转换为大写,注意没有可以从文件中读取内容。

    这首读取文本文件的最佳方式,最简单,运行最快,内存使用情况最好。

    >>> for line in open('/etc/rc.conf').readlines:

    这种方式一次把文件都加载到内存。

    2、其他内置类型迭代器

    >>> D={'a':1,'b':2,'c':3}

    >>> for key in D.keys():

    ...     print key,D[key]

    ...

    a 1

    c 3

    b 2

    新版无需使用keys方法

    >>> for key in D:

    ...     print key,D[key]

    ...

    a 1

    c 3

    b 2

    3、其他迭代环境

    列表解析,in成员关系,map内置函数以及其他内置工具(如sorted,sum)

    >>> [line.upper() for line in open('/etc/rc.conf')]

    >>> upper=[line.upper() for line in open('/etc/rc.conf')]

    >>> map(str.upper,open('/etc/rc.conf'))

    map对迭代对象中每一个元素都应用一个函数调用,类似于列表解析,有局限性,因需要函数,而不是任意表达式。

    >>> sorted(open('/etc/rc.conf')) #这个工具排序了,较新的内置函数,采用了迭代协议。应用于任何可迭代的对象上。

    >>> sum([3,5,6,9]) #sum调用会计算任何可迭代对象内所有数字的和

    23

    而如果可迭代对象中的任何元素或者全部元素为True,内置函数就会返回True:all全部元素为True才返回True,有一个元素不为

    True,都会返回flase

    >>> any(['diege','','ni'])

    True

    >>> any(['diege','',''])

    True

    >>> all(['diege','','ni'])

    False

    >>> all(['diege','a','ni'])

    True

    其他工具:list和tuple内置函数(从可迭代对象创建新的对象),字符串join方法(在可迭代对象内字符串之间放入子字符串),以及序列赋值语句等。

    >>> list(open('/etc/rc.conf'))

    >>> tuple(open('/etc/rc.conf'))

    >>> '&&'.join(open('/etc/rc.conf'))

    >>> a,d,c,d=open('/etc/rc.conf')

    4、用户定义的迭代器

    yield语句可以把用户定义的函数变成可迭代的对象。如果的列表解析也可以通过生成器表达式支持次协议,而用户定义的类

    也能通过__iter__或__getitem__运算符重载方法而变成迭代对象。用户定义的迭代器可以在这里的任何迭代环境中使用任意对象和运算。

    五、编写循环的技巧

    遍历序列时,首选for循环,for循环包括多数计数器式的循环,for比while容易写,执行时也比较快。

    Python提供了两个内置函数,在for循环内定制迭代:

    * 内置range函数返回连续整数列表,可作为for中的索引。

    >>> range(5)

    [0, 1, 2, 3, 4]

    >>> range(5,10)

    [5, 6, 7, 8, 9]

    >>> range(5,10,2)

    [5, 7, 9]

    *内置 zip函数返回并行的元素元祖的列表,可用于在for中遍历数个序列

    1、循环计算器:while和range

    >>> range(5),range(2,5),range(3,10,2)

    ([0, 1, 2, 3, 4], [2, 3, 4], [3, 5, 7, 9])

    步进为负时候为递减,默认递增

    >>> range(5,-5,-1)

    [5, 4, 3, 2, 1, 0, -1, -2, -3, -4]

    range最常用于在for循环中,提供一种简单的方法,重复特定次数的动作。

    >>> for i in range(3):

    ...     print i,'pythons'

    ...

    0 pythons

    1 pythons

    2 pythons

    >>> for i in range(0,10,2):

    ...     print i

    ...

    0

    2

    4

    6

    8

    如果真的要明确地掌控索引逻辑,可以用while循环来实现。

    >>> X='diege'

    >>> i=0

    >>> while i

    ...     print X[i];i+=1

    ...

    d

    i

    e

    g

    e

    也可以使用for进行手动索引,也就是用range产生用于迭代的索引的列表

    >>> range(len(X))

    [0, 1, 2, 3, 4]

    >>> for i in range(len(X)):print X[i],

    ...

    d i e g e

    2、非完备遍历:range

    尽量使用简单的for循环,不要用while,并且不要在for循环中使用range调用,只将其视为最后的选择,更简单的办法总是更好。

    >>> for i in X:

    ...     print i

    ...

    d

    i

    e

    g

    e

    使用range可以做更特殊的遍历种类。

    >>> S='rhrhrfxvlwsocv'

    >>> for i in range(0,len(S),2):print S[i]

    ...

    r

    r

    r

    x

    l

    s

    c

    更好的办法

    >>> for x in S[::2]:print x

    ...

    r

    r

    r

    x

    l

    s

    c

    3、修改列表:range

    可以使用range和for的组合的常见场合就是在循环中遍历列表时并对其进行修改。如某些原因某种理由要为列表中每个元素都加1.

    >>> L=[1,2,3,4,5]

    >>> L

    [1, 2, 3, 4, 5]

    >>> for i in range(len(L)):

    ...     L[i]+=1

    ...

    >>> L

    [2, 3, 4, 5, 6]

    4、并行遍历:zip 和map

    >>> L1=[1,2,3,4]

    >>> L2=[5,6,7,8]

    >>> zip(L1,L2)

    [(1, 5), (2, 6), (3, 7), (4, 8)]

    >>> for (x,y) in zip(L1,L2):

    ...     print x,y,'--',x+y

    ...

    1 5 -- 6

    2 6 -- 8

    3 7 -- 10

    4 8 -- 12

    zip从两列或者多列中提取出来元素配对。

    >>> T1,T2,T3=(1,2,3),(4,5,6),(7,8,9)

    >>> zip(T1,T2,T3)

    [(1, 4, 7), (2, 5, 8), (3, 6, 9)]

    当参数长度不同时,zip会以最短序列的长度为准来截断所得到的元组:

    >>> S1='ABC'

    >>> S2='xyz123'

    >>> zip(S1,S2)

    [('A', 'x'), ('B', 'y'), ('C', 'z')]

    内置map函数,用类似的方式把序列的元素配对起来,但是如果参数长度,不同则会为较短的序列用None补齐。

    >>> map(None,S1,S2)

    [('A', 'x'), ('B', 'y'), ('C', 'z'), (None, '1'), (None, '2'), (None, '3')]

    使用zip构造字典

    >>> keys=['name','age','class']

    >>> vals=['diege',18,2012]

    >>> zip(keys,vals)

    [('name', 'diege'), ('age', 18), ('class', 2012)]

    前面学过dict()函数,可以将k:v组成元组按列表的形式传送给disc()产生字典。

    而zip可以掺产生这种格式的列表。故可以使用

    dict(zip(keys,vals)) 构造字典

    >>> dict(zip(keys,vals))

    {'age': 18, 'name': 'diege', 'class': 2012}

    >>> D5=dict(zip(keys,vals))

    5、产生偏移和元素:enumerate

    enumerate内置函数,同时产生偏移和元素

    >>> S='diege'

    >>> for (offset,item) in enumerate(S):

    ...     print item,offset

    ...

    d 0

    i 1

    e 2

    g 3

    e 4

    这个方法有个next方法,每次遍历列表时,会返回一个(index,value)的元组,而我们能在for中通过元组赋值运算将其分解。

    >>> E=enumerate(S)

    >>> E.next()

    (0, 'd')

    >>> E.next()

    (1, 'i')

    >>> E.next()

    (2, 'e')

    >>> E.next()

    (3, 'g')

    >>> E.next()

    (4, 'e')

    >>> E.next()

    Traceback (most recent call last):

    File "", line 1, in

    StopIteration

    六、列表解析:

    >>> L=[1,2,3,4,5]

    >>> for i in range(len(L)):

    ...     L[I]+=10

    ... L

    >>> L

    [1, 2, 3, 4, 5]

    这样解析方式已经过时,这里用单个表达式取代循环,来产生所需要的结果列表

    >>> L=[1,2,3,4,5]

    >>> L=[x+10 for x in L]

    >>> L

    [11, 12, 13, 14, 15]

    1、列表解析基础

    列表解析是写在方括号中的,因为它毕竟是一种创建新的列表的方式。它是我们编写的任何表达式开始,而该表达式中使用了一个我们所编写循环的变量(x+10)。后面所接的就是for循环的首行,指出循环变量的名称以及可迭代的对象(for x in L)

    [【表达式】 for x in L【for循环行首】]

    技术角度,列表解析绝不是必须要求。因为可以使用for循环,在遍历的过程中把表达式结果加在列表上。

    >>> res=[]

    >>> L

    [11, 12, 13, 14, 15]

    >>> for x in L:

    ...     res.append(x+10)

    ...

    >>> L

    [11, 12, 13, 14, 15]

    不过列表解析写起来更简明,这种创建结果列表的编码模式在Python中是很常见的工作。而且运行更快,是以C语言的速度执行。

    2、对文件使用列表解析

    >>> f=open('/etc/rc.conf')

    >>> lines=f.readlines()

    >>> lines

    ['#apache22_enable="YES"\n', '# -- sysinstall generated deltas -- # Tue Feb 14 10:08:27 2012\n', 'ifconfig_em1="inet 192.168.1.200  netmask 255.255.255.0"\n', '#ifconfig_em0="DHCP"\n', '# -- sysinstall generated deltas -- # Tue Feb 14 10:09:24 2012\n', 'ifconfig_em1="inet 192.168.1.200  netmask 255.255.255.0"\n', '#hostname="ofreebsd.corp.icee.cn"\n', 'hostname="ofreebsd.skylog.cn"\n', '# -- sysinstall generated deltas -- # Tue Feb 14 10:12:04 2012\n', 'sshd_enable="YES"\n', '#mysql_enable="YES"\n']

    列表中包含的有换行符,如果想去掉换行符怎么办呢?

    想到字符串的rstrip方法,但是怎么应用呢?也可以使用(line[:-1]也可以

    >>> lines=[line.rstrip() for line in lines]

    >>> lines

    ['#apache22_enable="YES"', '# -- sysinstall generated deltas -- # Tue Feb 14 10:08:27 2012', 'ifconfig_em1="inet 192.168.1.200  netmask 255.255.255.0"', '#ifconfig_em0="DHCP"', '# -- sysinstall generated deltas -- # Tue Feb 14 10:09:24 2012', 'ifconfig_em1="inet 192.168.1.200  netmask 255.255.255.0"', '#hostname="ofreebsd.corp.icee.cn"', 'hostname="ofreebsd.skylog.cn"', '# -- sysinstall generated deltas -- # Tue Feb 14 10:12:04 2012', 'sshd_enable="YES"', '#mysql_enable="YES"']

    如果是打开文件读取文件,完全可以不用事先打开,可以在表达式内开启它。

    >>> lines=[line.rstrip() for line in open('/etc/rc.conf')]

    3、扩展列表解析语句

    列表解析在实际使用中可以更高级。表达式中嵌套的for循环可以结合一个if分句来过滤测试不为真的结果元素,这可是一项有用的扩展功能。

    重复上一个例子,但我们只需开头不为#的文字行。

    >>> lines=[line.rstrip() for line in open('/etc/rc.conf') if line[0]!='#']

    >>> lines

    ['ifconfig_em1="inet 192.168.1.200  netmask 255.255.255.0"', 'ifconfig_em1="inet 192.168.1.200  netmask 255.255.255.0"', 'hostname="ofreebsd.skylog.cn"', 'sshd_enable="YES"']

    更复杂的情况,列表解析也可以含有嵌套循环,写成一系列的for分句。实际上,其完整的语句可接纳任意数目的for分句,而每个分区都可以结合一个可选的if分句

    >>> [x+y for x in 'abc' for y in 'lmn']

    ['al', 'am', 'an', 'bl', 'bm', 'bn', 'cl', 'cm', 'cn']

    对一个字符串中的每个x,以及另一个字符串中的每个y,创建x+y合并的列表。收集两个字符串字符的排列组合

    展开全文
  • 经过昨天的学习,相信大家已经对python的条件判断表达式if/else有一定的了解了,那么我们今天配合昨天的课程讲解一个新概念 –while循环。都说程序源于生活,假如有这样一个场景:老师要求算出1~100之间所有数字的...

    经过昨天的学习,相信大家已经对python的条件判断表达式if/else有一定的了解了,那么我们今天配合昨天的课程讲解一个新概念 –while循环 。

    都说程序源于生活,假如有这样一个场景:老师要求算出1~100之间所有数字的累计求和(杠精说:5050,我百度一下就知道)。

    u13767762553296579520fm26gp0-300x300.jpg

    那换个数字,你给我算出1~9977之间所有的数字累计求和,你再去百度试一试?

    杠精:给我等着,兜里掏出计算器,papapa,一顿狂按…..5050+100+101+102+103…

    9150e4e5gy1fr5iaqrryyj20go0uewfp-1.jpg

    一.while循环语法:

    1

    2while判断条件:

    执行语句……

    二.while循环示例:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18# !usr/bin/env python

    # -*- coding:utf-8 _*-

    """

    @Author:何以解忧

    @Blog(个人博客地址): shuopython.com

    @WeChat Official Account(微信公众号):猿说python

    @Github:www.github.com

    @File:while循环.py

    @Time:2019/9/19 21:22

    @Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!

    """

    a=1

    whilea<10:# 当 a >= 10 时,条件不成立

    print(a)

    a+=2# 等价 a = a + 2

    输出:1 3 5 7 9,下面是详细执行流程

    1111.gif

    分析下上面代码:while 之后是条件表达式,如果为真,会继续执行while内的代码,执行完所有while内的代码又重新回到第二行,检查 a < 10 是否成立,当a <10 条件不成立时,跳出while循环,由于循环之外没有任何代码,直接退出程序。

    看完上面代码,我们来一起完成文章开始的问题,1~9977之间所有的数字累计求和,代码如下:1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11a=1

    sum=0

    whilea<9977:

    # 当a >= 9977 时条件不成立,跳出循环,

    # a 的值每次加1,如果要 >= 9977 ,意味着要循环 9977 次

    # print(a)

    a+=1# 等价 a = a + 1,a的值每次累计加 1

    sum+=a# 等价 sum = sum + a

    print("while循环一共执行了 %d 次"%a)# a 的值每次加1 ,

    print("1~99777之间所有的数字累计求和的结果是:{}".format(sum))

    输出结果:1

    2while循环一共执行了9977次

    1~9977之间所有的数字累计求和的结果是:49775252

    三.while死循环

    文章看到这里,可能有些小伙伴就有想法了,要是我条件始终成立,始终为True呢~

    %E4%B8%8B%E8%BD%BD-3-300x243.jpg

    恭喜你,程序卡死了,退不出来了,比如下面代码:1

    2whileTrue:

    print("程序啥时候结束就啥时候去吃饭")

    输出结果:1

    2

    3

    4

    5

    6程序啥时候结束就啥时候去吃饭

    程序啥时候结束就啥时候去吃饭

    程序啥时候结束就啥时候去吃饭

    程序啥时候结束就啥时候去吃饭

    程序啥时候结束就啥时候去吃饭

    .........(无限循环,直到海枯石烂,直到天荒地老,直到你秃顶)

    %E4%B8%8B%E8%BD%BD-3-1-300x300.jpg

    如何解决上面死循环问题,我们留到下一篇文章继续讲解,传送门:python教程 – 关于循环中使用break/continue

    四.重点总结

    while循环是python开发中必不可少的,其实使用也比较简单,需要牢牢掌握。

    猜你喜欢:

    1.python运算符

    2.关于循环中使用break/continue

    转载请注明:猿说Python » python while

    展开全文
  • While 循环while 循环会一直循环代码块,只要指定的条件为 true。语法while (条件) { 要执行的代码块}实例在下面的例子中,循环中的代码将运行,一遍又一遍,只要变量(i)小于 10:while (i < 10) { text += "数字...

    JavaScript While 循环

    • JS Loop For
    • JS Break
    5d5c73de3ff690bd8259e3a9d1b1dea3.png

    只要条件为 true,循环能够一直执行代码块。

    While 循环

    while 循环会一直循环代码块,只要指定的条件为 true。

    语法

    while (条件) {    要执行的代码块}

    实例

    在下面的例子中,循环中的代码将运行,一遍又一遍,只要变量(i)小于 10:

    while (i < 10) {    text += "数字是 " + i;    i++;}

    如果您忘了对条件中使用的变量进行递增,那么循环永不会结束。这会导致浏览器崩溃。

    Do/While 循环

    do/while 循环是 while 循环的变体。在检查条件是否为真之前,这种循环会执行一次代码块,然后只要条件为真就会重复循环。

    语法

    do {    要执行的代码块}while (条件);

    实例

    下面的例子使用了 do/while 循环。该循环会执行至少一次,即使条件为 false,因为代码块会在条件测试之前执行:

    do {    text += "The number is " + i;    i++; }while (i < 10);

    不要忘记对条件中所用变量进行递增,否则循环永不会结束!

    比较 For 与 While

    如果您已经阅读了之前关于循环的章节,您会发现 while 循环与 for 循环相当类似,其中的语句 1 和 语句 2 都可以省略。

    本例中的循环使用 for 循环来提取 cars 数组中的汽车品牌:

    实例

    var cars = ["BMW", "Volvo", "Saab", "Ford"];var i = 0;var text = "";for (;cars[i];) {    text += cars[i] + "
    "; i++;}

    本例中的循环使用 while 循环来提取 cars 数组中的汽车品牌:

    实例

    var cars = ["BMW", "Volvo", "Saab", "Ford"];var i = 0;var text = ""; while (cars[i]) {    text += cars[i] + "
    "; i++;}
    展开全文
  • While循环

    2019-04-28 08:31:33
    下面我们使用C#语法基础中做一个While循环,下面我们来看一个例子,写入While循环的方法让他执行语句。 While循环是什么意思呢。他就不像for循环那样有次数结束语句。而While循环是没有次数结束语句。与次数无关的...
  • 学完循环, 沐浴着while的光芒,闲来无事和同事一起扯皮, 我说:“编程语言好神奇, 一个小小的循环,竟然在生活中也可以找到原理和例子”,同事也被我的描述勾起了兴趣,问我:"能不能举个例子呢?”望着他空洞的毫无...
  • 我们来看下面的例子: ... 我们将上一篇中for循环的例子改为while循环,然而生成的汇编代码却是一模一样的,这里就不在赘述了。有兴趣的朋友请查看《C语言汇编代码分析(for循环)》。   ...
  • php while循环

    千次阅读 2017-02-20 14:37:54
    while循环 while循环可以运用于需要反复运行的同一代码块。   1、while的语法: While(条件为真){ ...3、下面我们举一个简单的while循环例子。首先设置初始值$i=0,设置条件为$i,让$i自增,然后输
  • 前言在上一期原创文章《for循环太Low?分享几段我工作中经常使用的for代码!》中,我介绍了几段工作中常用的for循环代码,这期再简单介绍一下while循环与for循环...
  • for循环: for(语句1;语句2;语句3){ //语句 1 在循环开始之前... 执行代码块; //语句 2 定义运行循环的条件。 } //语句 3 会在循环每次被执行后执行。 例子:依次输出数组中的值 var arr = ["值1","值2","值3"...
  • Do While循环

    2019-04-28 08:34:58
    下面我们使用C#语法基础中的Do While循环,下面我们来看一个例子,写入Do While循环的方法让他执行语句。 Do While循环是什么意思呢。他就不像for循环那样有次数结束语句。也不像While循环那样给他条件执行。Do ...
  • While 循环

    2015-03-25 09:36:16
    While 循环只要指定条件为 true,循环就可以一直执行代码。语法: while (条件) { 需要执行的代码 }  下面通过一个例子来说明js代码 var i=0; while ( i&lt;5) { var x= "The number is &...
  • 在while、for、do...while、while循环中使用break语句退出当前循环,直接执行后面的代码。 格式如下: for(初始条件;判断条件;循环后条件值更新) { if(特殊情况) {break;} 循环代码 } 当遇到特殊情况的时候,...
  • while循环语句利用while语句,可以让一个代码块一遍又一遍的执行,只要while语句的条件为true时:while语句将会执行。while语句包含几部分组成关键字条件(求值为true或flase的表达式:换句话说就是判断语句)以冒号...
  • 只要循环条件为True(以下例子为x > y),while循环就会一直 执行下去: u, v, x, y = 0, 0, 100, 30 ⇽--- ❶ while x > y: ❷ u = u + y x = x - y if x < y + 2: v = v + x x = 0 else: v = v + y + 2 x = x...
  • 在while、for、do...while、while循环中使用break语句退出当前循环,直接执行后面的代码。 格式如下: for(初始条件;判断条件;循环后条件值更新) { if(特殊情况) {break;} 循环代码 } 当遇到特殊情况...
  • 16段代码入门Python循环语句导读:本文重点讲述for语句和while语句。for语句属于遍历循环while语句属于当型循环。除了两个循环语句外,还介绍了break、continue与pass三个用于控制循环结构中的程序流向的语句。在...
  • 今天我们来学习while循环的使用方法。 如果我们想对循环的开始条件与结束条件做一些文章,就得用while循环了, 上例子: # 又双叒叕是一个打印数字的例子 x = 1 while x < 5: print(x) # 在这里x += 1的作用是...
  • Do while循环

    2018-03-18 17:24:00
    如果while后边的表达式结果为true,该循环体会一直循环。如果结果false,该循环终止。 }while(条件表达式) 例子:100以内所有3的倍数的和: var i=1; var sum=0; do{ if(i%3==0){ ...
  • 不论什么编程语言,第一次学习都会讲到”hello world”,都会讲到循环.同样在python的世界中也是有循环的。当然在我们的系统业务流程上也是可以有...一.While循环直接上例子:a=1while a<10:print(a)a+=2上面的代码...
  • 在写一个程序时,可能有一种情况,当你需要一遍又一遍的执行一些操作。在这样的情况下,则需要写循环语句,以减少代码的数量。 JavaScript支持所有必要的循环,以帮助您在所有...下面的例子说明了一个基本的while循环
  • JavaScript While 循环

    2012-10-16 15:51:58
    while 循环用于在指定条件为 true 时循环执行代码。 语法: while (变量结束值) { 需执行的代码 } 注意:除了 实例: 解释:下面的例子定义了一个循环程序,这个循环程序的参数 i 的起始值为 0。该程序会反复...
  • 为解决这个问题,Python提供了循环结构语法,下面介绍while循环语句。 while循环   先引入一个简单例子——打印5行”Hello world!“。如果采用顺序结构,就需要写5行:print(“Hello world!”)。这显得很繁琐,...
  • 通过实际的例子,你会非常容易理解for循环。 你创建一个项目。解决方案名称为Sloution18,项目名称为Exercise18,项目类型为控制台程序。点击Program.cs. 在里边加入这些代码。 简单解释一下这个
  • while循环 语法: var 变量 = 0; while(循环的条件){ 循环体; } 执行过程: 先判断条件是否成立,如果是false,大括号里面的代码都不执行;如果是true,执行循环体;然后进入新的一轮循环,判断条件是否成立,成立...
  • python中while循环和for循环的区别 两者在使用过程中在某些情况下可相互替代,但是注意一点,两者的区别就是while循环适用于未知次数的循环,而for循环适用于已知次数的循环。下面举个小例子就能很好理解了。 while...
  • 前言 今天来说下python中的循环。循环的意思是什么,以环形、回路或轨道运行;沿曲折的路线运行;特指运行一周而回到原处。...先定义了num = 1 那么num 就是1的意思,然后while循环,当Num小于等10 的时
  • while循环和do-whild循环

    2020-03-07 23:57:11
    while循环 while ( 执行条件) 代码块; 执行条件为true执行循环体; 执行条件为false,则停止循环; 当执行条件一直为true时,会造死循环,游览器会崩溃掉 例子: var i=0; // 声明变量并初始化 while(i<5) { // i...
  • 学完循环, 沐浴着while的光芒,闲来无事和同事一起扯皮, 我说:“编程语言好神奇, 一个小小的循环,竟然在生活中也可以找到原理和例子”,同事也被我的描述勾起了兴趣,问我:"能不能举个例子呢?”望着他空洞的毫无...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 571
精华内容 228
关键字:

while循环代码例子