zoukankan      html  css  js  c++  java
  • Python学习笔记

    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 Line 2 Line 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 跳过后续的循环,继续下一次的循环
  • 相关阅读:
    算法训练 P1103
    算法训练 表达式计算
    算法训练 表达式计算
    基础练习 时间转换
    基础练习 字符串对比
    Codeforces 527D Clique Problem
    Codeforces 527C Glass Carving
    Codeforces 527B Error Correct System
    Codeforces 527A Glass Carving
    Topcoder SRM 655 DIV1 250 CountryGroupHard
  • 原文地址:https://www.cnblogs.com/sccd/p/10099704.html
Copyright © 2011-2022 走看看