首页 > 其他分享 >all和any函数

all和any函数

时间:2022-11-15 08:33:08浏览次数:47  
标签:False 函数 迭代 range print True any

“全称”和“存在”的定义

  • 全称:所有的逻辑表达式都为True,才为True;
    • 只要有一个为False,即为False。
  • 存在:任意一个逻辑表达式为True,就为True;
    • 所有都是False,才为False。
  • all函数,以一个可迭代对象为参数
    • 迭代到第一个False,即返回False;
    • 迭代结束,返回True。
  • any函数,以一个可迭代对象为参数
    • 迭代到第一个True,即返回True;
    • 迭代结束,返回False。

example1

# 掷骰子,连续三次,看看三次全6,
#   和三次至少1个6的概率分别是多少?
from random import randint
n, triple, once = 10000, 0, 0
for i in range(n):
    bet = [randint(1, 6) for k in range(3)]
    if all(x==6 for x in bet):
        triple += 1
    if any(x==6 for x in bet):
        once += 1
print(f"投掷{n}次")
print(f"--三次6为{triple}次,占比{triple/n*100:.1f}%;")
print(f"--至少一次6为{once}次,占比{once/n*100:.1f}%。")

“短路”特性

  • 对于all函数,只要碰到第一个False,就返回False;
  • 对于any函数,只要碰到第一个True,就返回True;
  • 结合生成器推导式的“惰性计算”特点,可以提高程序性能。
# 超级素数:一个数所有的前缀都是素数
# 如:2333是超级素数,因为2,23,233,2333都是素数
def is_prime(n):
    if n < 2:
        return False
    for k in range(2, int(n ** 0.5) + 1):
        if n % k == 0:
            return False
    return True
def is_super_prime(n):
    sn = str(n)
    return all(is_prime(int(sn[: i + 1])) for i in range(len(sn)))
print(2333, is_super_prime(2333))
print(111, is_super_prime(111))

example2

# 列表中是否存在指定值t,如果存在则返回下标
from random import randint
alist = [randint(1, 100) for i in range(50)]
has_42 = any(alist[(k := i)]==42 for i in range(50))
if has_42:
    print(f"Yes, index=={k}")
else:
    print("No")

标签:False,函数,迭代,range,print,True,any
From: https://www.cnblogs.com/coco02/p/16891208.html

相关文章

  • Mysql (数学相关函数机日期函数)
    一、数学相关函数(一)abs绝对值(二)ceiling(number2)向上取整,得到比num2大的最小整数(三)BIN(decimal_number)十进制转二进制(四)conv(number2,from_base,to_base)进制......
  • 023.ManyToOne对象关联查询
    1.在GoodsDetail.java中添加少的一方的实体privateGoodsgoods;2.在goods_detail.xml中进行对象关联的描述<resultMapid="rmGoodsDetail"type="com.imooc.m......
  • c++ 函数指针
    函数指针是指向函数的指针。指针的类型由它的返回类型和形参类型共同决定。例如bool(*Pf)(conststring&,conststring&);pf指向一个函数,函数的参数是两个string......
  • Python函数
    1.函数的定义1.函数代码用关键字def声明,后接函数标志性名称(参数)2.函数参数放置()中,可以有零个或多个3.return表达式结束函数4.匿名函数:lambda......
  • Yii全局函数使用
    由于YII致力于完美的整合第三方库,它并没有定义任何全局函数。yii中的每一个应用都需要全类别和对象范围。例如,Yii::app()->user;Yii::app()->params['name'];等等。我们可以......
  • php filter函数库 (与变量和类型有关的扩展),可以过滤常用邮件,IP,变量数组等...
     filter扩展库简介 Thisextensionfiltersdatabyeithervalidatingorsanitizingit.Thisisespeciallyusefulwhenthedatasourcecontainsunknown(orfore......
  • 利用函数求一千到两千的闰年
    #include<stdio.h>intis_leap_year(inty){ if(y%4==0&&y%100!=0) return1; else return0; }intmain(){ intyear=0; for(year=1000;year<=2000;year++) { if(1==is_......
  • SQLServer内置函数实现MD5加密与解密
    SQLServer内置函数实现MD5加密⼀、MD5加密HASHBYTES('加密⽅式','待加密的值')加密⽅式=MD2|MD4|MD5|SHA|SHA1返回值类型:varbinary(maximum8000bytes)⼆、MD5......
  • C语言程序设计· 按如下函数原型编程计算并输出n×n阶矩阵的转置矩阵。其中,n由用户从
    按如下函数原型编程计算并输出n×n阶矩阵的转置矩阵。其中,n由用户从键盘输入。已知n值不超过10。voidTranspose(int(*a)[N],intn);voidSwap(int*x,int*y);void......
  • Loj 6053 简单的函数 min25筛
    #6053.简单的函数先求g(n,j)目的是为了在求S(n,j)的时候可以快速获取一些质数上的点的值。所以我们只要求g(n,j)的质数处的值正确即可其他值则不需要所以我们可以让g......