函数,集合,列表,字典,jieba库知识整理

函数

函数用来:实现一个功能,函数理解成一个工具,遇到问题就可以把这个工具拿过来用

函数的好处: 函数比较方便,复用,可以在多个场景下用

函数定义: def 函数名 (参数)

利用调用函数求解圆的pi

def get_pi(num):
    import random

    count = 0
    for i in range(num):
        x, y = random.random(), random.random()
        dist = pow((x - 0) ** 2 + (y - 0) ** 2, 0.5)

        if dist < 1:
            count += 1

    print(4 * count / num)

get_pi(10)
get_pi(100)
get_pi(1000)
get_pi(10000)
get_pi(100000)

函数分为, 带参数的函数和带返回值的函数

def add_sum(num):#  num就是一个参数

    count = 0
    for i in range(1, num):
        count += i

    return count  #返回值, 是count


res1= add_sum(101)  #101就是参数的值传给函数的参数
print('res1:',res1)
res2 = add_sum(1001)
print('res2:',res2)
res3 = add_sum(10001)
print('res3:',res3)

集合

什么是集合: 集合就是一组数据

集合定义(定义集合可以用set(),也可以直接定义用{}括起来)

s1={'nick','handsome',121,11}#
s2 = set('nick')  # iterable(序列类型)
s3 = set(['1', 2, 3])

#输出结果{1.0, 'nick', 'dsb', 1231, 'wuhao', 'handsome'}
        {'n', 'i', 'c', 'k'}
        {'1', 2, 3}

集合的操作符

操作符及应用 描述
S | T 返回一个新集合,包括在集合S和T中的所有元素
S - T 返回一个新集合,包括在集合S但不在T中的元素
S & T 返回一个新集合,包括同时在集合S和T中的元素
S ^ T 返回一个新集合,包括集合S和T中的非相同元素
S <= T或S < T 返回True/False,判断S和T的子集关系
S >= T或S > T 返回True/False,判断S和T的包含关系

集合的处理方法

操作函数或方法 描述
S.add(x) 如果x不在集合S中,将x增加到S
S.discard(x) 移除S中元素x,如果x不在集合S中,不报错
S.remove(x) 移除S中元素x,如果x不在集合S中,产生KeyError异常
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中,返回False,否则返回True
set(x) 将其他类型变量x转变为集合类型

序列

序列会有序列号, 就像索引一样,

序列的类型,就是带有索引的数据类型:字符型,列表,元祖

列表用中括号中间用逗号隔开

例如:

lt = ["nick","handsome",1,1]
print(lt)

列表定义的函数

函数或方法 描述
ls[i] = x 替换列表ls第i元素为x
ls[i: j: k] = lt 用列表lt替换ls切片后所对应元素子列表
del ls[i] 删除列表ls中第i元素
del ls[i: j: k] 删除列表ls中第i到第j以k为步长的元素
ls += lt 更新列表ls,将列表lt元素增加到列表ls中
ls *= n 更新列表ls,其元素重复n次

列表定义的

函数或方法 描述
ls.append(x) 在列表ls最后增加一个元素x
ls.clear() 删除列表ls中所有元素
ls.copy() 生成一个新列表,赋值ls中所有元素
ls.insert(i,x) 在列表ls的第i位置增加元素x
ls.pop(i) 将列表ls中第i位置元素取出并删除该元素
ls.remove(x) 将列表ls中出现的第一个元素x删除
ls.reverse() 将列表ls中的元素反转
# 清除
lt.clear()

#
lt2 = lt.copy()


# 排序
lt = [1,3,2,100,4,5]
lt.sort()
print(lt)

# 翻转
lt.reverse()
print(lt)


# 元组
# 元组就是把列表的中括号换成小括号,然后他没有内置方法
lt = [1,3,2,100,4,5]

# 只可取不可更改
tu  =  (1,3,2,100,4,5)
print(tu[0])

基本统计方法

通过用户输入一组数据(用户一个一个输入),然后计算数据的中位数,平均值,方差,求o和等操作

nums = []

while True:
    num1 = input('请输入你需要输入的数字(输入 q 退出):')
    if num1 == 'q':
        break
    nums.append(int(num1))


def get_median(nums):  # ['123', '32', '123', '234']
    #                       0      1      2    3
    nums.sort()

    nums_len = len(nums)
    if nums_len % 2 == 0:
        print((nums[int(nums_len / 2 - 1)] + nums[int(nums_len / 2)]) / 2)
    else:                           # ['123', '32', '123']   # 1
        print(nums[nums_len // 2])  # ['123', '32', '123','123', '32', '123','123']  # 3


# get_median(nums)
def get_sum(nums):  # ['123', '123', '213', '234', '98234']
    count = 0
    for i in nums:
        count += int(i)

    return count

# count = get_sum(nums)
# print('count:',count)


def get_average(nums):
    count = get_sum(nums)
    average_count = count/len(nums)

    return average_count

# average_count = get_average(nums)
# print(average_count)

def get_variance(nums):
    average_count = get_average(nums)

    variance_count = 0
    for i in nums:
        variance_count += pow(i-average_count,2)

    return variance_count

variance_count = get_variance(nums)
print(variance_count)

字典类型

字典类型的定义可以用dict也可以直接定义

d={"中国":"北京","美国":"华盛顿"}

字典处理函数的方法

函数或方法 描述
del d[k] 删除字典d中键k对应的数据值
k in d 判断键k是否在字典d中,如果在返回True,否则False
d.keys() 返回字典d中所有的键信息
d.values() 返回字典d中所有的值信息
d.items() 返回字典d中所有的键值对信息

字典类型操作函数和方法

函数或方法 描述
d.get(k, ) 键k存在,则返回相应值,不在则返回值
d.pop(k, ) 键k存在,则取出相应值,不在则返回值
d.popitem() 随机从字典d中取出一个键值对,以元组形式返回
d.clear() 删除所有的键值对
len(d) 返回字典d中元素的个数

jieba库

jieba库一般用于分词

主要了解三个语句

# 马尔可夫模型(两层)

res = jieba.lcut('中华人民共和国是一个伟大的国家')  # 第一个就是尽量长,主要掌握这一个
print(res)


res = jieba.lcut_for_search('中华人民共和国是一个伟大的国家')  # 第二个就是把第一个的长的单词继续切
print(res)


res = jieba.lcut('中华人民共和国是一个伟大的国家',cut_all=True) # 把所有的可能全部切出来
print(res)

猜你喜欢

转载自www.cnblogs.com/quyang46/p/11209386.html