基本上试图弄清楚如何创建一个for循环,该循环基于“ n”在主数字“ x”周围生成一个范围
x = 10 # x = Actual
n = 5
因为
Actual = input("What's the Actual") # Enter 10
Target = input("What's the Target") # Enter 15
n = Target - Actual # 5 = 15 - 10
因为实际是10
我想看..
5, 6, 7, 8, 9 , 10, 11, 12, 13, 14, 15
代码是:
n = 2
def price(sprice):
for i in range(n*2):
sprice = sprice + 1
print(sprice)
price(200)
此代码显示201,202,203,204
,实际为200。
我想看到198,199,200,201,202
,因为n = 2
乘以2 = 4时,显示4个值的范围大约为200
答案 0 :(得分:3)
根据the docs,range
可以接受两个参数,它们指定间隔的开始(包括)和结束(不包括)。因此,您可以获得[start, stop)
形式的间隔。
您要创建间隔[Actual - n, Actual + n]
,因此请记住将range
排除该范围内的第二个参数,几乎将其转换为Python您应该在其中添加一个:
>>> list(range(Actual - n, Actual + n + 1))
[5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
答案 1 :(得分:1)
ForceBru已经显示了针对您问题的pythonic解决方案。我只想补充说,经过一些细微调整,您的原始代码可以正常工作:
n = 2
def price(sprice):
sprice -= n # short way to say: sprice = sprice - n
for i in range(n*2+1): # +1 required as in 1-argument range it is exclusive
sprice = sprice + 1
print(sprice)
price(200)
输出:
199
200
201
202
203
请注意,Python认识到*
的执行要独立于+
的执行顺序。因此,您可以写1+n*2
代替n*2+1
。