Datehoer的博客
我本将心向明月,奈何明月照沟渠
Datehoer的博客

当前位置:主页 > 技术分享 > python 列表循环后输出结果有个none

python 列表循环后输出结果有个none

浏览: 作者:Datehoer 发布日期:2020-11-08 15:04:51 来源: 原创
class Restaurant():
    def __init__(self, restaurant_name, cuisine_type):
        self.restaurant_name = restaurant_name
        self.cuisine_type = cuisine_type

    def describe_restaurant(self):
        return self.restaurant_name+"is a good restaurant.Its cuisine is"+self.cuisine_type

    def open_restaurant(self):
        return self.restaurant_name+"now is work"


class IceCreamStand(Restaurant):
    def __init__(self, restaurant_name, cuisine_type,*flavors):
        super().__init__(restaurant_name,cuisine_type)
        self.flavors = flavors

    def icelist(self):
        for sweet in self.flavors:
            print(self.restaurant_name+sweet)

        return ''

ice = IceCreamStand("sweeet","冰淇凌",'aa','bb')
print(ice.icelist())
在做python练习题的时候,遍历列表后发现输出结果带个none,非常烦躁。
查了许多方法,发现是因为有return返回值,如果不设置的话就会返回none,最直接的办法就是像上面一样,设置为空的字符串。但是感觉很难受,所以我把for循环去掉,然后把return修改了一下

return self.restaurant_name+str(self.flavors)
改成直接返回值了,而不是先遍历出数据再返回值,不过感觉还是非常不舒服,但是目前来说没有找到更好的方法了,等想到更好的方法回来修改一下!



差不多10分钟,我就又回来了,首先呢,self.flavors是一个元组,我之前一直以为是列表的。
说下方法,就是把元组给遍历出来,然后把他的值储存起来就可以了。
b = ""
for i in range(0,len(self.flavors)):
    c = self.flavors[i]
    b = b + c
    if i != len(self.flavors) -1:
        b = b+","
return b

#修改return为self.restaurant_name+b即可
元组的读取还是一样的都是xxx[?]进行读取,然后取一个变量等于这个值不断向上增加即可,后面的那个if是判断增加逗号的,显得更好看,为什么要加if是因为如果不加的话,那最后一个值也会加上,
sweetaa,bb,
输出这样的结果,非常难看,而如果加上判断
sweetaa,bb
输出这样的结果,还可以接受的,哈哈。有简单的方法可以在底下评论指出!



版权:本文由Datehoer原创,著作权归作者所有。商业转载请联系作者获得授权,非商业转载请保留以上作者信息和原文链接本文链接:https://zjzdmc.top/jsfx/38.html。

文章推荐

热门标签

返回顶部
下面为相关推荐
说点什么吧
  • 全部评论(0