python 一些乱七八糟的东西
2024-09-02 19:21:20
import random
import os
import sys
import re
class _is:
def __init__(self,reg):
self.cr=re.compile(reg)
def __call__(self,string):
return self.cr.fullmatch(string)!=None
def ecall(x):
if hasattr(x,"__call__"):
return x()
else:
return x
def ifcc(cond,c1,c2):
if cond:
return ecall(c1)
else:
return ecall(c2)
def iff(c,c2):
if c==None:
return c2
else:
return c
## System random state manipulator
# A redefined reseeding function seeding with a large amount of entropy
def reseed(a=None,bytec=32):
if a==None:
a=os.urandom(bytec)
random.seed(a)
# aliases
gstate=lambda:random.getstate()
sstate=lambda x:random.setstate(x)
gbits =lambda x:random.getrandbits(x)
choose=lambda x:random.choice(x)
## Mathematical
import math
import numbert as nt
##classes
class udist:
def __init__(self,l,u):
self.l=l
self.u=u
def __call__(self):
r=random.randint(self.l,self.u)
return r
class rdist:
def __init__(self,l,u):
self.l=l
self.u=u
self.avail=set()
def __call__(self,l=None,u=None,avail=None):
l=iff(l,self.l)
u=iff(u,self.u)
avail=iff(avail,self.avail)
# print(l,u,avail)
r=random.randint(l,u)
while r in avail:
r=random.randint(l,u)
avail.add(r)
return r
## utilities
serialize=lambda x,sep=' ',processor=str:sep.join(map(lambda x:processor(ecall(x)),x))
sfloat=lambda prec=6:lambda x,y="%%.%df"%prec:y%x
loop=lambda x,y:[y(i) for i in range(x)]
uloop=lambda x,y:[ecall(y) for i in range(x)]
isint=_is('[0-9]+')
def choo(rndfn,cond):
q=rndfn()
while not cond(q):
q=rndfn()
return q
args=list(map(lambda x:ifcc(isint(x),lambda:int(x),x),sys.argv[1:]))
compose=lambda x,y:lambda:x(ecall(y))
cr=lambda x,y:y()
cct=lambda x,y:lambda:cr(x(),y)
# Repl test
def Repl(gl,lc):
s=input()
while s!='end':
ret=eval(s,gl,lc)
print(">",ret)
s=input()
最新文章
- 算法-QuickSort
- H5 JS API 02
- 安卓开发第一步:Android Studio安装配置
- linux kernel 杂谈
- python中的Unittest常用方法
- inconsistent line count calculation in projection snapshot
- mysql查询中通配符的使用
- ARCGIS接口详细说明
- POJ 2250(最长公共子序列 变形)
- Android 动态设置TextView的drawableLeft等属性
- 最大矩阵(简单DP)
- LaTeX入门
- Markdown使用简介 及 学习资源整理
- PHP多进程实例
- 爬取小说 spider
- Eclipse *版本(图文详解)
- jquery插件导出word:jquery.wordexport.js
- 如何强制使用某一大小的包去ping某个IP地址?
- FastAdmin 环境变量 env 配置
- openvswitch dpdk
热门文章
- MVC中输入的保护验证用:HttpServerUtility.HtmlEncode
- struts2官方 中文教程 系列九:Debugging Struts
- hive报错:Caused by: ERROR XBM0H: Directory /var/lib/hive/metastore/metastore_db cannot be created.
- Vue学习(三):数据绑定语法
- 虚拟现实-VR-UE4-获取UE4
- 跳出for循环break和continue的区别
- String 将GBK转UTF-8
- 【志银】NYOJ《题目490》翻译
- OpenCV平滑处理示例代码
- gdb调试行号错位