51Testing软件测试论坛
标题: 请教老师关于顺序排序定义类方法重构问题 [打印本页]
作者: 雪中寻 时间: 2019-5-13 11:50
标题: 请教老师关于顺序排序定义类方法重构问题
重新定义了顺序查找的类,一直报错。请老师帮忙指点,感谢。class SC: def linear_search(self,data_set,value): for i in range(len(data_set)): if data_set == value: return i returnli=[6,34,2,0,5,475]c=SC()result=SC.linear_search(li,6)print(result)运行结果:
Traceback (most recent call last):
File "D:/Users/Administrator.3010-PC/PycharmProjects/spider/spider/kuozhan.py", line 37, in <module>
result=SC.linear_search(li,6)
TypeError: linear_search() missing 1 required positional argument: 'value'
Process finished with exit code 1
在学课程
Python测试开发全栈核心课程 互联网测试工程师必修课
作者: 学掌门网校 时间: 2019-5-13 11:53
程序看了一下,调用类方法的时候,要用对象名进行调用就好了。
c=SC()
result=SC.linear_search(li,6)
c是对象,sc是类
下面调用类方法时,需要写成c.linear_search(li,6)
作者: 雪中寻 时间: 2019-5-13 14:32
商老师,我修改了,但是还是不排序,或者排序的顺序有问题,有时候还不是list组里面的数
class bubble:
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]=tem
print("第", j, "次排序:", li)
print(li)
if __name__== '__main__':
s=bubble()
li=[3,7,8,0]
s.bubbl(li)
运行结果:
D:\Users\Administrator.3010-PC\PycharmProjects\untitled\spider\Scripts\python.exe D:/Users/Administrator.3010-PC/PycharmProjects/spider/spider/kuozhan2.py
4
第 1 次排序: [3, 7, 8, 0]
第 2 次排序: [3, 7, 8, 0]
第 3 次排序: [3, 7, 8, 0]
[3, 7, 8, 0]
作者: 雪中寻 时间: 2019-5-13 14:32
已经发现问题所在了。li[1 + 1]=tem 把1当成i写进去了..感谢老师
作者: 学掌门网校 时间: 2019-5-13 14:33
你说的很对,就是把i写成1 了,我也是写了一些调试语句,才发现这个小bug,你可以参考一下,如何加入调试的print语句。这样以后就知道怎么去定位问题了呵。
class bubble:
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]):
print("i",li[i]," i+1",li[i+1])
tem = li[i]
print("tem",tem)
li[i] = li[i + 1]
print("i", li[i])
li[1 + 1]=tem
print("i+1",li[i+1])
print("houi", li[i], " houi+1", li[i + 1])
print("第", j, "次排序:", li)
print(li)
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) |
Powered by Discuz! X3.2 |