当前位置:首页 » Python技术

python入门笔记(五)

2018-04-15 08:21 本站整理 浏览(10)

#!/usr/bin/python

print "Hello, World!";

 

 

-d在解析时显示调试信息

-O生成优化代码 ( .pyo 文件 )

-S启动时不引入查找Python路径的位置

-V输出Python版本号

-X从 1.6版本之后基于内建的异常(仅仅用于字符串)已过时。

-c cmd执行 Python 脚本,并将运行结果作为 cmd 字符串。

file在给定的python文件执行python脚本。

 

 

# -*- coding: UTF-8 -*- 或者 #coding=utf-8      python 3.*版本不需要声明

 

Python 标识符

在 Python 里,标识符由字母、数字、下划线组成。

在 Python 中,所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头。

Python 中的标识符是区分大小写的。

以下划线开头的标识符是有特殊意义的。以单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入;

以双下划线开头的 __foo 代表类的私有成员;以双下划线开头和结尾的 __foo__ 代表 Python 里特殊方法专用的标识,如 __init__() 代表类的构造函数。

Python 可以同一行显示多条语句,方法是用分号 ; 分开,如:

>>> print 'hello';print 'world';

hello

world

 

Python 保留字符

andexecnot

assertfinallyor

breakforpass

classfromprint

continueglobalraise

defifreturn

delimporttry

elifinwhile

elseiswith

exceptlambdayield

 

 

 

Python语句中一般以新行作为为语句的结束符。

但是我们可以使用斜杠( \)将一行的语句分为多行显示,如下所示:

total = item_one + \

        item_two + \

        item_three

 

 

 

语句中包含 [], {} 或 () 括号就不需要使用多行连接符。如下实例:

days = ['Monday', 'Tuesday', 'Wednesday',

        'Thursday', 'Friday']

 

 

Python 可以使用引号( ' )、双引号( " )、三引号( ''' 或 """ ) 来表示字符串,引号的开始与结束必须的相同类型的。

其中三引号可以由多行组成,编写多行文本的快捷语法,常用于文档字符串,在文件的特定地点,被当做注释。

word = 'word'

sentence = "这是一个句子。"

paragraph = """这是一个段落。

包含了多个语句"""

 

 

Python注释

python中单行注释采用 # 开头。

#!/usr/bin/python

# -*- coding: UTF-8 -*-

# 文件名:test.py

 

# 第一个注释

print "Hello, Python!";  # 第二个注释

python 中多行注释使用三个单引号(''')或三个双引号(""")。

#!/usr/bin/python

# -*- coding: UTF-8 -*-

# 文件名:test.py

 

 

'''

这是多行注释,使用单引号。

这是多行注释,使用单引号。

这是多行注释,使用单引号。

'''

 

"""

这是多行注释,使用双引号。

这是多行注释,使用双引号。

这是多行注释,使用双引号。

"""

 

print 默认输出是换行的,如果要实现不换行需要在变量末尾加上逗号 ,

#!/usr/bin/python

# -*- coding: UTF-8 -*-

 

x="a"

y="b"

# 换行输出

print x

print y

 

print '---------'

# 不换行输出

print x,

print y,

 

# 不换行输出

print x,y

 

 

if expression : 

   suite 

elif expression :  

   suite  

else :  

   suite 

   

   

 

很多程序可以执行一些操作来查看一些基本信息,Python 可以使用 -h 参数查看各参数帮助信息:

 

#!/usr/bin/python

# -*- coding: UTF-8 -*-

import sys

print sys.argv

sys.argv 用来获取命令行参数

 

运行命令,执行结果:

./test.py hello

['./test.py', 'hello']

sys.argv[0] 代表文件本身路径,所带参数从 sys.argv[1] 开始。

 

 

 

脚本语言的第一行,目的就是指出,你想要你的这个文件中的代码用什么可执行程序去运行它,就这么简单。

#!/usr/bin/python : 是告诉操作系统执行这个脚本的时候,调用 /usr/bin 下的 python 解释器;

#!/usr/bin/env python(推荐): 这种用法是为了防止操作系统用户没有将 python 装在默认的 /usr/bin 路径里。当系统看到这一行的时候,首先会到 env 设置里查找 python 的安装路径,再调用对应路径下的解释器程序完成操作。

#!/usr/bin/python 相当于写死了python路径;

#!/usr/bin/env python 会去环境设置寻找 python 目录,推荐这种写法

 

 

多个变量赋值

Python允许你同时为多个变量赋值。例如:

a = b = c = 1

以上实例,创建一个整型对象,值为1,三个变量被分配到相同的内存空间上。

您也可以为多个对象指定多个变量。例如:

a, b, c = 1, 2, "john"

以上实例,两个整型对象1和2的分配给变量 a 和 b,字符串对象 "john" 分配给变量 c。

 

 

Python数字

数字数据类型用于存储数值。

他们是不可改变的数据类型,这意味着改变数字数据类型会分配一个新的对象。

当你指定一个值时,Number对象就会被创建:

var1 = 1

var2 = 10

您也可以使用del语句删除一些对象的引用。

del语句的语法是:

