Python的布尔值与逻辑判断

记得在写C程序的时候 什么都敢往if后面接 后来用C++ 有人说写代码要规范 于是布尔值直接用或者取反 整形要等于0 字符串要等于空串 浮点型最麻烦 不能用等于号了 而现在 在python中 又返璞归真了 我又什么都敢往if后面放了 初学python 不知道有没有这方面的代码规范 总之在规范之前先搞清楚语法再说吧 在python中 None/False/空字符串""/0/空列表[]/空字典{}/空元组()都相当于False 其它的都相当于True python中的逻辑运算有这些 优先级从高到低排列 <,<=,>,>=,!=,== 这些比较运算比所有的逻辑运算优先级都高 is,is not 然后这两个是判断 这个和==的区别我有空再写一篇说 in,not in 接着是这两个判断是否属于的 not 非在逻辑运算里优先级最高 and 其次是与 or 最后是或 这和很多语言都一样 关于逻辑运算的默认运算顺序 是从左到右的 比如 a and b and c 返回值是最靠左的假值 如果都是False 那么返回c

2011年1月21日 · 1 分钟 · Hyacinthus

SyntaxHighlighter在chrome中的问题

折腾了许久 终于弄好了SyntaxHighlighter 但是发现它在chrome中右侧总是有滚动条 而在IE9则没问题 于是找了找css 比如默认的shCoreDefault.css的59行 .syntaxhighlighter的一个属性 overflow: auto !important; 把auto改成hidden 这回它怎么也不出来滚动条了 就是不知道有没有什么副作用 比如代码太长的时候会显示不全? 等遇到再说吧

2011年1月20日 · 1 分钟 · Hyacinthus

Shell里的比较

经常看到有人迷惑于shell的比较 看到初学Linux的人写的简单shell一般都是if时出现各种错误 shell中的判断的确和一般的程序不太一样 如果你想仔细的研究这个问题 很简单 只需要在系统中man test 把test的帮助完全看懂就好了 这里我更简单的介绍下 给不想看英文帮助的人看 shell的比较是测试里的一类 测试还包括测试各种对象是否存在 他们全部返回一个bool值 大多在if的时候用 比较分为数值的比较和字符串的比较 数值的比较如下 -eq 等于 -ne 不等于 -gt 大于 -lt 小于 -le 小于等于 -ge 大于等于 比如要测试$1是否大于2就是 COUNT=3 if [ $COUNT –gt 2 ] then echo 'right' fi 注意方括号里边开始和结束各要空一个格 变量和比较命令之间也要空格 有时候错误就是空格引起的 至于有人会奇怪为什么这个比较这么奇怪 其实gt是greater than的缩写 其他以此类推 这下这命令好记了吧 ...

2010年12月30日 · 1 分钟 · Hyacinthus

UE的正则表达式替换

经常使用UE的正则表达式 但是都比较简单 比如用%代表行首啦用$代表行尾啦或者去去tab和空格 今天有个需求 需要把所有的VARCHAR2(10)这样的类型替换成VARCHAR2(10 CHAR) 而又有很VARCHAR2(7 BYTE)当然不需要加CHAR 想要找到所有的这种类型十分容易 VARCHAR2([0-9]++) 可是该怎么替换呢?这真是个困难的问题 在网上搜索了一下UE的正则表达式 可是如你所见 搜索结果的同质化太严重 我翻来覆去几页的结果看到的只有一篇文章 只好自己研究了 记得有个例子是用^(和^)括起来了两个单词 然后用^2 ^1可以将其替换 可是我现在只需要在括号里增加一个单词 看起来很不一样 后来突然我想到了一个办法 像下面这样 把^(VARCHAR2([0-9]++^)^()^) 替换成^1 CHAR^2 好了 大功告成了 我们把原单词分成了两节 然后替换成了这两节中间加了需要的单词 只要理解了这个 我觉得应该能在UE中做出任何自由的替换了吧

2010年12月24日 · 1 分钟 · Hyacinthus

Google App Engine终于被墙

2010年12月9日 Google App Engine终于被墙了 很奇怪 我总是一用什么什么就悲剧 Blogger Twitter Facebook Picasa 等等 只有Youtube跟我没关系 我前些天还在惊叹GAE存活了很长时间啊 没想到才研究了几天就墙了…… 12月13日更新:已经解封 缘故应该如大家猜测 那个什么奖

2010年12月9日 · 1 分钟 · Hyacinthus

usermod修改用户群组的问题

今天测试的程序 发现应用用户对oracle突然没权限了 去/etc/group看了一下 发现果然应用用户不在dba组了 这时才想起来之前自己用usermod -G给这个用户加过组 于是仔细查了查资料 才发现的确有问题 也许以前都是改/etc/group文件的 对usermod这个命令并不熟悉 usermod –G 并不是往从组里加一个group 而是会把用户以前的组全部抹掉 完全赋值成新的 所以用的时候已经记得把所有需要的组写一遍 其实如此说来改组还是直接去改/etc/group方便了 这个文件每行的格式为 组名:加密的口令:GID:用户1,用户2,…

