如何实现让用户通过键盘输入向量元素并查询向量长度?
实现用户输入向量并查询长度的Python程序
原代码的问题
- 完全缺失用户输入逻辑:初始
x是空列表,n = len(x)结果为0,导致后续循环根本不会执行,无法获取任何向量数据 - 代码逻辑是计算元素求和,和题目要求的「查询向量长度」不符
修正后的完整实现
以下代码会先获取用户输入的向量大小,再收集对应数量的元素,最后计算并输出向量的欧几里得长度(模长)(如果需要的是元素个数,直接输出向量大小即可):
print("你好!欢迎使用向量工具") # 获取合法的向量大小(正整数) while True: try: vec_size = int(input("请输入向量的大小:")) if vec_size > 0: break print("请输入大于0的正整数!") except ValueError: print("输入无效,请输入整数!") # 收集向量元素 vector = [] for idx in range(vec_size): while True: try: element = float(input(f"请输入向量的第{idx+1}个元素:")) vector.append(element) break except ValueError: print("输入无效,请输入数字!") # 计算向量的欧几里得长度(模长) import math vec_length = math.sqrt(sum(e**2 for e in vector)) # 输出结果 print(f"\n你输入的向量:{vector}") print(f"向量的元素个数:{vec_size}") print(f"向量的欧几里得长度:{round(vec_length, 2)}")
代码说明
- 输入校验:通过
try-except循环确保用户输入的向量大小是正整数,元素是有效数字,避免程序崩溃 - 元素收集:根据用户指定的大小,循环收集对应数量的元素存入列表
- 长度计算:利用数学公式计算向量模长——各元素平方和的平方根,用
round()保留两位小数提升可读性 - 结果输出:清晰展示输入的向量、元素个数和模长
内容的提问来源于stack exchange,提问作者Juan Peña
相关产品推荐
相关产品推荐

