近期笔记



网商工具平台 将近期Coding时需要谷歌的点,记录一下,主要是 Python Flask Jquery 方面

Python

Python 正则

Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式。

正则表达式实例

  1. 字符类
实例 描述
[Pp]ython 匹配 “Python” 或 “python”
rub[ye] 匹配 “ruby” 或 “rube”
[aeiou] 匹配中括号内的任意一个字母
[0-9] 匹配任何数字。类似于 [0123456789]
[a-z] 匹配任何小写字母
[A-Z] 匹配任何大写字母
[a-zA-Z0-9] 匹配任何字母及数字
[^aeiou] 除了aeiou字母以外的所有字符
[^0-9] 匹配除了数字外的字符
  1. 特殊字符类
实例 描述
. 匹配除 “\n” 之外的任何单个字符。要匹配包括 ‘\n’ 在内的任何字符,请使用象 ‘[.\n]’ 的模式
\d 匹配一个数字字符。等价于 [0-9]
\D 匹配一个非数字字符。等价于 [^0-9]
\s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]
\S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]
\w 匹配包括下划线的任何单词字符。等价于’[A-Za-z0-9_]’
\W 匹配任何非单词字符。等价于 ‘[^A-Za-z0-9_]’  

re.match && re.search

re.match(pattern, string, flags=0)

re.search(pattern, string, flags=0)

阅读全文 »


Python Notes



本文内容来自,慕课网廖老师 Python 课程,地址: http://www.imooc.com/learn/317

#高阶函数

将函数当做入参:

def half(c): return c / 2.0
def test(a, b, c):
    return c(a) + c(b)
print(test(2, 8, half))  

##Map

map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。

阅读全文 »


用 Python 玩测试



Python 库这么多,测试库肯定也是丰富无比。官网给出了Python测试框架的列表 PythonTestingToolsTaxonomy , 常见的比如 unittest nose mock Selenium 等。本文简单了解一下 Python 的测试~

单元测试 unittest

首先,给出, unittest 文档地址 https://docs.python.org/4.5/library/unittest.html, 具体用法,就不翻译了,查查文档就行。

第一句话就乐了, unittest 是借鉴 Junit 实现的。

The unittest unit testing framework was originally inspired by JUnit and has a similar flavor as major unit testing frameworks in other languages.

unittest 支持以下四种方式:

  • test fixture
  • test case
  • test suite
  • test runner

关系

首先是要写好TestCase,然后由TestLoader加载TestCase到TestSuite,然后由TextTestRunner来运行TestSuite,运行的结果保存在TextTestResult中,整个过程集成在unittest.main模块中。

unittest Demo

import unittest

class TestStringMethods(unittest.TestCase):

  def test_upper(self):
      self.assertEqual('foo'.upper(), 'FOO')

  def test_isupper(self):
      self.assertTrue('FOO'.isupper())
      self.assertFalse('Foo'.isupper())

  def test_split(self):
      s = 'hello world'
      self.assertEqual(s.split(), ['hello', 'world'])
      # check that s.split fails when the separator is not a string
      with self.assertRaises(TypeError):
          s.split(2)
  @unittest.skip("demonstrating skipping")
  def test_nothing(self):
      self.fail("shouldn't happen")

  @unittest.skipIf(mylib.__version__ < (1, 3),
                   "not supported in this library version")
  def test_format(self):
      # Tests that work for only a certain version of the library.
      pass

  @unittest.skipUnless(sys.platform.startswith("win"), "requires Windows")
  def test_windows_support(self):
      # windows specific testing code
      pass
        
if __name__ == '__main__':
    unittest.main()

##参考文档

1. Python单元测试——深入理解unittest

阅读全文 »


《Python 高手之路》读书笔记 <一>



《Python 高手之路》这本书很不错,翻译的也部分到位!先贴一段介绍:

 Python 是一门优美的语言, 它快速,灵活且内置了丰富的标准库, 已经用于越来越多的不同领域。 通常大多数关于 Python 的书都会教读者这门语言的基础知识, 但是掌握了这些基础知识后, 读者在设计自己的应用程序和探索最佳实践时仍需要完全靠自己。 本书则不同, 介绍了如何利用 python 有效的解决问题, 以及如何构建良好的 python 应用程序。

项目开始

1. python 项目结构

此处输入图片的描述

上图展示了一个项目的标准目录层次结构。

2. python 版本编号

PEP440 中规定了 python 的版本号应当遵照以下正则表达式:

 [N!]N(.N)*[{a|b|rc}N][.postN][.devN]

1.2a1 表示 alpha 版本,不是很稳定

2.3.1b2 一个beta版本,差不多了,有点Bug

3. 代码风格与编码规范

Python! 毫无疑问,PEP8, 参考地址 PEP 0008 – Style Guide for Python Code

还有个译文版! 真赞 !! 译 PEP 8 - Python 编码风格指南

阅读全文 »


Shell 交互工具 expect



执行该命令时,提示需要输入密码,谷歌了一下发现有expect这个工具,可以进行脚本自动交互,填入数据。直接贴个简单登录代码,后面部分可以忽略不看:

  
#!/usr/bin/expect  -f
spawn ssh root@$facecode.org
expect "password:"
send "xxoo\r"
interact

阅读全文 »