求助:实现数组最大值时获取用户输入遇ValueError(字符串转整数失败)
解决ValueError: could not convert string to int问题
这个错误的核心原因很直接:你用int(input())转换输入内容时,用户输入的不是合法整数格式——比如输了字母、小数点、空格或者空内容,Python没办法把这些内容转成整数,就会触发这个错误。
给你两种可行的解决思路:
思路1:添加输入校验,确保用户输入合法整数
在获取每个元素时,用循环加异常捕获,直到用户输入正确的整数为止:
n = int(input()) ar = [] for i in range(n): while True: try: x = int(input()) ar.append(x) break except ValueError: print("请输入合法的整数!") print(max(ar))
思路2:改成一次性输入多个元素(更高效)
很多场景下用户更习惯一次性输入所有元素(用空格分隔),这种方式能减少输入错误概率,代码可以改成这样:
# 先输入元素个数,再输入空格分隔的元素 n = int(input()) ar = list(map(int, input().split())) # 校验输入的元素个数是否符合要求 if len(ar) != n: print(f"请输入{n}个整数!") else: print(max(ar))
如果不需要提前指定元素个数,还可以更灵活:
ar = list(map(int, input("请输入空格分隔的整数:").split())) print(max(ar))
内容的提问来源于stack exchange,提问作者VISHAL
相关产品推荐
相关产品推荐

