Python读取整数输入:输出前后数字及range用法疑问
你的代码问题及正确解法
先说说你代码里的两个关键错误:
input是Python内置函数,必须加括号调用(也就是input()),你漏了括号的话,会把函数本身传给int(),直接触发报错。- 用
range来实现这个需求完全是绕远路,而且你写的range(number ,+ 1, -1)语法和逻辑都不对——range的参数格式是range(起始值, 结束值, 步长),你这样写的循环根本不会按预期执行。
其实这个需求非常简单,不需要循环,直接计算前后数值就行:
# 正确获取用户输入的整数 number = int(input("请输入一个整数:")) # 计算前一个数和后一个数 previous_num = number - 1 next_num = number + 1 # 输出结果 print(previous_num, next_num)
要是你非要试试用range(纯属练手,没必要这么做),可以这么写:
number = int(input("请输入一个整数:")) # 生成包含前一个数、当前数、后一个数的范围(range是左闭右开,所以结束值要写number+2) for num in range(number - 1, number + 2): if num != number: print(num, end=" ")
测试输入3的话,两种写法都会输出2 4,完全符合你的要求。
内容的提问来源于stack exchange,提问作者Melike_Ozg
相关产品推荐
相关产品推荐

