如何将现有代码实现为函数?

How can I implement existing code into a fuction?

我发现这是我最挣扎的地方。 我知道怎么写一个函数:

     def test(a,b):
        for x in range(20):
        if x == 15:
            return
    print("test")
    test()

但我不知道如何用已经写好的东西创建一个函数:

contacts = {"Alice": "+1554", "Bob": "+1885", "Carol": "+1006", "Felix":"+1604", "Max":"+1369","Chris":"+1882","Lea":"+1518","Linn":"+1742","Julia":"+1707"}

def phone_book(name,book):
    if name in contacts:
        return book

while True:
    print('Enter a name: (blank to quit)')
    name = input()
    if name == '':
        break
    if name in contacts:
        print(contacts[name] + ' is the number of ' + name)

如果我尝试使用某个函数,我将无法使此代码正常工作。 你能解释一下怎么做吗? 您不需要编写代码。好想弄明白

函数是一种允许您在代码中自动执行特定过程的方法。

在您的测试函数中,您定义了 2 个参数,这意味着您必须提供这 2 个变量才能使该函数正常工作。一个简单的函数也可以是

def test(a,b):
        c = a + b
        print("The sum of  number " + str(a) + " + " + str(b) + " is " + str(c))
test(5, 5)

如果你注意最后一行,我提供了函数名和那两个变量,只是现在它们有了值(它们现在称为参数)

希望下面的链接能给你更多的说明

https://www.w3schools.com/python/python_functions.asp

您可以使用函数 return 格式化字符串。然后主代码调用该函数并打印它 returns.

def phone_book(name,book):
    if name in book:
        return f'{book[name]} is the number of {name}'
    else:
        return f'{name} is unknown'

while True:
    print('Enter a name: (blank to quit)')
    name = input()
    if name == '':
        break
    print(phone_book(name, contacts))

请将其结构化为 class。

class contact_book:
  def __init__(self):
    self.contacts = {"Alice": "+1554", 
                     "Bob": "+1885", 
                     "Carol": "+1006"}

  def add(self, name, value): self.contacts[name] = value
  def phone(self, name): return self.contacts[name]
  def do_i_know_you(self, name): return name in self.contacts
  def __str__(self): return f"Known contacts are: {list(self.contacts.keys())}"

用法:

myBook = contact_book()
myBook.add('brian', '4411')
print(myBook) 
print(myBook.do_i_know_you('Martin'))

结果:

Known contacts are: ['Alice', 'Bob', 'Carol', 'brian']
False