Python使用range按步长5生成两数间含首尾的序列问题求解
问题排查与修正
现有代码的3个核心错误
range()遵循左闭右开规则,第二个参数是终止边界,生成的序列不会包含该值本身。你当前代码的range终止值设为ig2,无法输出要求包含的结束值,需调整为ig2 + 1才能把ig2纳入序列范围。- 逻辑执行顺序错误:你先创建了range对象,再判断
ig1 <= ig2的合法性,若用户输入的第二个数更小,前面创建range的步骤完全多余,应该把range生成逻辑放到合法性判断的分支内。 - Python3中
range是惰性序列,直接打印不会输出具体数值,需要转成列表或者遍历拼接为要求的空格分隔格式。
修正后代码
ig1 = int(input('Enter your first integer: ')) ig2 = int(input('Enter your second integer: ')) if ig1 <= ig2: # 终止值+1保证包含ig2,转列表后用join拼接为空格分隔的字符串 range_list = list(range(ig1, ig2 + 1, 5)) print(' '.join(map(str, range_list))) else: print("Second integer can't be less than the first.")
效果验证
输入示例的-15和10时,生成的range为range(-15, 11, 5),转换列表后就是[-15, -10, -5, 0, 5, 10],拼接输出后完全符合预期结果。
内容的提问来源于stack exchange,提问作者Student_OKIE
相关产品推荐
相关产品推荐