del var1[,var2[,var3[....,varN]]]]

您可以通过使用del语句删除单个或多个对象的引用。例如:

del var

del var_a, var_b

Python支持四种不同的数字类型:

int(有符号整型)

long(长整型[也可以代表八进制和十六进制])

float(浮点型)

complex(复数)

 

 

一些数值类型的实例:

intlongfloatcomplex

1051924361L0.03.14j

100-0x19323L15.2045.j

-7860122L-21.99.322e-36j

0800xDEFABCECBDAECBFBAEl32.3e+18.876j

-0490535633629843L-90.-.6545+0J

-0x260-052318172735L-32.54e1003e+26J

0x69-4721885298529L70.2E-124.53e-7j

长整型也可以使用小写 l,但是还是建议您使用大写 L,避免与数字 1 混淆。Python使用 L 来显示长整型。

Python 还支持复数,复数由实数部分和虚数部分构成,可以用 a + bj,或者 complex(a,b) 表示, 复数的实部 a 和虚部 b 都是浮点型。

 

 

 

 

Django 模板标签

if/else 标签

基本语法格式如下:

{% if condition %}

     ... display

{% endif %}

或者:

{% if condition1 %}

   ... display 1

{% elif condition2 %}

   ... display 2

{% else %}

   ... display 3

{% endif %}

根据条件判断是否输出。if/else 支持嵌套。

{% if %} 标签接受 and , or 或者 not 关键字来对多个变量做判断 ,或者对变量取反( not ),例如:

{% if athlete_list and coach_list %}

     athletes 和 coaches 变量都是可用的。

{% endif %}

for 标签

{% for %} 允许我们在一个序列上迭代。

与Python的 for 语句的情形类似,循环语法是 for X in Y ,Y是要迭代的序列而X是在每一个特定的循环中使用的变量名称。

每一次循环中,模板系统会渲染在 {% for %} 和 {% endfor %} 之间的所有内容。

例如,给定一个运动员列表 athlete_list 变量,我们可以使用下面的代码来显示这个列表:

<ul>

{% for athlete in athlete_list %}

    <li>{{ athlete.name }}</li>

{% endfor %}

</ul>

给标签增加一个 reversed 使得该列表被反向迭代:

{% for athlete in athlete_list reversed %}

...

{% endfor %}

可以嵌套使用 {% for %} 标签:

{% for athlete in athlete_list %}

    <h1>{{ athlete.name }}</h1>

    <ul>

    {% for sport in athlete.sports_played %}

        <li>{{ sport }}</li>

    {% endfor %}

    </ul>

{% endfor %}

ifequal/ifnotequal 标签

{% ifequal %} 标签比较两个值,当他们相等时,显示在 {% ifequal %} 和 {% endifequal %} 之中所有的值。

下面的例子比较两个模板变量 user 和 currentuser :

{% ifequal user currentuser %}

    <h1>Welcome!</h1>

{% endifequal %}

和 {% if %} 类似, {% ifequal %} 支持可选的 {% else%} 标签:8

{% ifequal section 'sitenews' %}

    <h1>Site News</h1>

{% else %}

    <h1>No News Here</h1>

{% endifequal %}

注释标签

Django 注释使用 {# #}。

{# 这是一个注释 #}

过滤器

模板过滤器可以在变量被显示前修改它,过滤器使用管道字符,如下所示:

{{ name|lower }}

{{ name }} 变量被过滤器 lower 处理后,文档大写转换文本为小写。

过滤管道可以被* 套接* ,既是说,一个过滤器管道的输出又可以作为下一个管道的输入:

{{ my_list|first|upper }}

以上实例将第一个元素并将其转化为大写。

有些过滤器有参数。 过滤器的参数跟随冒号之后并且总是以双引号包含。 例如:

{{ bio|truncatewords:"30" }}

这个将显示变量 bio 的前30个词。

其他过滤器:

addslashes : 添加反斜杠到任何反斜杠、单引号或者双引号前面。

date : 按指定的格式字符串参数格式化 date 或者 datetime 对象,实例:

{{ pub_date|date:"F j, Y" }}

length : 返回变量的长度。

include 标签

{% include %} 标签允许在模板中包含其它的模板的内容。

下面这个例子都包含了 nav.html 模板:

{% include "nav.html" %}

模板继承

模板可以用继承的方式来实现复用。

接下来我们先创建之前项目的 templates 目录中添加 base.html 文件,代码如下:

HelloWorld/templates/base.html 文件代码:

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title></title>

</head>

<body>

    <h1>Hello World!</h1>

    <p>测试。</p>

    {% block mainbody %}

       <p>original</p>

    {% endblock %}

</body>

</html>

以上代码中,名为 mainbody 的 block 标签是可以被继承者们替换掉的部分。

所有的 {% block %} 标签告诉模板引擎,子模板可以重载这些部分。

hello.html 中继承 base.html,并替换特定 block,hello.html 修改后的代码如下:

HelloWorld/templates/hello.html 文件代码:

{% extends "base.html" %}

 

{% block mainbody %}<p>继承了 base.html 文件</p>

{% endblock %}