问题描述
如何求得任意N个整数的最大值与最小值
解决方案
解决这个问题有三种常见思路,第一种思路比较简单粗暴,就是对用户输入的每个整数两两之间进行比较,直到找到最大的整数和最小的整数为止。第二种思路是将用户输入的整数放入一个空列表中,然后利用Python内置的max()函数和min()函数分别得到最大值和最小值。第三种思路与第二种思路类似,也是将用户输入的整数放入一个空列表,然后对列表进行排序,列表下标为0的数即为最小值,列表下标为N-1的数即为最大值。接下来让我们来演示一下第三种方法:
N = int(input('请输入你要输入整数的个数:'))
List = []
for i in range(N): #根据N来确定要执行多少次List.append
List.append(int(input('请输入第%d个数:'%(i+1))))
List.sort() #对列表内的数据排序
print('输入的%d个整数中最小的整数是%d'%(N,List[0]))
print('输入的%d个整数中最大的整数是%d'%(N,List[N-1]))
运行结果如下:
很好,这串代码可以完美运行。但在我们的实际操作中,用户难免会失误输入错误的数据类型,导致Python无法正常处理某一个或者一段代码的时候就终止运行并出现报错。
如下图:
这时候我们需要对代码进行调整,增强其处理异常数据的能力。这里我们使用try,except语句块来捕获并处理异常。其基本语法结构如下所示:
try:
可能产生异常的代码块
except (Error1 as e) :
处理异常的代码块1
except (Error2 as e):
处理异常的代码块2
except (Exception):
处理其它异常
将其与我们原来的代码结合后如下所示:
try:
N = int(input('请输入你要输入数字的个数:'))
except Exception as result: #捕获异常并返回异常类型
print('输入错误,请重新输入\n',result)
else: #无异常时继续运行以下代码块
List = []
for i in range(N):
try:
List.append(int(input('请输入第%d个数:'%(i+1))))
except Exception as result:
print('输入错误,请重新输入\n',result)
List.sort()
print('输入的%d个整数中最小的整数是%d'%(N,List[0]))
print('输入的%d个整数中最大的整数是%d'%(N,List[N-1]))
异常处理如图所示:
加入处理异常的语句块后我们的代码更加健壮了!
结语
求得任意N个整数的最大值与最小值方法多种多样,其中,将用户输入的整数放入一个空列表,随后对列表进行排序,并增强其处理异常数据的能力使我们的代码更加高效有用!
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有