看漫画学Python 第八章代码

8.1 定义函数

def rect_area(width,height):
	area = width * height
	return area

def print_area(width,height):
	area = width * height
	print("{0} × {1} 长方形的面积:{2}".format(width,height,area))

8.2.1 使用位置参数调用函数

def rect_area(width,height):
	area = width * height
	return area

r_area = rect_area(320,480)
print("{0} × {1} 长方形的面积:{2:.2f}".format(320,480,r_area))

8.2.2 使用关键字参数调用函数

def rect_area(width,height):
	area = width * height
	return area

r_area = rect_area(width = 320,height = 480)
print("{0} × {1} 长方形的面积:{2:.2f}".format(320,480,r_area))

r_area = rect_area(width = 320,height = 480)
print("{0} × {1} 长方形的面积:{2:.2f}".format(320,480,r_area))

8.3 参数的默认值

def make_coffee(name = "卡布奇诺"):
	return "制作一杯{0}咖啡".format(name)

coffee1 = make_coffee("拿铁")
coffee2 = make_coffee()

print(coffee1) #制作一杯拿铁咖啡
print(coffee2) #制作一杯卡布奇诺咖啡

8.4 可变参数

def sum(*numbers):
	total = 0.0
	for number in numbers:
		total += number
	return total

print("100 + 20 + 30 =",sum(100.0,20.0,30.0))
print("30 + 20 =",sum(30.0,20.0))

8.4.2 基于字典的可变参数

def show_info(**info):
	print("-----show_info-----")
	for key,value in info.items():
		print("{0} - {1}".format(key,value))

show_info(name = "Tony", age = 18 ,sex = True)
show_info(student_name = "Tony",student_no = 1000)

8.5 函数中变量的作用域

#创建全局变量x
x = 20

def print_value():
	x = 0
	print("函数中 x = {0}".format(x))

print_value()
print("全局变量 x = {0}".format(x))
#创建全局变量x
x = 20

def print_value():
	global x #将x变量提升为全局变量
	x = 10
	print("函数中 x = {0}".format(x))

print_value()
print("全局变量 x = {0}".format(x))

 

8.6.1 理解函数类型

#定义加法函数
def add(a,b):
	return a + b

#定义减法函数
def sub(a,b):
	return a - b

#定义计算函数
def calc(opr):
	if opr == '+':
		return add
	else:
		return sub

#定义平方函数
def square(a):
	a * a

f1 = calc('+') #f1实际上是add()函数
f2 = calc('-') #f2实际上是sub()函数
print("10 + 5 = {0}".format(f1(10,5)))
print("10 - 5 = {0}".format(f2(10,5)))

8.6.2 过滤函数filter()

#提供过滤条件函数
def f1(x):
	return x > 50 #找出大于50的元素

data1 = [65,15,91,28,98,50,7,80,99]
print(data1)
filtered = filter(f1,data1) #转换为列表
data2 = list(filtered)
print(data2)

8.6.3 映射函数map()

data1 = [65,15,91,28,98,50,7,80,99] 

filtered = filter(lambda x: (x > 50), data1)
print(data1)
data2 = list(filtered)
print(data2)

mapped = map(lambda x:(x * 2), data1)
print(data1)
data3 = list(mapped)
print(data3)

8.7 lambda()函数

def calc(opr):
	if opr == '+':
		return lambda a, b: (a + b)
	else:
		return lambda a, b: (a - b)

f1 = calc('+') #f1实际上是add()函数
f2 = calc('-') #f2实际上是sub()函数
print("10 + 5 = {0}".format(f1(10,5)))
print("10 - 5 = {0}".format(f2(10,5)))

8.8 使用更多的lambda()函数

data1 = [66,15,91,28,98,50,7,80,99]
print(data1)

filtered = filter(lambda x:(x > 50),data1)
data2 = list(filtered)
print(data2)

filtered = map(lambda x:(x * 2),data1)
data3 = list(filtered)
print(data3)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值