首页 > 代码库 > Python Fundamental for Django
Python Fundamental for Django
Strings
>>> s = ‘django is cool‘>>> words = s.split()>>> words[‘django‘, ‘is‘, ‘cool‘]>>> ‘ ‘.join(words)‘django is cool‘>>> s.count(‘o‘)3>>> s.find(‘go‘)4>>> s.replace(‘django‘, ‘python‘)‘python is cool‘
一些常用的string函数:
string method | description |
---|---|
count | Number of occurrences of substring in string |
find | Search for substring [also see index, rfind, rindex] |
join | Merge substrings into single delimited string |
replace | Search and replace (sub)string |
split | Split delimited string into substrings [also see splitlines] |
startswith | Does string start with substring [also see endswith] |
strip | Remove leading and trailing whitespace [also see rstrip, lstrip] |
title | Title-case string [also see capitalize, swapcase] |
upper | UPPERCASE string [also see lower] |
isupper | Is string all UPPERCASE? [also see islower, and so forth] |
格式化输出:
>>> ‘%s is number %d‘ % (‘python‘, 1)‘python is number 1‘>>> hi = ‘‘‘hellobaby‘‘‘>>> hi‘hello\nbaby‘>>> print hihellobaby
Tuples
tuple里面的元素不能被修改,这与它本身的实现机制有关,在传递参数的时候如果不希望参数被修改也是一种不错的选择。
>>> a = (‘one‘, ‘two‘)>>> a[0]‘one‘>>> c = (‘only‘,)>>> c[0]‘only‘>>> d = ‘only‘,>>> d[0]‘only‘
这里需要注意的是声明一个tuple的时候关键是逗号,如果没有下面的例子就只是一个string,注意到这个非常重要,因为很多django的数据类型用的都是tuple:
>>> b = (‘only‘)>>> b[0]‘o‘
Dictionaries
字典是一种有点像哈希表的列表,里面的元素有key和value两个属性。字典的元素可以修改,无序,且大小可以变化。如:
>>> book = {‘title‘:‘django‘, ‘year‘:2008}>>> ‘title‘ in bookTrue>>> book.get(‘pub‘, ‘N/A‘)‘N/A‘>>> book[‘pub‘] = ‘Addision‘>>> book.get(‘pub‘, ‘N/A‘)‘Addision‘>>> for key in book:... print key, ‘:‘, book[key]...year : 2008title : djangopub : Addision
一些常用函数:
Dictionary Method | Description | |
---|---|---|
keys | Keys (also see iterkeys) | |
values | Values (also see itervalues) | |
items | Key-value pairs (also see iteritems) | |
get | Get value given key else default [also see setdefault, fromkeys] | |
pop | Remove key from dict and return value [also see clear, popitem] | |
update | Update dict with contents of (an)other dict |
Enumerate
>>> data = enumerate((123, ‘abc‘, ‘hello‘))>>> for i, value in data:... print i, value...0 1231 abc2 hello
Exception Handling
如尝试打开文件的异常处理:
try: f = open(filename, ‘r‘)except IOError, e: return False, str(e)
也可以把多种错误类型放到一个tuple里面,一次过检测:
try: process_some_data()except (TypeError, ValueError,...), e: print "ERROR ", e
当然也可以对不同类型的异常用不同的处理方法,在最后一种情况通常加上一种Exception,因为这样可以包括所有的异常情况:
try: ...except (TypeError, ValueError), e: ...except ArithmeticError, e: ...except Exception, e: ...
Files
>>> f = open(‘test.txt‘, ‘w‘)>>> f.write(‘foo\n‘)>>> f.write(‘bar\n‘)>>> f.close()>>> f = open(‘test.txt‘, ‘r‘)>>> for line in f:... print line.rstrip()...foobar>>> f.close()
Anonymous Functions
匿名函数使用关键字lambda
,由一个表达式组成,代表函数的返回值。通常的使用方式:
lambda args: expression
sorted(list_of_people, key = lambda person: person.last_name)# 等价于def get_last_name(person): return person.last_namesorted(list_of_people, key = get_last_name)
* args and ** kwargs
python里面的*不是C语言里面的指针,作为参数传递时,* 表示一个tuple(list), ** 表示dict
例子如下:
def check_web_server(host, port, path): ...
调用函数的时候一般用法:
check_web_server(‘127.0.0.1‘, 8080, ‘/admin/‘)
如果把参数作为一个tuple或者dict的形式,可以通过下标的形式传递参数,但是用 * 的方式可以非常方便的完成传参:
host_info = (‘www.python.org‘, 80, ‘/‘)check_web_server(host_info[0],host_info[1], host_info[2])check_web_server(*host_info)host_info = {‘host‘: ‘www.python.org‘, ‘port‘: 80, ‘path‘: ‘/‘}check_web_server(**host_info)
动态实例化
与其他的一些编程语言不同,python支持类的动态的实例化,如:
>>> class Book(object):... def __init__(self, name):... self.name = name...>>> john = Book(‘John‘)>>> john.father = ‘Jack‘>>> print john.fatherJack
Python Fundamental for Django
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。