函数
函数用来:实现一个功能,函数理解成一个工具,遇到问题就可以把这个工具拿过来用
函数的好处: 函数比较方便,复用,可以在多个场景下用
函数定义: 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)