如何将现有代码实现为函数?
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
我发现这是我最挣扎的地方。 我知道怎么写一个函数:
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