python第三次笔记

函数

  • 必须参数和关键字参数
    必须参数必须义正确的顺序传入,调用的时候必须和声明的时候保持一致
def f(name, age):
    print('I am %s , I am %d years old'%(name, age))
f(18, 'eric')

关键字参数 #使用关键字参数可以允许函数调用时和声明时顺序不一致
python 解释器能够用参数名字匹配参数值

f(age=18, name='eric')
  • 默认参数 缺省参数没有传入,默认值会生效
def f(name, age, sex = 'male' ):
    print('I am %s , I am %d years old'%(name, age))
    print('Sex : %s'%sex)
f(name='李四', age=19)
f('张三', 88, sex='female')

另外为了自己阅读方便,建议显示传参

  • 匿名函数
    语法 :
    lambda 参数: 表达式
    冒号前面是参数,可以有多个
    后面的是表达式,只能是一个表达式 不写return 返回值就是表达式的结果
    减少代码量, 代码看起来“优雅”
def rect(x, y):
    return x * y
area = rect(3, 5)
print(area)
# 使用lambda表达式
res = lambda x, y: x*y
print(res(4,5))

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('使用lambda: ',calc(5,4))
print('使用lambda: ',calc(2,4))

# 排序中使用lambda
stus = [
    {'name':'zhangsan', 'age': 33},
    {'name':'lisi',   'age': 12},
    {'name':'wangwu', 'age':53},
    {'name':'zaoliu', 'age': 18},
    {'name':'tianqi', 'age': 77}

]
print('排序前',stus)
# key值是按照哪个元素为依据进行排序
res = sorted(stus,key=lambda x: x['age'], reverse=True)
print('排序后',res)
res = sorted(stus,key=lambda x: x['name'])
print('name排序后',res)
  • 同目录下的函数调用
  1. caculate.py
def caculateNum(num):
    return sum([i for i in range(1, num+1)])
  1. test.py
import caculate
res = caculate.caculateNum(100)
print(res)

分词

安装第三方库jieba,通过调用jieba.lcut()将字符串分割成等量的中文

import jieba
with open('threekingdom.txt' ,'r', encoding='utf-8') as f:
    txt = f.read()
words = jieba.lcut(txt)
print(words)

词云

安装第三方库wordcloud,通过调用WordCloud().generate()将字符串生成词云

  • 在Windows下使用pip install wordcloud安装wordcloud时会提示需要 VC14.0 编译环境,由于安装该环境需要4个G所以选择手动安装。首先需要在官网下载与自己pychar版本相对应的wordcloud,然后用cmd进入下载目录,输入pip install xxx.whl。这时wordcloud被安装在python\Lib\site-packages目录下,使用时需要手动将wordcloud文件夹复制到当前project的venv\Lib\site-packages目录下
    最后在Terminal下使用pip list查看
from collections import Counter
from wordcloud import WordCloud
str = ['阿萨德','肥嘟嘟','对方','打发','安抚艾克','奥斯卡级','氨基酸']
cloud_txt = ",".join(str)
wc = WordCloud(
    background_color='white',
    font_path='SIMYOU.TTF',
    # 是否包含两个词的搭配默认是True
    collocations=False
).generate(cloud_txt)
wc.to_file('词云1.png')
词云1.png

在使用wordcloud生成词云过程中,出现了OSError: cannot open resource错误,原因是字体属性font_path的设置与系统提供的字体不一致,系统提供的是ttf格式,所以应设置为ttf,而不能写为ttc.
字体文件存放在 C:\Windows\Fonts目录下,可将对应的字体文件拷贝出来查看类型,将font_path设置为系统提供的字体即可。
作者:归去_来兮
来源:CSDN
原文:https://blog.csdn.net/albert201605/article/details/84917308
版权声明:本文为博主原创文章,转载请附上博文链接!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容