设为首页收藏本站
查看: 61|回复: 0

[PHP] Python循环嵌套

[复制链接]

论坛元老

Rank: 6Rank: 6

积分
34274
主题
17031
UID
1347
M币
67
贡献
17176

  • 发表于 2017-5-14 02:44:00 | 显示全部楼层 |阅读模式
    Python 语言允许在一个循环体里面嵌入另一个循环。
    Python for 循环嵌套语法:

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

    Python while 循环嵌套语法:

    while expression:
    while expression:
    statement(s)
    statement(s)

    你可以在循环体内嵌入其他的循环体,如在while循环中可以嵌入for循环, 反之,你可以在for循环中嵌入while循环。
    实例:
    1. 从第一个列表中每次取出一个,从第二个列表中也每次取出一个,组合成一个新的列表,新列表中包含所有组合

    List1 = ['zi', 'qiang', 'xue', 'tang']
    List2 = [1, 2]

    new_list = []

    for m in List1:
    for n in List2:
    new_list.append([m, n])

    print new_list

    结果:

    [['zi', 1], ['zi', 2], ['qiang', 1], ['qiang', 2], ['xue', 1], ['xue', 2], ['tang', 1], ['tang', 2]]


    2. 从一个列表中每次取出两个,找出所有组合方式

    List = [1, 2, 3, 4, 5]
    length = len(List)

    for x in range(0, length-1):
    for y in range(x+1, length):
    print List[x], List[y]

    结果:

    1 2
    1 3
    1 4
    1 5
    2 3
    2 4
    2 5
    3 4
    3 5
    4 5


    3. 以下实例使用了嵌套循环输出2~20之间的素数:
    分析:对于一个数 n ,如果从 1 到 n ** 0.5(根号n) 的数都是能整除,那么n这个数就是素数。
    3.1 用 for 来实现

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

    n = 20

    for i in range(1, n):
    for j in range(2, int(i**0.5)):
    if i % j == 0:
    break
    else:
    print i, '是素数'

    3.2 用 while 来实现

    #!/usr/bin/python
    # -*- coding: utf-8 -*-

    i = 2
    while(i
    j = 2
    while(j
    if not(i%j): # 或者写 if i % j == 0,如果整除的意思
    break
    j = j + 1
    if (j > i/j):
    print i, " 是素数"
    i = i + 1

    print "Good bye!"

    解释:i % j 的意思是 i 除以 j 后的余数。对于数字,0对应的布尔值为假,其它值都是真,not ( i % j ) 的意思是 ,当 i % j 为 0 时才能条件成立,意思就是整除的时候,如果能整除的意思。

    以上实例输出结果:
    2 是素数
    3 是素数
    5 是素数
    7 是素数
    11 是素数
    13 是素数
    17 是素数
    Good bye!
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    在我站开通SVIP可同时获得17个站点VIP资源 立即登录 立即注册
    快速回复 返回顶部 返回列表