Python学习
函数模块
- 引入自己写的函数作为模块
#在”caculate函数“文件中定义”caculate“函数
def caculate(num):
'''
从1到num求和
:param num: 加到的数
:return: 求和
'''
sum=0
for i in range(num+1):
sum+=i
return sum
#导入自己写的”caculate函数“模块并使用其中的”caculate“函数
import caculate函数
print(caculate函数.caculate(100))
函数参数
- 必须参数
必须参数必须正确的顺序传入,调用的时候必须和声明的时候保持一致
def f (name,age):
print('I am %s, I am %d years old'%(name, age))
f('arbon',18)
#I am a, I am 18 years old
def f (name,age):
print('I am %s, I am %d years old'%(name, age))
f(18,'arbon')
#TypeError: %d format: a number is required, not str
- 关键字参数
使用关键字参数可以允许调用时参数和声明时顺序不一致
是否要显示指定参数(关键字),以方便自己阅读为目的
def f (name,age):
print('I am %s, I am %d years old'%(name, age))
f(age=18,name="arbon")
#I am arbon, I am 18 years old
- 默认参数
缺省参数没有传入,默认值会生效
def f(name,age,sex="male"):
print("I am %s, I am %d years old, I am %s"%(name,age,sex))
f(name="angla",age=16)
#I am angla, I am 16 years old, I am male
匿名函数 lambda表达式
- 匿名函数 lambda表达式
res=lambda x,y:x*y
print(res(4,5))
之前曾经的:
store=[]
s="当当自营" if len(store)==0 else store[0]
print(s)
#当当自营
可以通过这个方法结合匿名函数简化下面代码
使用lambda做判断
def cal(x,y):
if x>y:
return x*y
else:
return x/y
calc=lambda x,y:x*y if x>y else x/y
print("使用普通函数",cal(5,4))
print("使用lambda函数",calc(5,4))
#使用普通函数 20
#使用lambda函数 20
- 排序中使用lambda
包含几个字典的列表按照字典中的某个key排序
#排序中使用lambda
stus=[
{"name":"a",'age':33},
{"name":"b",'age':32},
{"name":"c",'age':43},
{"name":"d",'age':13},
{"name":"e",'age':21}
]
print('before sorted:',stus)
res=sorted(stus,key=lambda x:x['age'])
print('after sorted:',res)
#before sorted: [{'name': 'a', 'age': 33}, {'name': 'b', 'age': 32}, {'name': 'c', 'age': 43}, {'name': 'd', 'age': 13}, {'name': 'e', 'age': 21}]
#after sorted: [{'name': 'd', 'age': 13}, {'name': 'e', 'age': 21}, {'name': 'b', 'age': 32}, {'name': 'a', 'age': 33}, {'name': 'c', 'age': 43}]
tips
- pycharm中对文件右键选择"copy relative path"可以复制文件路径
jieba库中文分词
- 分词
txt='我来到北京清华大学'
seg_list=jieba.lcut(txt)
print(seg_list)
#['我', '来到', '北京', '清华大学']
案例:三国词频统计
课件中有统计单词出现频率的案例