Python寒假学习笔记

代码复用与函数递归

代码复用与模块化设计

紧耦合:两个部分交流很多,无法独立存在
松耦合:两个部分交流较少,可以独立存在

函数递归的理解

链条:计算过程中存在递归链条
基例:存在一个或多个不需要再次递归的基例
函数+分支语句
字符串s反转后输出

def rus(s):
    if s=="":
        return s
    else:
        return rvs(s[1:])+s[0]

斐波那契数列

def f(n):
    if n==1 or n==2:
        return 1
    else:
        return f(n-1)+f(n-2)

汉诺塔

count=0
def hanoi(n,src,dst,mid):
    global count
    if n==1:
        print("{}:{}->{}".format(1,src,dst))
        count+=1
    else:
        hanoi(n-1,src,mid,dst)
        print("{}:{}->{}".format(n,src,dst))
        count+=1
        hanoi(n-1,mid,dst,src)

PyInstaller库

将源代码转换成可执行文件
在这里插入图片描述

组合数据类型

集合类型:不存在可变数据类型
建立集合类型用{} 或set()
建立空集合类型必须使用set()

集合操作符

在这里插入图片描述
增强操作符在这里插入图片描述
集合处理方法在这里插入图片描述
S.clear() 移除S中所有元素
S.pop() 随即返回S的一个元素,更新S,若S为空产生KeyError异常
S.copy() 返回集合S的一个副本
len(S) 返回集合S的元素个数
x in S 判断S中元素x,x在集合S中,返回True,否则返回False
x not in S 判断S中元素x,x不在集合S中,返回True,否则返回False
set(x)将其他类型变量x转变为集合类型

A={"p","y",123}
for item in A:
    print(item,end="")

在这里插入图片描述

try:
    while True:
        print(A.pop(),end="")
except:
    pass

数据去重

序列类型及操作

序列是具有先后关系的一组元素,是一维元素向量,元素类型可以不同(基本数据类型)在这里插入图片描述
序号:正向递增(0)&反向递减(-1)
序列通用操作符在这里插入图片描述
len(s)长度 min(s)最小元素 max(s)最大元素
s.index(x)或s.index(x,i,j)返回序列s从i开始到j位置中第一次出现元素x的位置
元组 是一种序列类型,一旦创建就不能被修改
使用小括号()或tuple()创建,元素间用,分隔
可以使用或不使用小括号
列表 是序列类型的一种扩展,十分常用,是一种序列类型,创建后可以随意被修改。使用【】或list()创建,元素间用逗号,分隔在这里插入图片描述
在这里插入图片描述
基本统计值
总个数:len()
求和:for…in

def getNum():
    nums=[]
    iNumStr=input("请输入数字(回车退出):")
    while iNumStr!="":
        nums.append(eval(iNumStr))
        iNumStr=input("请输入数字(回车退出)")
    return nums
def mean(numbers):   #计算平均数
    s=0.0
    for num in numbers:
        s=s+num
    return s/len(numbers)
def dev(numbers,mean):  #计算方差
    sdev=0.0
    for num in numbers:
        sdev=sdev+(num-mean)**2
     return pow(sdev/(len(numbers)-1),0.5)
def median(numbers):   #计算中位数
    sorted(numbers)
    size=len(numbers)
    if size % 2 ==0:
        med = (numbers[size//2-1]+numbers[size//2]/2)
    else:
        med = numbers[size//2]
    return med    

字典类型及操作

字典类型定义
映射是一种键(索引)和值(数据)的对应
映射类型由用户为数据定义索引
键值对:键是数据索引的扩展
字典是键值对的集合,键值对之间无序
生成字典: 采用{}或dict()创建,键值对用:表示
<字典变量>={<键1>:<值1>,<键2>:<值2>,…,<键n>:<值n>}
也可以赋予它新的键值对应关系
<值>=<字典变量>[<键>]
<字典变量>[<键>]=<值>
{}空默认生成字典类型
在这里插入图片描述
在这里插入图片描述

jieba库

精确模式:把文本精确的切分开,不存在冗余单词
全模式:把文本中所有可能的词语都扫描出来,有冗余
搜索引擎模式:在精确模式基础上,对长词再次切分
在这里插入图片描述
在这里插入图片描述
文本词频统计

def getText():
    txt=open("hamlet.txt","r").read()
    txt=txt.lower()
    for ch in "'!#$%^&*()_+=<>,.{}{}:;'\|/":
        txt=txt.replace(ch,"")
    return txt
hamletTxt=getText()
words=hamletTxt.split()
counts={}
for word in words:
    counts[word]=count.get(word,0)+1
items=list(count.items())
items.sort(key=lambda x:x[1],reverse=True)
for i in range(10):
    word,count=items[i]
    print("{0:<10}{1:>5}".format(word ,count))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值