1. 程式人生 > >python學習(8)

python學習(8)

== The lse 遍歷 while ber pass 學習 數字

退出雙層循環:
方式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學習(8)