奇怪的现象 前几天跟同事聊起来,在计算机内部float比较是很坑爹的事情.比方说,0.1+0.2得到的结果竟然不是0.3? >>> 0.1+0.2 0.30000000000000004 为什么会出现如此傻的结果呢? 这篇文章做了详细的解释,简单的来说就是计算机里面的数字是由二进制保存的,在计算机内部有些数字不能准确的保存,于是就保存一个最靠近的数字. 在十进制中也会存在这样的问题,数字不能准确地表示像1/3这样的数字,所以你必须舍入到0.33之类的东西 - 你不要指望0.33 + 0.…
问题1.  如何在SQL中默认的使用float类型的数据 SQL中想要通过计算的方式最快的得到一个float类型的数据,只需要运算的其中一个值后面加上小数点就ok. 比如 :9/2=4 但是 :9/2.0=4.50000 问题2.  如何截取字段,只保留小数点两位 select CONVERT(nvarchar(50),Convert(decimal(18,2),数值1)) 如下: select CONVERT(nvarchar(50),Convert(decimal(18,2),4.50000…
说明: 在python中,没有单独的字符类型,一个字符呢就是一个大小为1的字符串. 并且可以通过下标的方式,表示字符串中的字符. 操作过程: 1.通过[ ]的方式表示字符串中的第几个字符 >>> text = 'python' >>> text[0] #0表示的就是第一个位置上的字符 'p' >>> text[3] #位置3上的字符 'h' #[ ]中括号中的值,可以是负值,表示的是从右边开始计数>>> text[-1] #从右边开始…
两个int类型的数据相加,有可能会出现超出int的表示范围. /* 移位运算符: <<(左移) 规律:一个操作数进行左移运算的时候,结果就是等于操作数乘以2的n次方,n就是左移 的位数. 3<<1 = 3 2(1) = 6; 3<<2 = 32(2) = 12 3<<3 = 3*2(3) = 24 >>(右移) 规律:一个操作数在做右移运算的时候,实际上就是等于该操作数除以2的n次方,n就是右移的位数. 3>>1 = 3 / 2(1)…
一.filter(function, iterable) - 过滤("海选") # 判断落在第一象限的点[(x1, y1), (x2, y2)...] points = [(-1, 2), (2, 3), (-1, -2), (2, -2), (1, 2)] # 方法一: # 验证函数:若在第一象限,则返回True def func(p): return (p[0] > 0) and (p[1] > 0) # 返回所有第一象限的点 sel_points = filter(f…
一.isinstance() 在Python中可以使用type()与isinstance()这两个函数判断对象类型,而isinstance()函数的使用上比type更加方便. # coding=utf-8 a = 10 def b(): pass print isinstance(a,(int,str)) print isinstance(a,(float,str)) print isinstance(b,(str,int)) class c: pass obj = c() print isin…
Python的pandas包对表格化的数据处理能力很强,而SQL数据库的数据就是以表格的形式储存,因此经常将sql数据库里的数据直接读取为dataframe,分析操作以后再将dataframe存到sql数据库中.而pandas中的read_sql和to_sql函数就可以很方便得从sql数据库中读写数据. read_sql 参见pandas.read_sql的文档,read_sql主要有如下几个参数: sql:SQL命令字符串 con:连接sql数据库的engine,一般可以用SQLalchemy…
使用python的 zip函数 和强大的集合操作可以方便的将两个list元素一一对应转换为dict,如下示例代码: names = ['n1','n2','n3'] values = [1,2,3] nvs = zip(names,values) nvDict = dict( (name,value) for name,value in nvs) 结果如下:…
dic = {"k1":"v1", "k2":"v2"} for k in dic: print(dic[K]) for k, v in dic.items(): print(k, v) 这两种方法都可以用来遍历的.…
1, add 2, 用list的extend方法,L1.extend(L2),该方法将参数L2的全部元素添加到L1的尾部,例如: 3, 用切片(slice)操作,L1[len(L1):len(L1)] = L2和上面的方法等价, 但切片方法用起来更灵活,可以插入到头部,或其他任意部位,也可以加到中间.…