You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 11:42:25