#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)
python函数基础
最新推荐文章于 2024-08-15 01:55:01 发布