Python第一步

1.Python是一种解释性语言,没有了编译环节。

  • py和pyc  所以是有没有编译?

2.像Perl一样遵循GPL(GNU General Public License)协议。

3.脚本化:可以嵌入到C/C++程序。

4.可扩展:需要一段运行很快的代码,或者不愿公开的代码,可以使用C或C++完成那部分程序,再用Python调用。

注:关于Python的更细节的东西,在不断理解的基础上深化。


【规范】

Python 标识符

  • 单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入;
  • 双下划线开头的 __foo 代表类的私有成员;
  • 以双下划线开头和结尾的 __foo__ 代表 Python 里特殊方法专用的标识,如 __init__() 代表类的构造函数。

Python空行

  • 函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。
  • 空行并不是Python语法的一部分。

【变量类型】

  • Python 中的变量赋值不需要类型声明
  • 每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。
  • 每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
  • Python允许你同时为多个变量赋值(a=b=c=1;a,b,c=1,2,'s')

标准数据类型

  • Numbers(数字)
  • String(字符串)
  • List(列表)
  • Tuple(元组)
  • Dictionary(字典)

Python数字

  • 不可改变的数据类型,这意味着改变数字数据类型会分配一个新的对象。
  • int
  • long(也可8进制和16进制)(末尾加L或者l),- 无限大小的整数
  • float
  • complex(用 a + bj,或者 complex(a,b) 表示, 复数的实部 a 和虚部 b 都是浮点型。)

Python字符串

  • 字符串或串(String)是由数字、字母、下划线组成的一串字符。
  • 2种取值顺序:(从左到右索引默认0开始的,最大范围是字符串长度少1;从右到左索引默认-1开始的,最大范围是字符串开头)
  • 获取一段子字符串: [头下标:尾下标]
  • 加号(+)是字符串连接运算符,星号(*)是重复操作。(r/R)原始字符串
  • Python不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。
  • Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。

Python列表

  • [,,,,]
  • 列表中值的切割也可以用到变量 [头下标:尾下标]
  • 字符串相当于一个字符列表
  • 列表的数据项不需要具有相同的类型
    • 可以使用 del 语句来删除列表的元素( del list1[2] )
    • 使用append()方法来添加列表项(list.append('ss'));
    • list.pop([index=-1])
      移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
    • list.remove(obj)
      移除列表中某个值的第一个匹配项
  • 列表对 + 和 * 的操作符与字符串相似。
  • a[:] 是创建 a 的一个副本,这样我们在代码中对 a[:] 进行操作后,就不会改变 a 的值了。而若直接对 a 进行操作,那么 a 的值会收到一些操作的影响

Python元组

  • 元组用"()"标识。内部元素用逗号隔开。
  • 元组不能二次赋值,相当于只读列表。
  • tuple(seq)  将列表转换为元组。
  • 元组的一级元素不可被修改增加删除但可以修改二级后的。
如修改元祖中列表,字典等内容:
  • 元组中只包含一个元素时,需要在元素后面添加逗号:
tup1 = (50,)
Python 字典
  • 列表是有序的对象集合,字典是无序的对象集合。
  • 字典是可变容器模型,且可存储任意类型对象
  • 字典当中的元素是通过键来存取的,而不是通过偏移存取。
  • 用"{ }"标识。字典由索引(key)和它对应的值value组成。
d = {key1 : value1, key2 : value2 }
  • 键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一。
  • 值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
  • 删除相关

del dict['Name']; # 删除键是'Name'的条目

dict.clear();     # 清空词典所有条目

del dict ;        # 删除词典


Python数据类型转换

  • 数据类型的转换,你只需要将数据类型作为函数名即可。

【Python运算符】

  • Python 中没有 ++ 或 -- 自运算符

Python算术运算符

  • **  幂
  • // 取整除,返回商的整数部分(  9//2 输出结果 4 , 9.0//2.0 输出结果 4.0  )
  • 注意:Python2.x 里,整数除整数,只能得出整数。如果要得到小数部分,把其中一个数改成浮点数即可。

Python逻辑运算符(非0即为真)

  • x and y:布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。
  • x or y: 布尔"或" - 如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值。
  • not x:  布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。

Python成员运算符

  • in:如果在指定的序列中找到值返回 True,否则返回 False。
  • not in 如果在指定的序列中没有找到值返回 True,否则返回 False。

