• Python练手例子(7)


    37、对10个数进行排序。

    程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,下次类推,即用第二个元素与后8个进行比较,并进行交换。

    #python 3.7
    
    if __name__ == '__main__':
        N = 10
        print('请输入10个数字:
    ')
        l = []
        print
        for i in range(N):
            l.append(int(input('请输入一个数字:
    ')))
        print
        for i in range(N):
            print(l[i])
        print
    
        #排列10个数字
        for i in range(N - 1):
            min = i
            for j in range(i + 1, N):
                if l[min] > l[j] : min = j
            l[i], l[min] = l[min], l[i]
        print('排列之后:')
        for i in range(N):
            print(l[i])

    38、求一个3*3矩阵主对角线元素之和。

    程序分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。

    #python 3.7
    
    if __name__ == '__main__':
        a = []
        sum = 0.0
        for i in range(3):
            a.append([])
            for j in range(3):
                a[i].append(float(input('input num:
    ')))
        for i in range(3):
            sum += a[i][i]
        print(sum)

    39、有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。

    程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。

    #python 3.7
    
    if __name__ == '__main__':
        #加入0作为占位符
        a = [1, 4, 6, 9, 13, 16, 19, 28, 40, 100, 0]
        print('原始列表:')
        for i in range(len(a)):
            print(a[i], end = ' ')
        number = int(input('
    插入一个数字:
    '))
        end = a[9]
        if number > end:
            a[10] = end
        else:
            for i in range(10):
                if a[i] > number:
                    temp1 = a[i]
                    a[i] = number
                    for j in range(i + 1, 11):
                        temp2 = a[j]
                        a[j] = temp1
                        temp1 = temp2
                    break
        print('排序后列表:')
        for i in range(11):
            print(a[i], end = ' ')

    注:在Python3.x中,print(a[i], end = ' ')可以让数字不换行

    40、将一个数组逆序输出。

    程序分析:用第一个与最后一个交换。

    #python 3.7
    
    if __name__ == '__main__':
        a = [9, 6, 5, 4, 1]
        N = len(a)
        print(a)
        for i in range(int(len(a) / 2)):
            a[i], a[N - i - 1] = a[N - i - 1], a[i]
        print(a)

    41、模仿静态变量的用法。

    
    
    #python 3.7
    def varfunc():
        var = 0
        print('var = %d' % var)
        var += 1
    if __name__ == '__main__':
        for i in range(3):
            varfunc()
    
    # 类的属性
    # 作为类的一个属性
    class Static:
        StaticVar = 5
        def varfunc(self):
            self.StaticVar += 1
            print(self.StaticVar)
    
    print(Static.StaticVar)
    a = Static()
    for i in range(3):
        a.varfunc()

    42、学习使用auto定义变量的用法。

    程序分析:没有auto关键字,使用变量作用域来举例吧。

    #python3.7
    
    num = 2
    def autofunc():
        num = 1
        print('internal block num = %d' % num)
        num += 1
    for i in range(3):
        print('The num = %d' % num)
        num += 1
        autofunc()

    参考资料:

    Python 100例

  • 相关阅读:
    nginx技术总结
    剑指offer学习摘录面试2 单例模式 JoannaIn
    visual stadio 编译c++文件 JoannaIn
    Git生成SSH密钥
    spring——自动装配【非常详细】
    @Target:注解的作用目标
    SSH客户端神器之 MobaXterm
    Maven 最全教程,看了必懂,99% 的人都收藏了!
    必须了解的MySQL三大日志:binlog、redo log和undo log
    MyBatis批量插入几千条数据,请慎用foreach
  • 原文地址:https://www.cnblogs.com/finsomway/p/10384822.html
Copyright © 2020-2023  润新知