python函数基础

#1.局部变量
def greet():
	username = 'luobin'
	print("hello %s"%(username))
greet()


#2.全局变量,需要顶格写
username = 'luobin'
def greet():
	print("hello %s"%(username))
greet()
print(username)


#3.global关键字:添加了global关键字后就变成了全局变量
username = 'luobin'
def greet():
	global username
	username = 'fjq'
	print("hello %s"%(username))
greet()
print(username)

#4.针对可变数据类型,如果在函数中确实需要修改全局变量的persons
#的指向,那么就是用global关键字
#如果在函数中想要对全局变量中的元素进行增删改查,
#可以不需要使用global关键字

persons = ['张三','李四']

def add_person(name):
	persons.append(name)
	print(persons)
add_person('王五')
print(persons)

#5.sort()方法进行列表排序,可以从小到大,也可以从大到小
a = [8,2,6,10]
a.sort()
print(a)

a = [8,2,6,10]
a.sort(reverse=True)
print(a)


#列表中有字典如何排序
from functools import cmp_to_key
persons = [{'username':'zhangshan',
'age':18},{'username':'lisi',
'age':20},{'username':'wangwu',
'age':18
}]

def cmp(a,b):
	#如果返回的是一个大于0的值,那么代表a>b
	#如果返回的是一个小于0的值,那么代表a<b
	#如果返回的是一个等于0的值,那么代表a=b
	if a['age'] > b['age']:
		return 1
	elif a['age'] < b['age']:
		return -1
	else:
		if a['username'] > b['username']:
			return 1
		else:
			return -1
persons.sort(key=cmp_to_key(cmp))
print(persons)
#sorted()函数会返回一个排序后的新的列表,不会更改原来列表的顺序
#sort()方法会改变原来列表的顺序
#sort()的高级用法

persons = [{'username':'zhangshan',
'age':18},{'username':'lisi',
'age':20},{'username':'wangwu',
'age':18
}]

def my_cmp(x):
	return x['age']
persons.sort(key=my_cmp)
print(persons)

#匿名函数:lambda
#定义方式: lambda x: x['age'](其中x为参数,冒号后面为函数体)
#lambda表达式只适用于只有一行的代码

# persons = [{'username':'zhangshan',
# 'age':18},{'username':'lisi',
# 'age':20},{'username':'wangwu',
# 'age':18
# }]
# persons.sort(key=lambda x:x['age'])
# print(persons)


#需求:
#求两个数的加减乘除
#在运算之前,先对两个值乘以10

a=5
b=2
def calculate(a,b,func):
	result = func(a,b)
	a *= 10
	b *= 10
	return result

result1 = calculate(a,b,lambda x,y:x+y)
result2 = calculate(a,b,lambda x,y:x-y)
print(result1)
print(result2)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值