Python生成随机数列表时,如何处理ValueError并支持输入stop终止程序?
实现输入"stop"终止程序的简便方法
核心思路是先捕获用户输入的原始字符串,先判断是否为"stop"(不区分大小写),是的话直接终止程序;不是的话再尝试转换为整数,这样就能区分"stop"指令和普通的非整数输入。
修改后的完整代码
def rechercheIndiceMin(tab): mini = tab[0] indiceMin = 0 for i in range(len(tab)): if tab[i] < mini: mini = tab[i] indiceMin = i return "L'indice minimum est :", indiceMin def rechercheIndiceMax(tab): maxi = tab[0] indiceMax = 0 for i in range(len(tab)): if tab[i] > maxi: maxi = tab[i] indiceMax = i return "L'indice maximum est :", indiceMax import random print("Soit un tableau tab de taille long avec des aléas [a,b]") while True: try: # 先获取输入字符串,判断是否为终止指令 input_a = input("Insérez a :") if input_a.lower() == "stop": print("程序终止") exit() a = int(input_a) input_b = input("Insérez b :") if input_b.lower() == "stop": print("程序终止") exit() b = int(input_b) input_long = input("Insérez longueur du tableau :") if input_long.lower() == "stop": print("程序终止") exit() long = int(input_long) tab = [0] * long if b < a: a, b = b, a # 简化交换逻辑 for i in range(long): tab[i] = random.randint(a, b) break except ValueError: print("Insérer un entier svp :") print(tab) indiceMin = rechercheIndiceMin(tab) print(indiceMin) indiceMax = rechercheIndiceMax(tab) print(indiceMax)
关键改动说明
- 每个输入步骤先捕获原始字符串,用
lower()统一转为小写,兼容"Stop""STOP"等不同输入形式 - 若输入匹配"stop",调用
exit()直接终止程序 - 简化了a和b的交换逻辑(用Python元组解包替代临时变量,更简洁)
- 保留了原有的非整数输入异常处理,确保普通非整数输入时仍提示用户输入整数
内容的提问来源于stack exchange,提问作者Benoit
相关产品推荐
相关产品推荐

