51Testing软件测试论坛
标题:
请教老师关于冒泡的定义类方法重构问题
[打印本页]
作者:
忘却
时间:
2019-5-13 11:45
标题:
请教老师关于冒泡的定义类方法重构问题
我用定义类的方式重新写了冒泡但是总是不对,老师帮我看看有啥问题吧。折腾了1多小时了..也找不出问题class bubble: def __init__(self): def bubbl(self,li): b=len(li) print (b) for j in range(1,b): for i in range(0,b-1): if self.li>li[i+1]: tem=li self.li=li[i+1] self.li[1+1] print(self.li)if __name__== '__main__': s=bubble() s.bubbl([4,3,2])
在学课程
Python测试开发全栈核心课程 互联网测试工程师必修课
http://www.atstudy.com/course/1593
作者:
学掌门网校
时间:
2019-5-13 11:52
自己学习思考问题了,非常好!这个程序有以下的一些需要调整的内容:
1、class bubble:
def __init__(self):这个初始化方法定义了,没有内容是不可以的,需要把这个初始化方法删除或注释
2、 def bubbl(self,li):
b=len(li)
print (b)
for j in range(1,b):
for i in range(0,b-1):
if self.li[i]>li[i+1]:
tem=li[i]
self.li[i]=li[i+1]
self.li[1+1]
print(self.li)
在bubbl方法中,是把li当一个外来的参数传入的,但是内部又使用了self.li这是不可以的。要么都用参数li,要么不要传参数,li在方法体内赋值,可以用self.li.
两个内容不能混用,如下:
def bubbl(self,li):
b=len(li)
print (b)
for j in range(1,b):
for i in range(0,b-1):
if li[i]>li[i+1]:
tem=li[i]
li[i]=li[i+1]
li[1+1]
print(li)
3、main函数调用时,建议最好先设置一个变量列表,然后再传入,这样写法更规范一些
if __name__== '__main__':
s=bubble()
li=[4,3,2]
s.bubbl(li)
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2