Python学习笔记 - 基础知识总结01

1. Python 适合什么

   a. Web网站和各种网络服务

   b. 系统工具和脚本

   c. 作为胶水语言把其他语言开发的模块包装起来以方便使用

   Python 不适合什么

   a. 不适合贴近硬件的代码

   b. 不适合移动开发

   c. 游戏开发

   Python缺点:源码无法加密

2. Python 数据类型

    a. Python 数据类型包括整形浮点型字符串(可以用''或""括起来),布尔值空值None

        Ps.对于字符串,一般可以用单引号''括起来,但如果字符串中含有(‘)等特殊组合字符时,可以使用双引号""及转义字符(\)进行处理;

    b. Raw字符串(如果一个字符串很多需要转义的字符,对每一个字符都进行转义会很麻烦,就可以用raw字符串,即在字符串的前面加上一个r,这样里面的字符就不需要转义了):

        例:print r'\(~_~)/ \(~_~)/'

    c. 多行字符串,可以用'''...'''表示:

        例:'''Line 1

                 Line 2

                 Line 3'''

              上面这个字符串的表示方法和下面的是完全一样的:

              'Line 1\nLine 2\nLine 3'

    d. 字符串编码

        因为Python的诞生比Unicode标准发布的时间还要早,所以最早的Python只支持ASCII编码,普通的字符串'ABC'在Python内部都是ASCII编码的。Python在后来添加了对Unicode的支持,以Unicode表示的字符串用u'...'表示,比如:print u'中文'

         Ps.如果中文字符串在Python环境下遇到 UnicodeDecodeError,这是因为.py文件保存的格式有问题。可以在第一行添加注释 # -*- coding: utf-8 -*- .目的是告诉Python解释器,用UTF-8编码读取源代码。然后用Notepad++ 另存为... 并选择UTF-8格式保存。

    e. 多行unicode

        u'''Line 1

            Line 2'''

     f. ur结合使用

        ur'''Python的Unicode字符串支持"中文",

       "日文",

       "韩文"等多种语言'''

3. Python解释器的提示符,并非代码的一部分:

    >>>

4. print语句

    a. print语句跟上多个字符串,用逗号“,”隔开,就可以连成一串输出,如: print 'Hello','World!'

        Ps.print语句遇到逗号“,”会输出一个空格,

    b. 打印计算结果:print 75 +25

5. 注释  # 

6. 变量

    a. 变量由字母(大小写英文),数字及下划线的组合,且不能以数字开头;

    b. Python是一种动态语言;

         动态语言:变量本身类型不固定资产的语言,反之则为静态语言;

    c. 变量在内存中的表示:

        如:a='ABC',Python先在内存中创建了一个‘ABC’的字符串,然后在内存中新建了一个名为a的变量,然后将其指向'ABC';

   d. 变量使用举例:

  a = 'ABC'
  b = a
  a = 'XYZ'
  print b

      最后一行打印出变量b的内容到底是'ABC'呢还是'XYZ'?如果从数学意义上理解,就会错误地得出b和a相同,也应该是'XYZ',但实际上b的值是'ABC',让我们一行一行地执行代码,就可以看到到底发生了什么事:

      执行a = 'ABC',解释器创建了字符串  'ABC'和变量 a,并把a指向 'ABC':

      

     执行b = a,解释器创建了变量 b,并把b指向 a 指向的字符串'ABC':

     

    执行a = 'XYZ',解释器创建了字符串'XYZ',并把a的指向改为'XYZ',但b并没有更改:

     

    所以,最后打印变量b的结果自然是'ABC'了。

7. Python中的整型和浮点数

    Python的整数运算结果仍然是整数,浮点数运算结果仍然是浮点数。但是整数和浮点数混合运算的结果就变成浮点数了:

8. Python中的布尔类型:

    a. 在Python中,布尔类型还可以与其他数据类型做 and、or和not运算,请看下面的代码:

   a = True
   print a and 'a=T' or 'a=F'

        计算结果不是布尔类型,而是字符串 'a=T',这是为什么呢?因为Python把0空字符串''None看成 False,  其他数值和非空字符串都看成 True,所以:

   True and 'a=T' 计算结果是 'a=T'
   继续计算 'a=T' or 'a=F' 计算结果还是 'a=T'
要解释上述结果,又涉及到 and 和 or 运算的一条重要法则:短路计算。

   b. 短路计算。

       b-1. 在计算 a and b 时,如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此返回 a;如果 a 是 True,则整个计算结果必定取决与 b,因此返回 b。

       b-2. 在计算 a or b 时,如果 a 是 True,则根据或运算法则,整个计算结果必定为 True,因此返回 a;如果 a 是 False,则整个计算结果必定取决于 b,因此返回 b。

 9. List用法

     L=[‘Joye’,20,true]  #List为一种有序列表

     Ps.由于Python为动态语言,所以list中的元素并不一定都是同一种数据类型;

     a. 正序访问元素

     print L[2]

     b. 倒序访问元素

     print L[-1]   # -1代表最后一个元素

     c. 添加新元素

         append() : 把新元素添加到List末尾

         extend([list]):添加一个列表到列表末尾

         insert(pos,ele):添加一个元素到列表指定位置之前

     d. 删除元素

         L.pop(2)  #删除第二个元素

      e. 替换元素

          L[-1]='Paul'

10. tuple(元组)用法:

      tuple是除List外的另外一种有序列表;

      a. 与List不同处:tuple用()替代了[],tuple中的值一旦确定将会无法改变,因为它不可以新增/删除/更新元素,但对于值的获取都是一样的,如 L[0],L[-1]等;

      b. tuple的单元素形式为(0),而()又可以被识别为运算时的优化级,所以(0)形式在此时是有歧义的,所以在使用单元素时我们要多加一个逗号在单元素的后面,如(0,);

      c. tuple之可变

    t = ('a', 'b', ['A', 'B'])
L = t[2]
L[0] = 'X'
L[1] = 'Y'
Ps.这种元素的可变指的是list元素['A', 'B']发生的改变,而所谓的tuple元素不变指的是它的引用不会发生变化.此时可以将t修改为t = ('a', 'b', ('A', 'B'))以确保t的值不会发生改变;

11. Python代码缩进规则:
a. 具有相同缩进的代码被视为代码块;
b. Python缩进写法:4个空格,不能使用Tab,更不要混合Tab和空格,以防由此而引发的语法错误;
c. 在Python交互环境下开发代码,退出缩进时需要多敲一行回车

12. if语句后接表达式,然后用:表示代码块开始,elif则表示else if;

   if Condition A:
       print 'A'
   elif Condition B:
       print 'B'
   elif Condition C:
       print 'C'
   else:
       print 'baby'

13. for语句
    L = ['Adam', 'Lisa', 'Bart']
    for name in L:
        print name

14. while循环
N = 10
    x = 0
    while x < N:
        print x
        x = x + 1
break 退出循环 continue 跳过后续的循环,继续下一次的循环

猜你喜欢

转载自www.cnblogs.com/sccd/p/10099704.html