python教程/学习笔记
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
无论什么情况下,使用UTF-8 才是王道! 1 # -*- coding:utf-8 -*2 2.2.5. 导入 通常应该在单独行中使用导入。 例如:No: import sys, os Yes: import sys import os 但是这样也是可以的: from types import StringType, ListType imports 应该放在文件的顶部,仅在模块注释和文档字符串之后,在模块的全局变量和常量之前。 Imports 也是有顺序的:1)Python 标准库的import;2)第三方库的import;3)自定义的库的import; 并且在每组的import 之间使用一行空行分割。 2.2.6.以下地方不推荐出现空格: 1) 紧挨着圆括号,方括号和花括号的 如:"spam( ham[ 1 ], { eggs: 2 } )".写成"spam(ham[1], {eggs: 2})". 2) 紧贴在逗号,分号或冒号前的 如: "if x == 4 : print x , y ; x , y = y , x". 写成"if x == 4: print x, y; x, y = y, x". 3) 紧贴着函数调用的参数列表前开式括号的 如: "dict ['key'] = list [index]". 写成"dict['key'] = list[index]". 4) 紧贴在索引或切片下标开始的开式括号前 如: "dict ['key'] = list [index]".写成"dict['key'] = list[index]". 5) 在赋值(或其它)运算符周围的用于和其它并排的一个以上的空格,如: 1x=1 2y=2 3 long_variable = 3 写成 1x=1 2y=2 3 long_variable = 3 6)始终在这些二元运算符两边放置一个空格:赋值(=), 比较(==, <, >, !=, <>, <=,>=, in, not in, is, isnot), 布尔运算(and, or, not). 按 你的看法在算术运算符周围插入空格. 始终保持二元运算符两边空格的一致.一些例子: 1 i = i+1 2 submitted = submitted + 1 3 x = x*2 - 1 4 ypot2 = x*x + y*y
1 ‘’’ 2 @version: 1.0.0.0 3 ‘’’ 跟其他相关信息(如author、copyright、date 等)一起。 2.2.12.命名规则 1)单下划线作为前导,如:_single_begin,这是弱的内部使用标识,例如使用“from M import*”的时候不会被导入; 2)单下划线作为结尾的,如:single_end_,这一般用于跟python 关键词冲突; 3)双下划线前导,如:__double_begin,类私有名; 4)双下划线前导+结尾,如:__double_begin_and_end__,特殊对象或属性,存在于用户控制的命名空间中,如: __init__,__import__等。有时可以被用户定义,用于触发某个特殊行为,如运算符重载。 5)模块名应该是不含下划线的,简短的,小写的名字 6)类名总是使用首字母大写、驼峰命名(第一个单词以小写字母开始;第二个单词的首字母大写或每一个单词的首字母都采 用大写字母)单词串的约定。
单引号双引号三引号或其中单引号和双引号功能完全相同和c的双引号表示字符串方式一样主要是新增了一个三引号的多行模式在三引号的模式中可以使用单引号和双引号也可以接收换行符号对于表示多行来说非常方便
python教 程 / 学 习 笔Байду номын сангаас记
一.python引论 1.1.将Python程序代码保存为以.py结尾的文件 1.2.缩进的一致性 1.3.获取用户输入: >>>x=raw_input('x:') # raw_input与input区别,前者获取用户输入后返回的类型是字符串,后者返回初始值。x:2 >>>y=raw_input('y:') y:3 print x*y 6# 结束 1.4.赋值时要注意,如果赋的是列表、字典和set,那么不能直接用赋值号=,而是要用copy 函数,因为这三种容器本质上赋的 是地址。其他情况的赋值无所谓。 二.python基本语法 2.1.python文件类型 2.1.1文件分类: 1)*.py文件,这就是我们常见的py源文件,没什么好说的; 2)*.pyc,py源文件编译成的二进制字节码文件,依然由python加载执行,不过速度会提高,也会隐藏源码; 3)*.pyo,优化编译后的程序,也是二进制文件,适用于嵌入式系统。 2.1.2、生成pyc和pyo文件 1)如何生成pyc文件呢? 假设我们有一个1.py文件需要编译成pyc文件,则在python shell输入 import py_compile py_/doc/40f6254169dc5022aaea00f8.html pile('1.py') 这样就可以生成pyc文件了 2)如何生成pyo文件呢? python -O -m py_compile 1.py 另外,pyc和pyo跟py文件是一样的,依然可以用python 1.pyc等形式执行 2.2.python编码规则(见pdf文件) 2.2.1. 关于缩进:python 是通过缩进来进行代码布局的。使用vi 可以在~/.vimrc 中配置几个空格来代表一个tab,从而来布局 python 函数的缩进。可以只用空格,也可以全部使用tab键,这样也不会出错。注意空格与tab不能混用。 2.2.2.关于行长度:反斜杠续行。 2.2. 3.用两行分割顶层函数和类的定义;用一行分割类成员方法的定义;在一个函数内用空行时请注意谨慎使用于一个逻辑段。 2.2.4. 在python 2.4 之后内核已经开始支持Unicode 了。
你可以将None复制给任何变量,但是你不能创建其他NoneType对象。 (具体None用法在下文中查找即可) 2.3.4.转义符 转义符的功能基本上和C语言系统相同,以'\+转义字符'的显示来表示引号,换行等特殊字符 \n 换行 \t tab 2.3.5.取消转义符 转义字符很多时候给使用带来的不便,如文件路径,正则表达式等。对于无需转义的字符串中可以通过r前缀会取消转义符, 从而方便阅读。 r"C:\Python27\python.exe" Unicode字符串 Python默认的编码是不支持中文的: >>> print '中文abc' ???–?abc 对于中文字符串,我们需要加u前缀来转换为unicode形式: >>> print u'中文abc' 中文abc 2.3.6.连接字符串 相邻放置的字符串会自动级连。例如,'What\'s' 'your name?'会被自动转为"What's your name?" 2.3.7.变量命名规范:Python变量命名规范基本和C语言一样,感兴趣的可以看看: 标识符的第一个字符必须是字母表中的字母(大写或小写)或者一个下划线(' _ ')。 标识符名称的其他部分可以由字母(大写或小写)、下划线(' _ ')或数字(0-9)组成。 标识符名称是对大小写敏感的。例如,myname和myName不是一个标识符。注意前者中的小写n和后者中的大写N。 有效标识符名称的例子有i、__my_name、name_23和a1b2_c3。 无效标识符名称的例子有2things、this is spaced out和my-name。 2.3.8.变量赋值语法 变量赋值语法如下: >>> i = 123 从中可以看出,python是没有变量类型这个概念的,如下方式也是合法的: >>> i = 123 >>> i = 'hello world' 2.3.9.数学运算符 数学运算基本上和C一样 2.4.数据类型 python中的基本数据类型有:整数,浮点数,字符串,布尔类型(True 或False),空(None)由于python中变量名是区分 大小写的,所以布尔类型中的True和False也是要区分大小写,当然None也是的!(None并不等于数字0!)
5 c = (a+b) * (a-b) 6 c = (a + b) * (a - b) 7)不要在用于指定关键字参数或默认参数值的'='号周围使用空格,例如: 1 def complex(real, imag=0.0): 2 return magic(r=real, i=imag) 2.2.7. 不要将多条语句写在同一行上. No: if foo == 'blah': do_blah_thing() Yes: if foo == 'blah': do_blah_thing() No: do_one(); do_two(); do_three() Yes: do_one() do_two() do_three() 2.2.8. 注释 1)注释必须跟代码保持一致,当你想修改代码时,建议优先修改注释。 2)注释以'#'和一个空格开始,必须用英语,可以是句子或短语,首字母应大写。 3)如果注释很短,建议省略句末的句号 4)注释块通常由一个或多个由完整句子构成的段落组成,每个句子应该以句号结尾。 5)注释块通常应用于跟随着一些(或者全部)代码并和这些代码有着相同的缩进层次。 6)注释块中每行都是以'#'和一个空格开始(除非他是注释内的缩进文本)。 7)注释块内的段落以仅含单个'#'的行分割。 8)注释块上下方最好有一空行包围(或上方两行下方一行,对一个新函数定义段的注释)。 9)行内注释应该至少用两个空格和语句分开. 它们应该以'#'和单个空格开始. x = x+1 # Increment x 10)约定使用统一的文档化注释格式有助于良好的习惯和团队的进步。 2.2.9.为配合pydoc;epydoc,Doxygen 等等文档化工具的使用,应该一直遵守编写好的文档字符串的约定。 2.2.10.多行文档字符串结尾的""" 应该单独成行,例如: """Return a foobang Optional plotz says to frobnicate the bizbaz first. """ 对单行的文档字符串,结尾的"""在同一行也可以。 2.2.11.版本注解 1 __version__ = "$Revision: 1.0.0.0 $" 这个行应该包含在模块的文档字符串之后,所有代码之前,上下用一个空行分割。 当然也可以这样:
7)函数名函数名应该为小写、动宾短语,可能用下划线风格单词以增加可读性。如:open_file() 2.3.变量和常量 2.3.1.数字常量,如下是python的一些常量表示形式: 2 整数 3.23 浮点数 52.3e-4 科学技术法表示的浮点数 -5 -4.6j 复数 和C类的语法不同的是,Python是内置了复数的。 2.3.2.布尔常量:布尔值的表示方式是True和False 2.3.3.字符串常量:字符串常量有三种表示显示:单引号(')双引号(")三引号('''或""")其中单引号和双引号功能完全相 同,和C的双引号表示字符串方式一样,主要是新增了一个三引号的多行模式,在三引号的模式中,可以使用单引号和双引 号,也可以接收换行符号,对于表示多行来说非常方便。
'''This is a multi-line string. This is the first line. This is the second line. "What's your name?," I asked. He said "Bond, James Bond." ''' 2.3.4.None常量 None是一个特殊的常量。 None和False不同。 None不是0。 None不是空字符串。#想判断字符串是否为空if s.strip()=='':或者if not s.strip(): None和任何其他的数据类型比较永远返回False。 None有自己的数据类型NoneType。
python中的扩展数据类型:列表(list),元组(tuple),字典(dict),集合(set)