Python Zybooks实验max_magnitude函数兼容函数调用格式输入问题
Zybooks Python实验多格式输入兼容方案
问题原因
原有代码的输入逻辑仅支持每行一个整数的输入场景,当输入为max_magnitude(5,8)这类带函数标识、括号的字符串时,直接对整行内容做int()类型转换会触发值错误,导致运行失败。
兼容修改代码
核心逻辑为优先清洗输入内容,提取其中的有效整数值,不限制输入的外层格式:
import re def max_magnitude(user_val1, user_val2): if abs(user_val1) > abs(user_val2): return user_val1 else: return user_val2 # 多格式输入处理逻辑 # 读取所有输入内容合并为单个字符串 input_content = '\n'.join(iter(input, '')) # 正则匹配提取所有整数(支持负数) nums = list(map(int, re.findall(r'-?\d+', input_content))) user_val1, user_val2 = nums[0], nums[1] print(max_magnitude(user_val1, user_val2))
兼容验证
- 两行输入场景:分别输入
5、8,提取得到参数5和8,输出结果为8 - 函数格式输入场景:输入
max_magnitude(-12, 9),提取得到参数-12和9,输出结果为-12
内容的提问来源于stack exchange,提问作者Gingerfreak420
相关产品推荐
相关产品推荐

