blogernice

导航

python循环的几个案例2

  1. 使用内置 enumerate 函数进行遍历:

    for index, item in enumerate(sequence):
        process(index, item)

    实例

    >>> sequence = [12, 34, 34, 23, 45, 76, 89]
    >>> for i, j in enumerate(sequence):
    ...     print i,j
    ... 
    0 12
    1 34
    2 34
    3 23
    4 45
    5 76
    6 89
  2.    使用list.append()模块对质数进行输出。

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    # 输出 2 到 100 简的质数
    prime = []
    for num in range(2,100):  # 迭代 2 到 100 之间的数字
       for i in range(2,num): # 根据因子迭代
          if num%i == 0:      # 确定第一个因子
             break            # 跳出当前循环
       else:                  # 循环的 else 部分
          prime.append(num)
    print prime

    输出结果:

    [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
  3.    打印空心等边三角形:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    # 打印空心等边三角形 
    rows = int(raw_input('输入行数:'))
    for i in range(0, rows):
        for k in range(0, 2 * rows - 1):
            if (i != rows - 1) and (k == rows - i - 1 or k == rows + i - 1):
                print " * ",
            elif i == rows - 1:
                if k % 2 == 0:
                    print " * ",
                else:
                    print "   ",
            else:
                print "   ",
        print "\n"
  4. 打印1-9三角形阵列:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    for i in range(1,11):
        for k in range(1,i):
            print k,
        print "\n"

    输出结果:

    1 
    
    1 2 
    
    1 2 3 
    
    1 2 3 4 
    
    1 2 3 4 5 
    
    1 2 3 4 5 6 
    
    1 2 3 4 5 6 7 
    
    1 2 3 4 5 6 7 8 
    
    1 2 3 4 5 6 7 8 9
  5.  

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    '''在python中,for循环后的in跟随一个序列的话,循环每次使用的序列元素,而不是序列
    的下标'''
    s = 'qazxswedcvfr'
    for i in range(0,len(s),2):
        print s[i]
    '''enumerate() :
        在每次循环中,可以同时得到下标和元素
        际上,enumerate(),在每次循环中返回的是包含每个元素的定值表,两个元素分别赋值
     index,char'''
    for (index,char) in enumerate(s):
        print "index=%s ,char=%s" % (index,char)
     
  6.    冒泡排序:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    # 冒泡排序# 定义列表 list
    arays = [1,8,2,6,3,9,4]
    for i in range(len(arays)):
        for j in range(i+1):
            if arays[i] < arays[j]:
                # 实现连个变量的互换
                arays[i],arays[j] = arays[j],arays[i]
    print arays
  7.    更多实例:python 打印菱形、三角形、矩形的代码感觉,写的有点复杂了,如果让你画圆或者其他图形呢?

    其实运用数学公式,就可以了。比如菱形 |x - w/2| + |y - w/2| = w/2 轻松搞定。

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    width = int(raw_input('输入对角线长度: '))
    for row in range(width + 1):
        for col in range(width + 1):
            if ((abs(row - width/2) + abs(col - width/2)) == width/2):
                print "*",
            else:
                print " ",
        print " "
  8.    Python for 常用实例说明:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    print "for循环只能执行range内两数字相减次数"
    for i in range(1,10):     # 只能执行9次,判断循环终止条件是 >= 第二个数字 10 就不再执行 和 其他语言的 i=1 to 10 不同
        print 'i=:', i
    
    print "使用xrange还是一样的效果"
    for i in xrange(1,10,1):     #还是只能执行9次,和其他语言的 i=1 to 10 可执行10次是不同的
        print 'i=:', i    
        
    print 'for i in range(1,1)这样是不会进入循环的'
    print "而其他语言的 for i=1 to 1 是可以进入一次循环的"
    for i in range(1,1):     # 也就是说这样是不会进入循环的。
        print '没执行这里:i=:', i
    print "所以,要执行定次数循环必须将range(1,1)的第二个数字加1"
    
    print "for实现step效果递增"
    for i in xrange(0,10,2):
        print(i)
    
    print "for实现step效果递减"
    for i in xrange(10,0,-2):
        print(i)

    输出结果为:

    for循环只能执行range内两数字相减次数
    i=: 1
    i=: 2
    i=: 3
    i=: 4
    i=: 5
    i=: 6
    i=: 7
    i=: 8
    i=: 9
    使用xrange还是一样的效果
    i=: 1
    i=: 2
    i=: 3
    i=: 4
    i=: 5
    i=: 6
    i=: 7
    i=: 8
    i=: 9
    for i in range(1,1)这样是不会进入循环的
    而其他语言的 for i=1 to 1 是可以进入一次循环的
    所以,要执行定次数循环必须将range(1,1)的第二个数字加1
    for实现step效果递增
    0
    2
    4
    6
    8
    for实现step效果递减
    10
    8
    6
    4
    2
  9.    输出各种形状三角形:

    #coding=UTF-8
    rows = int(input('输入列数: '))
    print "用for函数书写的正等腰直角三角形"
    for i in range(0, rows):
        for k in range(0, i+1):
            print " * ",
        print "\n"
    print "用for函数书写的倒等腰直角三角形"
    for i in range(0, rows):
        for k in range(0, rows-i):
            print " * ",
        print "\n"
    print "用while函数书写的正等腰直角三角形"
    i=1
    while i:
        j=1
        while j:
            print "*"," ",
            if i==j:
                break
            j+=1
            if j>rows:
               break
        print "\n"
        i+=1
        if i>rows:
            break

    10.   Python 如何将整数转化成二进制字符串

    1、你可以自己写函数采用 %2 的方式来算。

    >>> binary = lambda n: '' if n==0 else binary(n/2) + str(n%2)
    >>> binary(5)
    '101'
    >>>

    2、采用 python 自带了方法 bin 函数,比如 bin(12345) 回返回字符串 '0b11000000111001', 这个时候在把0b去掉即可:

    >>> bin(12345).replace('0b','')
    '11000000111001'

    3、也可以采用字符串的 format 方法来获取二进制:

    >>> "{0:b}".format(12345)
    '11000000111001'
    >>>

    11.   Python 将一个数字转化为 对应ASCII , 用的是 ord('a') 和chr(59) 之类:

    Python 2.7.8 (default, Jun 30 2014, 16:08:48) [MSC v.1500 64 bit (AMD64)] on win  
    32  
    Type "help", "copyright", "credits" or "license" for more information.  
    >>> ord('b')  # convert char to int  
    98  
    >>> chr(100)  # convert int to char  
    'd'  
    >>> unichr(100) # return a unicode byte  
    u'd'  
    >>>
     

posted on 2019-07-15 11:00  blogernice  阅读(651)  评论(0)    收藏  举报