python学习(8)
退出双层循环:
方式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)
相关文章