s
# coding=utf-8
print 'hello world哈'
# -*- coding: utf-8 -*-
print 'hello world哈'
内建函数str()和repr()或反引号操作符(``)可以方便地以字符串的方式获取对象的内容、类型、数值属性等信息。str()函数得到的字符串可读性好,而repr()函数得到的字符串通常可以用来重新获得该对象,通常情况下obj == eval(repr(obj)) 这个等式是成立的。这两个函数接受一个对象作为其参数,返回适当的字符串。在下面的例子里,我们会随机取一些Python对象来查看他们的字符串表示。
>>> str(4.53-2j) |
尽管str(),repr()和``运算在特性和功能方面都非常相似,事实上repr()和``做的是完全一样的事情,它们返回的是一个对象的“官方”字符串表示,也就是说绝大多数情况下可以通过求值运算(使用内建函数eval())重新得到该对象,但str()则有所不同。str()致力于生成一个对象的可读性好的字符串表示,它的返回结果通常无法用于eval()求值,但很适合用于print语句输出。需要再次提醒的是,并不是所有repr()返回的字符串都能够用 eval()内建函数得到原来的对象。
>>> eval(`type(type))`) |
也就是说 repr() 输出对 Python比较友好,而str()的输出对用户比较友好。虽然如此,很多情况下这三者的输出仍然都是完全一样的。
http://wiki.python.org/moin/WebFrameworks
http://jiayanjujyj.iteye.com/blog/1409819
distribute是setuptools的取代,pip是easy_install的取代。
关于这些包工具可以参考 http://guide.python-distribute.org/installation.html#installing-pip
下面简单的介绍一下:
Distribute是对标准库disutils模块的增强,我们知道disutils主要是用来更加容易的打包和分发包,特别是对其他的包有依赖的包。
Distribute被创建是因为Setuptools包不再维护了。
或者:
$ wget http://python-distribute.org/distribute_setup.py $ python distribute_setup.py
s
#字符串
value = {'what': 'hello, world', 'language': 'python'}
print '%(what)s, %(language)s' % value
#也可以包含int的
value = {'name': 'jianpx', 'age': 23}
print '%(name)s 's age is %(age)i' % value
运用zip可以非常简单的实现:首先zip生成的是一个tuple组成的list
names = ['jianpx', 'yue']
ages = [23, 40]
m = dict(zip(names,ages))
a,b = b,a
#以前是这样写的
fruits = ['apple', 'banana']
result = ''
for f in fruits:
result += f
#现在可以这样:
fruits = ['apple', 'banana']
result = ''.join(fruits)
old_list = [1,1,1,3,4]
new_list = list(set(old_list))
from __future__ import with_statement
with open('filename','r') as f:
for line in f:
print line
l = [1,3, 4]
for index, value in enumerate(l):
print '%d, %d' % (index, value)
names = 'jianpx, yy, mm, , kk'
result = [name for name in names.split(',') if name.strip()]
return_value = True if a == 1 else False
例如要对一个函数做cache,对一个操作限制权限,如果需求随时可能变化,就是说有可能不需要做cache或者不需要做权限的时候,你如果把实现放到这些函数体里面,那么这时你必须把这些代码删除,而且要很小心。但是如果你用Decorator去做的话, 只要删除函数头顶上的@那一行就可以了。Django经常用这种方法做权限控制。
熟悉decorator的应该都很容易理解。
s