`
zn108zn
  • 浏览: 14705 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

简明python教程(上)

 
阅读更多

简明python教程(上)
2010年06月11日
  1、基本概念
  (1)字面意义上的常量
  (2)在Python中有4种类型的数――整数、长整数、浮点数和复数。
  (3)字符串
  使用单引号(')
  你可以用单引号指示字符串。
  使用双引号(")
  在双引号中的字符串与单引号中的字符串的使用完全相同。
  使用三引号('''或""")
  利用三引号,你可以指示一个多行的字符串。你可以在三引号中自由的使用单引号和双引号。
  自然字符串
  如果你想要指示某些不需要如转义符那样的特别处理的字符串,那么你需要指定一个自然字符串。自然字符串通过给字符串加上前缀r或R来指定。R’test \n’
  Unicode字符串
  Unicode是书写国际文本的标准方法。如果你想要用你的母语如北印度语或阿拉伯语写文本,那么你需要有一个支持Unicode的编辑器。类似地,Python允许你处理Unicode文本――你只需要在字符串前加上前缀u或U
  字符串是不可变的
  这意味着一旦你创造了一个字符串,你就不能再改变它了。虽然这看起来像是一件坏事,但实际上它不是。
  按字面意义级连字符串
  如果你把两个字符串按字面意义相邻放着,他们会被Python自动级连。
  例如,'What\'s'   'your    name?'会被自动转为"What's your name?"。
  给C/C++程序员的注释
  在Python中没有专门的char数据类型。确实没有需要有这个类型,我相信你不会为此而烦恼。
  给Perl/PHP程序员的注释
  记住,单引号和双引号字符串是完全相同的――它们没有在任何方面有不同。
  给正则表达式用户的注释
  一定要用自然字符串处理正则表达式。否则会需要使用很多的反斜杠。例如,后向引用符可以写成'\\1'或r'\1'。
  (4)变量
  变量的值可以变化,即你可以使用变量存储任何东西。变量只是你的计算机中存储信息的一部分内存。
  (5)标识符
  标识符 是用来标识 某样东西 的名字。在命名标识符的时候,你要遵循这些规则:
  标识符的第一个字符必须是字母表中的字母(大写或小写)或者一个下划线(‘ _ ’)。
  标识符名称的其他部分可以由字母(大写或小写)、下划线(‘ _ ’)或数字(0-9)组成。
  标识符名称是对大小写敏感的。
  (6)对象
  Python把在程序中用到的任何东西都称为对象。就每一个东西包括数、字符串甚至函数都是对象这一点来说,Python是极其完全地面向对象的。
  (7)逻辑行与物理行
  默认地,Python希望每行都只使用一个语句,这样使得代码更加易读。
  如果你想要在一个物理行中使用多于一个逻辑行,那么你需要使用分号(;)来特别地标明这种用法。分号表示一个逻辑行/语句的结束。
  强烈建议你坚持在每个物理行只写一句逻辑行
  (8)缩进
  空白在Python中是重要的。事实上行首的空白是重要的。它称为缩进。在逻辑行首的空白(空格和制表符)用来决定逻辑行的缩进层次,从而用来决定语句的分组。
  这意味着同一层次的语句必须有相同的缩进。每一组这样的语句称为一个块。
  你需要记住的一样东西是错误的缩进会引发错误。
  如何缩进
  不要混合使用制表符和空格来缩进,因为这在跨越不同的平台的时候,无法正常工作。强烈建议在每个缩进层次使用 单个制表符 或 两个或四个空格 。
  选择这三种缩进风格之一。更加重要的是,选择一种风格,然后一贯地使用它,即 只 使用这一种风格。
  2、运算符与表达式
  3、控制流
  (1)if
  if语句在结尾处包含一个冒号,elif和else从句都必须在逻辑行结尾处有一个冒号。
  在Python中没有switch语句。
  (2)while
  只要在一个条件为真的情况下,while语句允许你重复执行一块语句。
  while语句有一个可选的else从句。当while循环条件变为False的时候,else块才被执行
  (3)for…in
  range 向上 延伸到第二个数,即它不包含第二个数
  (4)break
  如果你从for或while循环中 终止 ,任何对应的循环else块将不执行。
  输入字符串的长度通过内建的len函数取得。
  (5)continue
  continue语句被用来告诉Python跳过当前循环块中的剩余语句,然后 继续 进行下一轮循环。
  4、函数
  函数通过def关键字定义。def关键字后跟一个函数的 标识符 名称,然后跟一对圆括号。圆括号之中可以包括一些变量名,该行以冒号结尾。接下来是一块语句,它们是函数体。
  (1)形参
  (2)局部变量
  如果你想要为一个定义在函数外的变量赋值,那么你就得告诉Python这个变量名不是局部的,而是全局的。
  global语句被用来声明x是全局的――因此,当我们在函数内把值赋给x的时候,这个变化也反映在我们在主块中使用x的值的时候。你可以使用同一个global语句指定多个全局变量。例如global x, y, z。
  (3)默认参数值
  对于一些函数,你可能希望它的一些参数是 可选 的,如果用户不想要为这些参数提供值的话,这些参数就使用默认值。这个功能借助于默认参数值完成。你可以在函数定义的形参名后加上赋值运算符(=)和默认值,从而给形参指定默认参数值。
  注意,默认参数值应该是一个参数。更加准确的说,默认参数值应该是不可变的。
  只有在形参表末尾的那些参数可以有默认参数值,即你不能在声明函数形参的时候,先声明有默认值的形参而后声明没有默认值的形参。
  (4)关键参数
  如果你的某个函数有许多参数,而你只想指定其中的一部分,那么你可以通过命名来为这些参数赋值――这被称作 关键参数 ――我们使用名字(关键字)而不是位置来给函数指定实参。
  (5)return语句
  没有返回值的return语句等价于return None。None是Python中表示没有任何东西的特殊类型。
  pass语句在Python中表示一个空的语句块。
  (7)DocStrings
  Python有一个很奇妙的特性,称为 文档字符串 ,它通常被简称为 docstrings 。DocStrings是一个重要的工具,由于它帮助你的程序文档更加简单易懂,你应该尽量使用它。你甚至可以在程序运行的时候,从函数恢复文档字符串!
  文档字符串的惯例是一个多行字符串,它的首行以大写字母开始,句号结尾。第二行是空行,从第三行开始是详细的描述。
  使用__doc__(注意双下划线)调用函数的文档字符串属性
  5、模块
  模块基本上就是一个包含了所有你定义的函数和变量的文件。为了在其他程序中重用模块,模块的文件名必须以.py为扩展名。
  用import语句 输入 sys模块。
  sys模块中的argv变量通过使用点号指明sys.argv
  sys.argv包含了 命令行参数 的列表,即使用命令行传递给你的程序的参数。
  sys.path的第一个字符串是空的――这个空的字符串表示当前目录也是sys.path的一部分,这与PYTHONPATH环境变量是相同的。这意味着你可以直接输入位于当前目录的模块。否则,你得把你的模块放在sys.path所列的目录之一。
  (1)字节编译的.pyc文件
  输入(import)一个模块相对来说是一个比较费时的事情,所以Python做了一些技巧,以便使输入模块更加快一些。一种方法是创建 字节编译的文件 ,这些文件以.pyc作为扩展名。字节编译的文件与Python变换程序的中间状态有关。当你在下次从别的程序输入这个模块的时候,.pyc文件是十分有用的――它会快得多,因为一部分输入模块所需的处理已经完成了。另外,这些字节编译的文件也是与平台无关的。
  (2)from..import语句
  如果你想要直接输入argv变量到你的程序中(避免在每次使用它时打sys.),那么你可以使用from sys import argv语句。如果你想要输入所有sys模块使用的名字,那么你可以使用from sys import *语句。这对于所有模块都适用。一般说来,应该避免使用from..import而使用import语句,因为这样可以使你的程序更加易读,也可以避免名称的冲突。
  (3)模块的__name__
  每个模块都有一个名称,在模块中可以通过语句来找出模块的名称。这在一个场合特别有用――就如前面所提到的,当一个模块被第一次输入的时候,这个模块的主块将被运行。假如我们只想在程序本身被使用的时候运行主块,而在它被别的模块输入的时候不运行主块,我们该怎么做呢?这可以通过模块的__name__属性完成。
  (4)制造你自己的模块
  创建你自己的模块是十分简单的,你一直在这样做!每个Python程序也是一个模块。你已经确保它具有.py扩展名了
  (5)dir()函数
  你可以使用内建的dir函数来列出模块定义的标识符。标识符有函数、类和变量。
  当你为dir()提供一个模块名的时候,它返回模块定义的名称列表。如果不提供参数,它返回当前模块中定义的名称列表。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics