Here is simple script to generate greeting messages:
def greeting(event, person):
print("Happy " + event + ", dear " + person + ".")
event = "Birthday"
person = "Emily"
greeting(event, person) # Happy Birtday, dear Emily.
event = "New Year"
person = "Mark"
greeting(event, person) # Happy New Year, dear Mark.
Is there way to get the same result, but call the greeting
function only once?
You can put this in a loop to handle a list of names and events. I'd recommend keeping the inner function the same, and firing a sequence of data at it from outside. Depending on your application, mileage may vary.
def greeting(event, person):
print("Happy " + event + ", dear " + person + ".")
event_list = [("Birthday", "Emily"),
("New Year", "Mark")]
for event, person in event_list:
greeting(event, person)
If you just want to the function to loop over the inputs, this should work:
def greeting(messages):
for event, person in messages:
print("Happy " + event + ", dear " + person + ".")
greeting([('Birthday', 'Emily'), ('New Year', 'Mark')])
If you can modify greeting:
def greeting(info_pairs):
for event, person in info_pairs:
print("Happy " + event + ", dear " + person + ".")
greeting([("Birthday", "Emily"), ("New Year", "Mark")])
Either of the options mentioned by other users will work. It depends on whether you want to put the loop in the function or outside of it:
def greeting(event, person):
print("Happy " + event + ", dear " + person + ".")
for event, person in [("Birthday", "Emily"),
("New Year", "Mark")]:
greeting(event, person)
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.