练习python非数学函数中出现的一个问题
def makelist(start, stop, inc):
value=start
result=[]
while value<=stop:
result.append(value)
return result
mylist=makelist(0, 100, 0.2)
print(mylist)
mylist=makelist(0, 100, 0.2)
print(mylist)
以下为运行结果
Traceback (most recent call last):
File ~\untitled0.py:16 in
mylist=makelist(0, 100, 0.2)
File ~\untitled0.py:12 in makelist
result.append(value)
MemoryError
MemoryError
想要达成:0,0.2,0.4……99.8,100
while value<=stop:
result.append(value)
你在循环中要改变value的值啊,否则死循环
def makelist(start, stop, inc):
value=start
result=[]
while value<=stop:
result.append(round(value, 1))
value = value + inc
return result
mylist=makelist(0, 100, 0.2)
print(mylist)
问题,在循环中 没有改变 value 的值,导致 出现死循环。 修改代码如下
def makelist(start, stop, inc):
value = start
result = []
while value <= stop:
# 修改小数的精度
result.append(round(value, 1))
value += inc
return result
mylist = makelist(0, 100, 0.2)
print(mylist)
1、value的值得变
2、输出的小数点后的小数点位控制在1位
def makelist(start, stop, inc):
value = start
result = []
while value <= stop:
result.append(round(value, 1))
value += inc
return result
mylist = makelist(0, 100, 0.2)
print(mylist)
```
忘记在循环中改变value值,导致value永远小于stop,所以程序会一直循环,最终导致内存溢出,记得修改一下就好了
def makelist(start, stop, inc):
value=start
result=[]
while value<=stop:
result.append(value)
value = value + inc
return result
mylist=makelist(0, 100, 0.2)
print(mylist)
def makelist(start, end, inc):
return [i for i in range(start, end+1, inc)]
while语句里value值始终是0,stop始终是100,0始终小于100,while始终在循环运行,result始终在append值,内存result占用内存始终在增加,系统内存可使用量始终在减小,所以必然会报内存不足的错误啊哥,死循环了已经。
问题,在循环中 没有改变 value 的值,导致 出现死循环。 修改代码如下
丶丶丶
def makelist(start, stop, inc):
value = start
result = []
while value <= stop:
# 修改小数的精度
result.append(round(value, 1))
value += inc
return result
mylist = makelist(0, 100, 0.2)
print(mylist)
没有改变value的值
将每一次的添加都写入value
def makelist(start, stop, inc):
value=start
result=[]
while value<=stop:
value = value + inc # 这个是新增的代码,其他的没变
result.append(value)
return result
mylist=makelist(0, 100, 0.2)
print(mylist)
r = [round(i*0.2, 2) for i in range(0, round(100/0.2)+1)]
print(r)
def makelist(start, stop, inc):
value = start
result = []
while value <= stop:
result.append(round(value, 1))
value += inc
return result
mylist = makelist(0, 100, 0.2)
print(mylist)
你忘记修改value
的值了,直接代码死循环,然后内存溢出报错了,按照你的描述应该修改成这样
def makelist(start, stop, inc):
value=start
result=[]
while value<=stop:
result.append(value)
value += inc
return result
mylist=makelist(0, 100, 0.2)
print(mylist)