Python身份运算符

  • is :是判断两个标识符是不是引用自一个对象【x is y, 类似 id(x) == id(y)】(注: id() 函数用于获取对象内存地址。)
  • is not :是判断两个标识符是不是引用自不同对象
  • :is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等。
  • 【注】为了提高内存利用效率对于一些简单的对象,如一些数值较小的int对象,python采取重用对象内存的办法

【Python 基本分支结构】

Python 条件语句
  • Python程序语言指定任何非0和非空(null)值为true,0 或者 null为false。
  •  python 并不支持 switch 语句,所以多个条件判断,只能用 elif 来实现。

循环使用 else 语句

  • 在 python 中,while … else 在循环条件为 false 时执行 else 语句块(不是通过break跳出而中断的)
  • 类似 if 语句的语法,如果你的 while 循环体中只有一条语句,你可以将该语句与while写在同一行中
  • ——(while (flag): print 'Given flag is really true!')
  • for … else 表示这样的意思,for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while … else 也是一样。

【函数】

  • 在 python 中,类型属于对象,变量是没有类型的:

a=[1,2,3]

a="Runoob"

以上代码中,[1,2,3] 是 List 类型,"Runoob" 是 String 类型,而变量 a 是没有类型,她仅仅是一个对象的引用(一个指针),可以是 List 类型对象,也可以指向 String 类型对象。

  • 参数传递:传不可变对象和传可变对象。

传不可变对象:如 整数、字符串、元组。如fun(a),传递的只是a的值,没有影响a对象本身。比如在 fun(a)内部修改 a 的值,只是修改另一个复制的对象,不会影响 a 本身。

传可变对象:如 列表,字典。如 fun(la),则是将 la 真正的传过去,修改后fun外部的la也会受影响

  • 参数

必备参数:须以正确的顺序传入函数。调用时的数量必须和声明时的一样。

printme("再次调用同一函数");

关键字参数:允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。

printinfo( age=50, name="miki" );

默认参数:缺省参数的值如果没有传入,则被认为是默认值

def printinfo( name, age = 35 ):
   "打印任何传入的字符串"
   print "Name: ", name;
   print "Age ", age;
   return;

不定长参数:可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数。加了星号(*)的变量名会存放所有未命名的变量参数。

def printinfo( arg1, *vartuple ):
   "打印任何传入的参数"
   print "输出: "
   print arg1
   for var in vartuple:
      print var
   return;

Python 文件I/O

  • 键盘输入

raw_input([prompt]) 函数从标准输入读取一个行,并返回一个字符串(去掉结尾的换行符):

 input 可以接收一个Python表达式作为输入,并将运算结果返回。

str = input("请输入:")
print "你输入的内容是: ", str
请输入:[x*5 for x in range(2,10,2)]
你输入的内容是:  [10, 20, 30, 40]
  • 打开和关闭文件

必须先用Python内置的open()函数打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写。

File 对象的 close()方法刷新缓冲区里任何还没写入的信息,并关闭该文件,这之后便不能再进行写入。

write()方法可将任何字符串写入一个打开的文件。需要重点注意的是,Python字符串可以是二进制数据,而不是仅仅是文字。

tell()方法告诉你文件内的当前位置

seek(offset [,from])方法改变当前文件的位置。

Python 异常处理

  • 两个非常重要的功能来处理python程序在运行中出现的异常和错误。

异常处理;

断言(Assertions);

  • 异常处理

try的工作原理是,当开始一个try语句后,python就在当前程序的上下文中作标记,这样当异常出现时就可以回到这里,try子句先执行,接下来会发生什么依赖于执行时是否出现异常。

try:
    fh = open("testfile", "w")
    fh.write("这是一个测试文件,用于测试异常!!")
except IOError:
    print "Error: 没有找到文件或读取文件失败"
else:
    print "内容写入文件成功"
    fh.close()
  • 触发异常

可以使用raise语句自己触发异常

# 定义函数
def mye( level ):
    if level < 1:
        raise Exception,"Invalid level!"
        # 触发异常后,后面的代码就不会再执行
try:
    mye(0)            # 触发异常
except Exception,err:
    print 1,err
else:
    print 2
  • 用户自定义异常

通过创建一个新的异常类,程序可以命名它们自己的异常。

猜你喜欢

转载自blog.csdn.net/m0_38019841/article/details/80627969