Python应用小坑备忘录

总结了一些常见的Python用法的小坑,以下Python用法信息适用于Python 2.7.13版本。

  1. 使用int()转换为整数型时,会做向下取整。例如int(38.8)会得到38,而不是39
  2. 在使用input()和raw_input接收用户输入时,注意前者获得是一个合法的Python表达式,而后者获得的是一个任何字符串。例如input()输入12会得到一个数值,输入3+1会得到4,而输入abcde则会报错,除非abcde是一个变量或常量对象,因为这不是一个合法表达式,如果要输入字符串需要使用'abcde'。而在raw_input中所有被输入的对象都会被转换为字符串,例如还是上面输入,结果会分别得到'12'、'3+1'、'abcde'。
  3. =是赋值符号,==是等值判断符合,二者可能用错,尤其在条件判断中会手下笔误的使用=做判断
  4. 区别/和%的作用,前者用于取除数的整数,后者用于取余数。例如5/2=2,而5%2=1。/的结果跟分子或分母的类型有关,例如5./2=2.5(而不是2)。
  5. continue和break都有类似于“终止”当前程序执行的意思,但前者用于跳过当次的迭代直接进入下一次,而break则直接终止所有迭代,跳到循环外的语句继续执行。
  6. 记得对太长的字符串或公式使用换行符。根据PEP 8规范,每行最大长度79,换行可以使用反斜杠,最好使用圆括号,换行点要在操作符的后边敲回车。
  7. 使用print输出浮点数并转换为整数时,如果使用d做格式化,那么会“直接截取”整数部分,如果使用f保留0位小数,则会四舍五入。例如n=12.556, print ('The number is: %.0f' % n)的结果是The number is: 13。而print ('The number is: %d' % n)的结果是12。这点跟int()比较类似。
  8. 文件目录中尽量使用/而不是\,例如c:/test/a.txt而不是c:\\test\\a.txt,虽然两个语法的结果是相同的,但前者明显更简洁。(当然,更不能用c:\test\a.txt,这是错误的)
  9. 使用Python默认的文件读取方法时,记得在最后使用close()将其关闭掉,否则在多个应用都调取该文件或做操作时会由于冲突而报错。另外一个比较好的办法是使用with open() as f这种方法直接读写文件,这样就不用“手动”文件了,它会在该程序执行完之后自动关闭。
  10. 文件读取模式的+模式很好用,例如a+,w+等,尤其在测试时无需关注是否有存在文件可以直接做文件写入。但是在生产应用时,注意先清空里面的测试内容。

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>