python学习(8)

发布时间:2019-07-01 12:11:13编辑:auto阅读(1217)

    退出双层循环:
    方式1:try--except

    try:
        for i in range(5):
            for j in range(5):
                if i==3 and j ==3:
                    raise
    except:
        print(1)
    pass

    方式2:函数实现的return

    def fun():
        for i in range(5):
            for j in range(5):
                print(i,j)
                if i==3 and j ==3:
                    return True
    fun()

    方式3:多层break

    for i in range(5):
        for j in range(5):
            for k in range(5):
                if i == j == k == 3:
                    break
                else:
                    print (i, '----', j, '----', k)
            else: continue
            break
        else: continue
        break

    习题12:输入3个数字,达到3个数字求和,结束程序

    result = 0
    for i in range(3):
        number = input("please input number: ")
        result += int(number)
    print(result)
    习题13、 用户输入不同的数据,当输入的数据达到3个数字的时候,求和结束程序。(数字可以是整数)
    提示:判断是否整数的方法,isdigit()
    遍历所有的输入数据,判断是否在0-9的字符串范围内
    方式1: 
    #coding=utf-8
    result = 0
    count = 0
    while True:
        s = input("please input the number: ")
        for v in s:
            if v not in "0123456789":#如果不是数字跳出当前循环
                break
        else:
            count+=1
            result += int(s)
        if count ==3:
            break
    print(result)

    方式2:先定义一个判断数字的函数

    #encoding=utf-8
    def is_int(num):
        for n in num:
            if n not in "0123456789":
                return False
    return True
    
    result = 0
    number_count = 0
    while True:
        s = input("please input the number: ")
        if is_int(s):
            result += int(s)
            number_count += 1  
        if number_count == 3:
            break 
    print(result)

    方式3:利用isdigit()函数

    result1 = 0
    count1=0
    while True:
        s = input("please input the number: ")
        if s.isdigit():
            count1+=1
            result1 += int(s)
        if count1 ==3:
            break
    print(result1)

    习题14:用嵌套列表的方式,遍历输出一个矩阵
    方式1:

    
    l = [
         [1,2,3],
         [4,5,6],
         [7,8,9]
    ]
    for i in l:
        for j in i:
            print(j,end=" ")
        print()

    方式2:

    for i in range(len(l)):
        for j in range(len(l[i])):
            print(l[i][j],end = " ")
        print()

    习题15:嵌套列表的正、反对角线之和
    正对角线之和

    l = [
         [1,2,3], 
         [4,5,6], 
         [7,8,9]  
        ]
    rusult = 0
    for i in range(len(l)):
        for j in range(len(l[i])):
            if i==j:
                rusult += l[i][j]
    print(rusult)

    反对角线之和

    rusult = 0
    for i in range(len(l)):
        for j in range(len(l[i])):
            if (i+j)==2:
                rusult += l[i][j]
    print(rusult)

    习题16:求以下矩阵四边元素之和
    l = [
    [1,2,3,4,5],
    [1,2,3,4,5],
    [1,2,3,4,5],
    [1,2,3,4,5],
    [1,2,3,4,5]
    ]

    方法1:

    1、第1行和第5行所有元素求和
    2、其他行 只要第1列和第5列求和

    rusult = 0
    
    for i in range(len(l)):
        for j in range(len(l[i])):
            if i == 0 or i == 4:
                rusult += l[i][j]
            else:
                if j==0 or j==4:
                    rusult += l[i][j]
    print(rusult)

    方法2:所有元素之和,减去中间矩阵之和

    l = [
         [1,2,3,4,5], 
         [1,2,3,4,5], 
         [1,2,3,4,5],
         [1,2,3,4,5],
         [1,2,3,4,5]  
    ]
    
    matrix_element_sum = 0
    sub_matrix_element_sum = 0
    
    for i in range(len(l)):
        for j in range(len(l[i])):
    
            matrix_element_sum += l[i][j]
    
    result_mid = 0
    
    for i in range(len(l)):
        for j in range(len(l[i])):
            if i == 0 or i ==4:
                continue
            else:
                if j !=0 and j!=4:
                    sub_matrix_element_sum += l[i][j]
    print(matrix_element_sum - sub_matrix_element_sum)

关键字

上一篇: Python操作符

下一篇: python学习_14