簡體   English   中英

我有一個 python TypeError,我不知道如何修復它

[英]I have a python TypeError and I don't know how to fix it

所以我有以下代碼:

import random

pizza_toppings = ["bacon", "cheese", "chicken", "pepperoni", "olives"]
pizza_sauce = ["alfredo", "marinara", "ranch", "BBQ"]

def pizza(number_of_toppings):
  final_sauce = random.choice(pizza_sauce)
  final_toppings = []
  for i in range(number_of_toppings):
    final_topping = random.choice(pizza_toppings)
    final_topping(final_toppings)
  final_result = print("Your pizza with ", final_topping, " with ", final_sauce, " is ready I guess...")
  return final_result
pizza(2)

它給了我錯誤“TypeError:'str'對象不可調用。” 我該如何解決?

我假設這條線

final_topping(final_toppings)

應該

final_toppings.append(final_topping)

而且print的返回是None ,所以final_result將是None

我用final_toppings替換了final_toppings_list使它更清晰:

import random

pizza_toppings = ["bacon", "cheese", "chicken", "pepperoni", "olives"]
pizza_sauce = ["alfredo", "marinara", "ranch", "BBQ"]

def pizza(number_of_toppings):
  final_sauce = random.choice(pizza_sauce)
  final_toppings_list = []
  for i in range(number_of_toppings):
    final_topping = random.choice(pizza_toppings)
    final_toppings_list.append(final_topping)
  final_result = "Your pizza with ", final_toppings_list, " with ", final_sauce, " is ready I guess..."
  return final_result
print(pizza(2))

這是因為您將字符串final_topping作為函數使用。 只需刪除該行,你就很好。

如果你只想使用你的pizza_toppings列表中的一個元素(稍后在final_result ),你不一定需要將final_topping附加到final_toppings列表中。

我在你的腳本中注釋了這兩行,並使用 python f-strings以方便的方式格式化final_result ..

import random


pizza_toppings = ["bacon", "cheese", "chicken", "pepperoni", "olives"]
pizza_sauce = ["alfredo", "marinara", "ranch", "BBQ"]


def pizza(number_of_toppings):
    final_sauce = random.choice(pizza_sauce)
    #final_toppings = []

    for i in range(number_of_toppings):
        final_topping = random.choice(pizza_toppings)
        #final_toppings.append(final_topping)

    final_result = (
        f"Your pizza with {final_topping} "
        f"and {final_sauce} is ready I guess..."
    )

    return final_result


print(pizza(2))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM