如何创建按指定数值范围输出对应数字的函数?
实现区间映射函数的简单方案
你的需求是将输入数值按以下规则映射输出:
- 1-29 → 1
- 30-59 → 2
- 60-89 → 3
- 后续每30个数,输出值加1
方案1:条件判断(新手友好,逻辑直观)
这种写法最容易理解,适合刚入门的开发者:
def get_mapped_value(num): # 处理输入小于1的异常情况,可根据需求调整 if num < 1: return None # 或者返回提示信息,比如"输入值必须≥1" if 1 <= num <= 29: return 1 elif 30 <= num <= 59: return 2 elif 60 <= num <= 89: return 3 # 处理更大的数值,每30个数对应输出+1 else: return ((num - 90) // 30) + 4
方案2:数学公式(更简洁,支持任意大的数)
观察规律:除了第一个区间(1-29),后面每个区间都是30个数。用整数除法可以快速计算:
def get_mapped_value(num): if num < 1: return None if num <= 29: return 1 # 从30开始,计算与30的差值,除以30取整后加2 return ((num - 30) // 30) + 2
其他语言示例(JavaScript)
如果用JavaScript实现,逻辑完全一致,只是语法不同:
function getMappedValue(num) { if (num < 1) return null; if (num >= 1 && num <= 29) return 1; else if (num >= 30 && num <= 59) return 2; else if (num >= 60 && num <= 89) return 3; else return Math.floor((num - 90)/30) + 4; }
内容的提问来源于stack exchange,提问作者Gordon Shumway
相关产品推荐
相关产品推荐

