码迷,mamicode.com
首页 > 其他好文 > 详细

py基础语法

时间:2017-10-14 21:15:15      阅读:254      评论:0      收藏:0      [点我收藏+]

标签:pytho   表达式   ict   lex   表连接   size   with open   内容   oop   

 

py基础语法概览,方便自己查看,来源于菜鸟教程,详细教程请参考 http://www.runoob.com/python3/python3-tutorial.html

 

基础语法

 

注释


单行注释:注释以 # 开头

多行注释: ‘‘‘开头‘‘‘结尾,或者使用"""

 

行与缩进


缩进来表示代码块

同一个代码块的语句必须包含相同的缩进空格数

实例如下:

  if true:

    print ("True")

  else:

    print ("False")

 

多行语句


 使用反斜杠(\)来实现多行语句,例如:

  total = item_one + \

  item_two + \ 

  也可以使用 """...""" 或者 ‘‘‘...‘‘‘ 跨越多行。

 

import 与 from...import


将整个模块(somemodule)导入,格式为: import somemodule
从某个模块中导入某个函数,       格式为: from somemodule import somefunction
从某个模块中导入多个函数,       格式为: from somemodule import firstfunc, secondfunc, thirdfunc
将某个模块中的全部函数导入, 格式为: from somemodule import *

 

 

数据类型

 

标准数据类型


Number : int、float、bool、complex(复数)

String

List

Tuple

Sets

Dictionary

 

字符串


字符串是不可变的。

python中单引号和双引号使用完全相同。

使用三引号(‘‘‘或""")可以指定一个多行字符串。

转义符 ‘\‘

自然字符串, 通过在字符串前加r或R。 如 r"this is a line with \n" 则\n会显示,并不是换行。

python允许处理unicode字符串,加前缀u或U, 如 u"this is an unicode string"。

按字面意义级联字符串,如"this " "is " "string"会被自动转换为this is string。

索引值以 0 为开始值,-1 为从末尾的开始位置。加号 (+) 是字符串的连接符, 星号 (*) 表示复制当前字符串,紧跟的数字为复制的次数

 

操作符


* 乘法 

/ 除法,得到一个浮点数

// 除法,得到一个整数

...

in not in 成员运算符

is is not 身份运算符

not or and 逻辑运算符

 

List[] 


列表是写在方括号([])之间、用逗号分隔开的元素列表。

索引值以 0 为开始值,-1 为从末尾的开始位置。

加号(+)是列表连接运算符,星号(*)是重复操作。

列表中的元素是可以改变的

 

Tuple()


元组的元素不能修改。元组写在小括号()里,元素之间用逗号隔开。

索引值以 0 为开始值,-1 为从末尾的开始位置。

加号(+)是列表连接运算符

 

Set{}


集合(set)是一个无序不重复元素的序列。

可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

 

Dictionary{}


是一种映射类型,字典用"{ }"标识,它是一个无序的键(key) : 值(value)对集合。

键(key)必须使用不可变类型。

在同一个字典中,键(key)必须是唯一的。

 

 

控制语句

 

if


  if condition_1:
      statement_block_1
  elif condition_2:
      statement_block_2
  else:
      statement_block_3

 

while


  while 判断条件:
      <statements>
  else
      <statements>

 

for


    for <variable> in <sequence>:
        <statements>
    else:
        <statements>

 

break、continue


break 语句可以跳出 for 和 while 的循环体。如果你从 for 或 while 循环中终止,任何对应的循环 else 块将不执行。

 

迭代器


    it = iter(list)    # iter()创建迭代器对象
    print (next(it))   # next()输出迭代器的下一个元素

 

生成器


使用了 yield 的函数被称为生成器
生成器是一个返回迭代器的函数,只能用于迭代操作。

 

 

函数

 

定义函数


以 def 关键词开头,后接函数标识符名称和圆括号 ()。

任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数

函数内容以冒号起始,并且缩进

return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None

参数传递的不可变类型是按值传递(不会改变传递变量本身),可变参数传递是按引用传递(会改变参数本身)

def 函数名(参数列表):
函数体

 

匿名函数


使用 lambda 来创建匿名函数。

lambda 只是一个表达式,函数体比 def 简单很多。

lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。

lambda 函数拥有自己的命名空间,且不能访问自己参数列表之外或全局命名空间里的参数。

虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。

lambda [arg1 [,arg2,.....argn]]:expression 

 

变量作用域


L (Local) 局部作用域

E (Enclosing) 闭包函数外的函数中

G (Global) 全局作用域

B (Built-in) 内建作用域

模块(module),类(class)以及函数(def、lambda)才会引入新的作用域,其它的代码块( if/elif/else/、try/except、for/while等)是不会引入新的作用域的,也就是说这这些语句内定义的变量,外部也可以访问

global 和 nonlocal关键字: global定义的变量为全局的, nonlocal定义的变量为enclosing 作用域

 

 

IO&File

 

读取键盘输入


str = input("请输入:");

 

读和写文件


open(filename, mode)  将会返回一个 file 对象,

          filename 变量是一个包含了你要访问的文件名称的字符串值

          mode决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读(r)。

eg:

f = open("/tmp/foo.txt", "w") #打开一个文件
f.write( "Python 是一个非常好的语言。\n是的,的确非常好!!\n" )
f.close() #关闭打开的文件

 

pickle模块


实现了基本的数据序列和反序列化 

pickle.dump(obj, file, [,protocol])

 

 

异常

 

try except finally


    try:
        x = int(input("Please enter a number: "))
        break
    except ValueError:
        print("Oops!  That was no valid number.  Try again   ")
    finallyprint("")

 

raise 


抛出异常 

 

with


预定义的清理行为,

eg: 

with open("myfile.txt") as f:
    for line in f:
        print(line, end="")

 

自定义异常


异常应该继承自 Exception 类,或者直接继承,或者间接继承,例如: 

class MyError(Exception):
        def __init__(self, value):
            self.value = value
        def __str__(self):
            return repr(self.value)

 

 

面向对象

 

puthon的面向对象


 类的继承机制允许多个基类,派生类可以覆盖基类中的任何方法,方法中可以调用基类中的同名方法。

 

实例化


    x = MyClass()

 

引用实例中的成员


    x.age

 

构造函数


     def __init__(self):  #self代表该类的实例对象
        statement

 

私有成员


类的私有属性

  _private_attrs:两个下划线开头,声明该属性为私有,不能在类地外部被使用或直接访问。在类内部的方法中使用时 self.__private_attrs。

类的私有方法

  _private_method:两个下划线开头,声明该方法为私有方法,只能在类的内部调用 ,不能在类地外部调用。self.__private_methods。

 

继承


    class DerivedClassName(modname.BaseClassName): #modname表示模块名

 

py基础语法

标签:pytho   表达式   ict   lex   表连接   size   with open   内容   oop   

原文地址:http://www.cnblogs.com/dahuandan/p/7668404.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!