2010年12月9日 · 1 分钟 · Hyacinthus

Python循环中的进度输出

今天在进行一个较为耗时的运算时 不知道程序运行了多少 等的比较焦虑 想到这种时候应该给程序加个进度显示 上万行的数据肯定不能每行都输出 那么每10%显示个进度吧 # -*- coding: UTF-8 -*- #源列表 这里随便定义一个 list=range(3456) #要打印的节点 10为每10%打印一次 node=range(0,len(list),len(list)/10) #开始循环 for index,item in enumerate(list): #打印百分比     if node.count(index)!=0:         persent=index*100/len(list)         print '%d%%' % persent #这里添加其他处理 print 'finish!' 第一行的list是代表要循环列表 主要思想是 首先用enumerate取到每行的索引号 然后制造一个抽样的列表 这里平均抽10个 然后到了列表中的进度时就打印一个百分比出来 总共多用了四行代码 循环体内多了个count和比较 我才学用python几天 感觉这代码很笨拙肯定有可以改进的地方 首先这个count就感觉很浪费 可是对于列表我找不到find或者exist方法 index方法搜索不到时会出错 也不好用 另外打印出来的比例也不是整数 不过是给自己看的 无所谓了 希望谁有什么更简单或者华丽的办法 可以指点我一下

2010年12月7日 · 1 分钟 · Hyacinthus

Google App Engine更新的1.4.0

 Google App Engine服务器端和SDK包先后更新到了1.4.0。Google App Engine就是个Google提供的免费虚拟主机,可以支持Python语言和Java语言,很好玩哦。这个Blog就是搭建在GAE之上。 本次是一个较大的版本更新,受到众多开发人员的期待。 更新的特性主要有: 1.新的Always On特性可以供三个应用实例在后台常驻运行.(此前最长只支持30秒) 2.可以支持一个实例初始化程序. 3.Channel API对所有的用户开放. 4.任务队列更新到正式版. 5.任务队列和任务计划的执行时间限制延长到10分钟.(此前是30秒) 6.可以自定义任务队列的重试时间.支持队列数目增加到100. 7.数据存储区现在可以查询类型,表空间和实体的属性. 8.URLFetch应答数据增加到32M. 9.程序发出的邮件附件限制从1M提高到10M,接收的限制仍然是10M. 10.数据存储的批量接口不再限制每次操作的数据量,普通请求仍为1M. 11.控制台的黑名单现在可以显示被拒绝的访问者信息. 12.自动图像裁剪服务支持像素上升到1600px. 13.可以下载源码了!(以前只能同步上传) 另外还有一些小的更新个bug修复,详情请参见更新列表: https://code.google.com/p/googleappengine/wiki/SdkReleaseNotes

2010年12月3日 · 1 分钟 · Hyacinthus

ORACLE中AS和IS的不同

答案是基本没有不同 哈哈 这是ORACLE为了方便而设置的同义词 在建存储过程(PROCEDURE)/函数(FUNCTION) 以及自定义类型(TYPE)/包(PACKAGE)的时候 用这两种都不会报错 但是 并不是所有的地方都可以这样 在建视图(VIEW)的时候 是只能用 AS 而不能用 IS 的 相反在声明游标(CURSOR)的时候 是只能用 IS 而不能用 AS 的 我也是好奇才研究这个问题 中文网站上并没有详细的讨论过这个问题 查阅了很多资料和文档 有趣的是 发现在哪里都有难以理解的偏执狂 在ORACLE官方论坛 看到一个人问存储过程用AS和IS什么区别 下边就有人回答没有区别 但是在视图里就不能用IS 这时候一个路人跳出来说 人家楼主明明问的是在存储过程里有什么区别 你不好好回答 逞的什么能 还扯什么视图 这时候路人都看不下去了说人家回答问题怎么了 有人说经常见有人问这种语法问题说下也好 第一个回答的人很有涵养说大家不要吵 讨论问题就好了 我回答要是违规版主会处理的 这时候那个偏执狂继续跳出来战群雄 说这里是存储过程版面 讨论的什么语法问题 谁会在这里问语法问题 这里不欢迎你们 后来 后来当然是大家都不理他了

2010年11月30日 · 1 分钟 · Hyacinthus

Windows Live Writer 2011

以前短暂的用过Writer 后来Blogger被封了 我还找了个代理 再后来代理也被封了 我也就不用了 现在发现这个新的Blog可以支持用客户端 并且我机器上刚好有最新的Writer 可设置的时候着实费了一番力气 又是检查网络 检查防火墙 还检查服务器端的代码 最后发现问题竟然是添加账户的时候最下面有行小小的代理设置 还是我之前设置过的那个代理 现在失效了 这显然连接不上 现在直连就好了 我正好测试一下效果 Writer 2011和Office 2010界面是统一的 这个新的界面风格很好 真不知道为什么那么多人抱着Office 2003不放 读不了docx的文件宁可去搜索个插件装上也不更新…

2010年11月28日 · 1 分钟 · Hyacinthus