魔法方法代码求助
def delblank(x):result = []
y = ''
for each in x:
if each != ' ':
result.append(each)
else:
break
for each in result:
y += each
return y
class Word(str):
def __lt__(self, other):
self = delblank(self)
other = delblank(other)
if len(self) < len(other):
return True
else:
return False
def __le__(self, other):
self = delblank(self)
other = delblank(other)
if len(self) <= len(other):
return True
else:
return False
def __eq__(self, other):
self = delblank(self)
other = delblank(other)
if len(self) == len(other):
return True
else:
return False
def __ne__(self, other):
self = delblank(self)
other = delblank(other)
if len(self) != len(other):
return True
else:
return False
def __gt__(self, other):
self = delblank(self)
other = delblank(other)
if len(self) > len(other):
return True
else:
return False
def __ge__(self, other):
self = delblank(self)
other = delblank(other)
if len(self) >= len(other):
return True
else:
return False
老版第43讲动动手第2题,这个代码去不了空格是怎么回事呀,求大神解答 报错什么内容吗? 无法删除空格是因为delblank里面的第一个循环使用了break导致的 result = []
y = ''
for each in x:
if each != ' ':
result.append(each)
## else:
## break
for each in result:
y += each
return y解决办法也很简单,把else还有break注释掉即可 不能懒 发表于 2021-8-1 13:49
报错什么内容吗?
没有报错,奇奇怪怪的就运行起来了,最后输出的仍然是带空格的,比如输入hello world,本应该输出为hello,但最后输出的还是hello world{:10_269:} Brick_Porter 发表于 2021-8-1 16:48
无法删除空格是因为delblank里面的第一个循环使用了break导致的解决办法也很简单,把else还有break注释掉即 ...
我是想输出第一个空格出现前的字符,比如输入'hello world',想最后结果输出为'hello',结果一直不行,也不知道原因{:10_266:} Cathavenotail 发表于 2021-8-1 17:15
我是想输出第一个空格出现前的字符,比如输入'hello world',想最后结果输出为'hello',结果一直不行,也 ...
你的意思是把一个字符串按照空格分割,然后输出第一个子字符串对不对? Brick_Porter 发表于 2021-8-1 17:22
你的意思是把一个字符串按照空格分割,然后输出第一个子字符串对不对?
对对对{:10_257:} Cathavenotail 发表于 2021-8-1 17:27
对对对
要是这样就简单了,一行代码就搞定了def first_word(s):
return s.split()
s = 'hello world'
print(first_word(s))
字符串有一个split功能,可以分割字符串,默认就是用空格作为分割条件的,它返回一个包含子字符串的列表,由于我们只需要第一个子字符串,所以使用获取第一个即可 Brick_Porter 发表于 2021-8-1 17:32
要是这样就简单了,一行代码就搞定了字符串有一个split功能,可以分割字符串,默认就是用空格作为分割条 ...
换了这个代码后还是输出的hello worldC:\Users\wpz\Desktop\123.png
好像问题不是出在这个上面,应该是在这个魔法方法上class Word(str):
def __lt__(self, other):
self = delblank(self)
other = delblank(other)
if len(self) < len(other):
return True
else:
return False
{:10_266:} Cathavenotail 发表于 2021-8-1 17:41
换了这个代码后还是输出的hello world
好像问题不是出在这个上面,应该是在这个魔法方法上class Word(st ...
C:\Users\wpz\Desktop\123.jpg Brick_Porter 发表于 2021-8-1 17:32
要是这样就简单了,一行代码就搞定了字符串有一个split功能,可以分割字符串,默认就是用空格作为分割条 ...
嗷嗷,又运行了一遍,这次对了,谢谢谢♪(・ω・)ノ
页:
[1]