如何一次性输入包裹的三个尺寸参数?Python程序报错求助
包裹尺寸验证Python程序修正
原代码存在的问题
- 输入获取错误:不能用
float()包裹输入提示字符串,应该用input()获取用户输入的字符串。 - 字符串拆分错误:分隔符使用
',,'不符合输入格式(用户用逗号分隔),且变量名M1和后续使用的M不统一。 - 未定义变量:
L、W、T未定义,K的计算无意义;条件中的x也未定义,属于语法错误。 - 条件判断语法错误:数值比较的写法不符合Python语法,比如
float(M[0]) 100 <= x <= 600是错误的,应该直接对转换后的数值进行范围判断。
修正后的代码
# 获取用户输入,格式为length,width,thickness(毫米) measure_input = input('Specify in mm measurements length,width,thickness: ') # 按逗号拆分输入字符串,得到三个尺寸的字符串列表 dimensions = measure_input.split(',') # 将字符串转换为浮点数,并赋值给对应的变量 length = float(dimensions[0]) width = float(dimensions[1]) thickness = float(dimensions[2]) # 计算尺寸总和 total = length + width + thickness # 验证尺寸是否符合要求 if 100 <= length <= 600 and width <= 100 and thickness <= 90 and total <= 900: print('Allowed!') else: print('Not allowed!')
代码说明
- 输入处理:用
input()获取用户输入的字符串,再通过split(',')按逗号拆分,得到三个尺寸的字符串。 - 类型转换:将拆分后的字符串转换为浮点数,方便进行数值计算和比较。
- 条件判断:直接针对每个尺寸变量进行范围验证,确保语法正确,逻辑清晰。
- 总和计算:先定义好各个尺寸变量后,再计算总和,避免未定义变量的错误。
额外提示
如果需要处理用户输入不规范的情况(比如输入不是三个数值、输入包含非数字字符),可以添加异常处理:
try: measure_input = input('Specify in mm measurements length,width,thickness: ') dimensions = measure_input.split(',') length = float(dimensions[0]) width = float(dimensions[1]) thickness = float(dimensions[2]) total = length + width + thickness if 100 <= length <= 600 and width <= 100 and thickness <= 90 and total <= 900: print('Allowed!') else: print('Not allowed!') except (ValueError, IndexError): print('Invalid input! Please enter three numbers separated by commas.')
内容的提问来源于stack exchange,提问作者mathbeforepython
相关产品推荐
相关产品推荐

