【Python学习记录——从入门到放弃】七、函数(上)

本文使用的书籍是《Python编程:从入门到实践》
本文使用的是Python3.6
一、定义函数
老样子,一个书中的例子:

def greet_user():
	print("Hello!")
greet_user()

简单定义函数:
def 函数名():
执行代码
这只是简单的定义函数,注意缩进,执行语句是要比def缩进一次
执行函数:
函数名()

  1. 向函数传递信息
    在定义函数的时候,可以向函数传递信息进去,供执行代码使用,例子如下:
def greet_user(username):
	print("Hello, " + username.title() + "!")
greet_user('jesse')
  1. 实参和形参
    这个就类似于之前我所说的深复制和浅复制。
    形参只是貌似,不会改变函数外的变量,除了返回值;实参是会被改变的,可以改变函数外的变量。

动手试一试:

# 8-1
def display_message():
	print("学海无涯,食海也无涯")
# 8-2
def favorite_book(title):
	print("我喜欢的书是:" + title)
favorite_book("随园食单")

二、传递实参

  1. 位置实参
    意思就是多个数据传入函数的顺序是根据位置一一对应的,来个例子:
def describe_pet(animal_type, pet_name):
	print("\nI have a " + animal_type + ".")
	print("My " + animal_type + "'s name is " + pet_name.title() + ".")

describe_pet('hamster', 'harry')
describe_pet('harry', 'hamster')

大家自己要看清楚顺序,这是由输入结构。

  1. 关键字实参
    这个就是自己指定联系的方法,来个例子:
def describe_pet(animal_type, pet_name):
	print("\nI have a " + animal_type + ".")
	print("My " + animal_type + "'s name is " + pet_name.title() + ".")

describe_pet(animal_type='hamster', pet_name='harry')
describe_pet(pet_name='harry', animal_type='hamster')

这个大家应该都看得懂

  1. 默认值
    当你的函数的形参没有数据传入的时候,你可以设立默认值,使程序不出错,例子:
def describe_pet(animal_type, pet_name='dog'):
	print("\nI have a " + animal_type + ".")
	print("My " + animal_type + "'s name is " + pet_name.title() + ".")

describe_pet(animal_type='hamster')
describe_pet(animal_type='hamster', pet_name='harry')
  1. 等效的函数调用
    这个。。。也就是说不管函数内部有没有定义默认值。
    你用位置实参传入数据也行,用关键字实参传入数据也行

  2. 避免实参错误
    没有默认值的时候要补全数据,有几个填几个,不要少也不要多,类型问题也要注意一下。

动手试一试:

# 8-3
def make_shirt(size, font):
	print('\n衣服的大小:' + str(size))
	print('衣服上的字样:' + str(font))

make_shirt(37, '食神')
make_shirt(size='S', font='食神')
# 8-4
def make_shirt(size, font='I love Python'):
	print('\n衣服的大小:' + str(size))
	print('衣服上的字样:' + str(font))
	
make_shirt('L')
make_shirt(size='M')
make_shirt(37, 'I love Java')# 别打我
# 8-5
def describe_city(city='北京', country='中国'):
	print(city + '是' + country + '的城市!')

describe_city()
describe_city(city='上海')
describe_city(city='纽约', country='美国')

三、返回值
简单的说就是这个函数会返回数据,可以赋给变量。

  1. 返回简单值
    先手例子:
def get_fomatted_name(first_name, last_name):
	full_name = first_name + ' ' + last_name
	return full_name.title()
musician = get_fomatted_name('jimi', 'hendrix')
print(musician)

看看就懂了。。。

  1. 让实参变成可选的
    利用默认值提供扩展空间,例子如下:
def get_fomatted_name(first_name, last_name, middle_name=''):
	full_name = first_name + ' ' + middle_name + ' ' + last_name
	return full_name.title()
musician = get_fomatted_name('jimi', 'hendrix')
print(musician)
musician = get_fomatted_name('jimi', 'hooker', 'hendrix')
print(musician)
  1. 返回字典
    这个也是个简单的操作,毕竟Python不用设置类型。例子如下:
def build_person(first_name, last_name):
	person = {'first_name':first_name, 'last_name':last_name}
	return person

musician = build_person('jimi', 'hendrix')
print(musician)
  1. 结合使用函数和while循环
    例子如下:
def get_fomatted_name(first_name, last_name):
	full_name = first_name + ' ' + last_name
	return full_name.title()

while True:
	print("\nPlease tell me your name: ")
	f_name = input("First name: ")
	l_name = input("Last name: ")
	
	formatted_name = get_fomatted_name(f_name, l_name)
	print("\nHello, " + formatted_name + "!")

很简单,过去知识的应用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值