“TypeError:没有足够的格式字符串参数”在Python 3.6中使用%s

时间:2018-02-02 13:06:17

标签: python

我正在尝试使用Python 3.6创建和使用类,但是当我尝试调用打印有关我的类的信息的方法时,我收到以下错误:

.shrink-toolbar {
  height: 32px;
}

这是我正在尝试运行的代码:

'TypeError: not enough arguments for format string'

open_restaurant()方法工作正常但是使用my_restaurant.describe()我收到了我提到的错误消息。

3 个答案:

答案 0 :(得分:2)

看到你正在使用python3.6。 f-strings更好。

class Restaurant(object):


    def __init__(self, name, type):
        self.name = name
        self.type = type

    def describe(self):
        print(f"Restaurant name: {self.name}, Cuisine type: {self.type}")

    def open_restaurant(self):
        print(f"{self.name} is now open!")

my_restaurant = Restaurant("Domino", "Pizza")

my_restaurant.describe()
my_restaurant.open_restaurant()  
Restaurant name: Domino, Cuisine type: Pizza
Domino is now open!

答案 1 :(得分:0)

你需要传递一个元组:

print("Restaurant name: %s , Cuisine type: %s" % (self.name, self.type))

但实际上,%类型的字符串格式化在Python中已经大部分已经过时多年了,您可能不应该在Python 3.6中使用它。相反:试试这个:

print("Restaurant name: {} , Cuisine type: {}".format(self.name, self.type))

当然还是:

print("Restaurant name:", self.name, ", Cuisine type:", self.type)

答案 2 :(得分:0)

这有效(注意“%”右边的元组)

print("Restaurant name: %s , Cuisine type: %s" % (self.name, self.type))

您可以考虑使用较新的表单

print("Restaurant name: {} , Cuisine type: {}".format(self.name, self.type))