- 学习测试开发的Day77,真棒!
- 学习时间为1H20M
- 第四章列表、元组、字典-习题(19-20)
19、找出一个多维数组的鞍点,即该位置上的元素在该行上最大,在该列上最小,也可能没有鞍点
鞍点是二维数组中一个特殊的元素,它是本行最大的值,同时又是本列最小的值。
鞍点可能不止一个,也可能没有。
list1=[
[1,2,3,4,5,6],
[7,5,4,6,7,9],
[0,4,2,1,5,7]
]
max=min=row=col=0
h=len(list1)
for i in range(h):
max=list1[i][0]
for j in range(len(list1[i])): #依次求每一行的最大值
if list1[i][j]>max:
max=list1[i][j]
row=j #并记录最大值所在的位置的列数
#print("--------i: ",i)
#print("--------j: ",j)
min=list1[0][row]
for k in range(0,h):#求特定列的元素的最小值
#print("-------k: ",k)
#print("******row: ",row)
#print("====list1[k][row]: ", list1[k][row])
if list1[k][row]<min:
min=list1[k][row]
col=k #并记录最小值所在位置的行数
if max==min:
print("存在鞍点:%d ,横纵坐标分别为:%d %d"%(max,col,row))
输出结果:
PS D:\0grory\chapter4> python .\19_andian.py
存在鞍点:6 ,横纵坐标分别为:0 5
20、写一个函数,识别输入字符串是否是符合python语法的变量名(不能数字开头、只能使用数字和字母以及‘_’)
def pythonstring(s):
flag=0
if s[0] not in ("0123456789"):
for i in s:
if i not in ("0123456789_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ") :
flag=1
else:
flag=1
if flag==1:
print("格式不正确,不能数字开头、只能使用数字和字母以及‘_’")
else:
print("符合python语法")
while 1:
s=input("请输入要判断的字符串:")
pythonstring(s)
输出结果:
PS D:\0grory\chapter4> python .\20_myps.py
请输入要判断的字符串:5kdsaf
格式不正确,不能数字开头、只能使用数字和字母以及‘_’
请输入要判断的字符串:asdfasdfdasf
符合python语法
请输入要判断的字符串:asdf&*(*&
格式不正确,不能数字开头、只能使用数字和字母以及‘_’
请输入要判断的字符串:
第19题边看答案边理解终于懂了,这道题应该不难,可是自己就是用了好久才懂,看来自己对双层嵌套的数组遍历掌握的不太好呀!慢慢来,加油!