集合&数学功能&随机数功能

一、集合【掌握】

1.系统功能
# 一、增
# 1.add(x),添加元素,但是,x只能是不可变的数据类型,列表和字典等可变的数据类型无法添加       ******
# 注意:如果添加的是不可变的可迭代对象,则将整个容器添加进去
set1 = {11,22,33,44,55}
print(set1)
# a.添加单个元素
set1.add(66)
print(set1)
set1.add(True)
print(set1)
set1.add("abc")
print(set1)

# b.添加多个元素
# set1.add([2,3,4])   # TypeError: unhashable type: 'list'
# print(set1)
set1.add((2,3,4))
print(set1)
# set1.add({'a':10})    # TypeError: unhashable type: 'dict'

print("*" * 30)

# 2.update(x):更新,x必须是可迭代对象【容器】,则只会讲其中的元素添加进去【类似列表的extend功能,打碎加入】   *****
set1 = {11,22,33,44,55}
print(set1)
# set1.update(66)    # TypeError: 'int' object is not iterable
set1.update("abc")
set1.update([2,3,4])
print(set1)
set1.update((56,34))
print(set1)

# 可迭代对象:list,tuple,dict,set,str,range(x)等


# 二、删
# 1.remove(x):删除x元素             *****
set1 = {11,22,33,44,55}
print(set1)
set1.remove(11)
print(set1)
# set1.remove(100)   # KeyError: 100
# print(set1)

# 2.pop():随机删除一个元素
set1 = {11,22,33,44,55}
print(set1)
set1.pop()
print(set1)


# 3.discard(x)和remove的用法相同,但是,如果元素不存在,remove会报错,discard不会报错
set1 = {11,22,33,44,55}
print(set1)
set1.discard(11)
print(set1)
set1.discard(100)


# 4.clear()
set1.clear()
print(set1)   # 空集合:set()   空字典:{}


# 三、查
set1 = {11,22,33,44,55}
print(len(set1))
print(max(set1))
print(min(set1))

# 注意:但凡是可变的数据类型,都有copy功能,如:list,dict,set
set2 = set1.copy()
2.集合间的运算
s1 = {1,2,3,4}
s2 = {3,4,5,6}

# 一、运算符
# 1.交集:&
print(s1 & s2)  # {3, 4}

# 2.并集:|
print(s1 | s2)  # {1, 2, 3, 4, 5, 6}

# 3.差集
print(s1 - s2)  # {1, 2}

# 4.并集 - 交集
print(s1 ^ s2)  # {1, 2, 5, 6}


# 二、系统功能
# 1.并集
print(s1.union(s2))  # {1, 2, 3, 4, 5, 6}

# 2.交集
print(s1.intersection(s2))  # {3, 4}

# 3.差集
print(s1.difference(s2))  # {1, 2}

# 4.并集 - 交集
print(s1.union(s2) - s1.intersection(s2))

print(s1)
print(s2)


# 扩展:列表推导式/字典推导式/集合推导式
print({i:i for i in range(6)})  # 字典推导式
print({i for i in range(6)})    # 集合推导式


s1 = {1,2,3,4}
s2 = {3,4,5,6}

# 交集
set1 = {ele for ele in s1 if ele in s2}
print(set1)  # {3, 4}

# 并集
set2 = {e1 for e1 in list(s1) + list(s2)}
print(set2)    # {1, 2, 3, 4, 5, 6}

# 差集
set3 = {ele for ele in s1 if ele not in s2}
print(set3)  # {1, 2}

二、数字类型【掌握】

1.数学功能

内置功能

  • abs(x):返回数字的绝对值
  • (x>y)-(x<y):比较大小,
  • max(x1,x2,…):返回给定参数的最大值
  • min(x1,x2,…):返回给定参数的最小值
  • pow(x,y):求x的y次方的值
  • round(x,n):返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数

导入math模块 import math;

  • ceil(x):返回x的上入整数,不能直接访问,需要通过math访问,即math.ceil(18.1)
  • floor(x):返回x的下入整数,同ceil的用法
  • modf(x):返回x的整数部分和小数部分,两部分的数值符号与x相同,整数部分以浮点型表示,同ceil的用法
  • sqrt(x):返回数字x的平方根,数字可以为负数,返回类型为实数【浮点型】,同ceil的用法

数学常量

math.pi :圆周率
math.e :自然常数

# 一、内置函数
"""
【面试题】请列举至少5个内置函数,并解释他们的作用
print()
int()
type()
id()
abs()
max()
min()
"""

# 1.abs()求绝对值
print(abs(-18))

# 2.max()/min()
print(max(3,45,6,7,8,89,43,6,7))
print(max([3,45,6,7,8,89,43,6,7]))
print(max((3,45,6,7,8,89,43,6,7)))

print(min(3,45,6,7,8,89,43,6,7))

# 3.pow(x,y)求x的y次方
print(pow(5,3))

# 4.sum(iterable,value),将容器中的所有元素进行求和,如果value未被省略,则加上value
print(sum([3,4,5]))
print(sum(range(101)))
print(sum([3,4,5],10))   # 22

# 5.round(v1,v2),v2省略,则返回一个整数,v2未被省略,则表示保留小数点后几位
# 注意:round可以进行四舍五入
print(round(6.34))   # 6
print(round(6.84))   # 7

print(round(6.8445556,2))
print(round(6.8475556,2))


# 二、math模块
import  math
# 1.ceil():向上取整
print(math.ceil(2.9))
print(math.ceil(2.1))

# 2.floor():向下取整
print(math.floor(2.9))
print(math.floor(2.1))


# 3.sqrt():求算术平方根,结果是浮点型
print(math.sqrt(9))   # 3.0

# 4.常量
print(math.pi)   # 圆周率
print(math.e)    # 自然常数
2.随机数功能
# import  random
from random import  *

# 1.choice(seq)
# a.
r11 = choice([1,'abc',True,4,5])
print(r11)

# b.
r12 = choice((1,2,3,4,5))
print(r12)

# c.choice中无法使用集合,集合不支持索引
# r11 = choice({1,2,3,4,5})
# print(r11)  # TypeError: 'set' object does not support indexing

# d.
r3 = choice(range(101))
print(r3)

# 2.randint(start,end)包头又包尾,但是没有step,step默认只能是1
# 3.randrange(start,end,step)包头不包尾,和range用法相似
# 需求1:获取一个1~50之间的随机数,50包含在内
print(choice(range(1,51)))
print(randint(1,50))
print(randrange(1,51))


# 需求2:获取1~100之间的偶数随机数,100包含在内
print(choice(range(2,101,2)))
# print(randint(2,100,2))  # TypeError: randint() takes 3 positional arguments but 4 were given
print(randrange(2,101,2))


# 4.sample(iterable,num)从iterable中随机选取num个数据,得到一个列表
print(sample("123abc",2))
print(sample(['a','b','2','5'],1))


# 5.random():获取0~1之前的任意一个随机数,包头不包尾
print(random())

# 需求:获取20~100之间任意一个随机数,包括浮点数
# 0~1--->0~80---->20~100
print(random() * 80 + 20)
print(round(random() * 80 + 20,2))

# 6.uniform(start,end):获取start~end之间的任意一个随机数,包含浮点数
print(uniform(20,101))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值