Python练手例子(7),,37、对10个数进行


37、对10个数进行排序。

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

#python 3.7if __name__ == ‘__main__‘:    N = 10    print(‘请输入10个数字:\n‘)    l = []    print    for i in range(N):        l.append(int(input(‘请输入一个数字:\n‘)))    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.7if __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:\n‘)))    for i in range(3):        sum += a[i][i]    print(sum)

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

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

#python 3.7if __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(‘\n插入一个数字:\n‘))    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.7if __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 += 1if __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.7num = 2def autofunc():    num = 1    print(‘internal block num = %d‘ % num)    num += 1for i in range(3):    print(‘The num = %d‘ % num)    num += 1    autofunc()

参考资料:

Python 100例

Python练手例子(7)

评论关闭