zoukankan      html  css  js  c++  java
  • Python起航

    安装Python

    安装python

    添加python安装目录到PATH

    添加Scripts目录到PATH

    如果同时安装了python2和python3,那么通过python和python3,pip和pip3来加以区别(当然也可以给exe文件重命名)

    PIP常用命令

    pip install 安装包

    pip install search 查找包

    pip list 列出已安装的包

    pip show django 查看已安装包的具体信息

    pip uninstall 卸载包

    安装包

    1、通过pip

    2、tar.gz安装

    python3 setup.py install

    3、.whl文件安装

    pip install xxx.whl

    导入包

    import 包名

    import一个模块或者库的时候,python首先查找当前目录下是否存在同名的py文件,如果存在则会优先引用当前目录下的同名文件

    举例:当前目录下存在一个unittest.py,当在这个目录下引入包的时候,引入的就是这个py而不是单元测试的那个模块。所以文件命名时注意下。

    快速排错

    在python执行的错误栈中找到自己写的程序

    看最后一行的错误提示

    变量

    1、不能使用关键字作为变量的名字,判断是不是关键字的方法

    import keyword 
    keyword.iskeyword("is")
    

      

    2、 识别变量 type, id, dir, help

       type(a) //返回变量的类型,python是一种弱类型语言,在声明变量的时候不需要指明类型

       id(a) //变量的内存地址, python中的变量都是对象,可以根据id函数的返回值判断两个对象是不是同一个对象

       dir(a) //列举出变量a这个对象有哪些成员方法可以调用.

       help(a.方法名) //列举出a这个变量对应的这些方法的使用方式

      

    例如: s = "abcdbd";
    help(s.count)用来查看s对象的count方法的使用帮助.
      s.count(sub[,start[,end]])-->int  //在api文档中[]中的内容代表的是可选的内容.
      sub[,start[,end]]是方法的参数(输入),int是方法的输出.sub在此处的意思是子串
    s.count('b')结果是2,即'b'这个子串在s中出现了2次
    根据这个方法的帮助说明,还可以看出,子串可以指定从哪个位置开始查找,在这个位置之前的都不会计入count,start代表的是索引,从0开始.
    

      

    3、 删除变量

      del 变量名

    4、 基本变量类型

      bool  True,  False  (开头要大写)

      int   12, 2000,-0X10

      long  100L (以L结尾)

      float  100.1, 2.1E-3, 23.0E2

      complex  100+10j, -2-3j(复数,作为了解)

      str    '2332'(单引号),"absf"(双引号), """abcde"""(三个双引号), '''acde'''(三个单引号)  

     

    三引号的可以跨行写值。如:
    
     s = """sbc      
        cde
       """
    此时直接通过s,可以看到s的值是“sbc cde ”, 代表的是换行,这种声明方式其实等同于 s=“sbc cde ”

            
       当字符串中间有引号的时候需要使用转以()来表示

       s ="abc"def"

       单引号中间可以嵌套双引号s='abc"BOM"haha', 双引号中间也可以嵌套单引号 s = "abc'QQ'nim"

       但是不可以双引号中间有双引号,如s="aaa"niha"o"这样是语法错误的.此时必须使用转义。

    5、数据类型转换

       int函数能够把符合数学格式的数字型字符串转换成整数,也可以把浮点数转换成整数,但是只是简单的取整,而非四舍五入。 

    aa = int("124") #Correct
    print "aa = ", aa #result=124
    bb = int(123.45) #correct
    print "bb = ", bb #result=123
    cc = int("-123.45") #Error,Can't Convert to int
    print "cc = ",cc
    dd = int("34a") #Error,Can't Convert to int
    print "dd = ",dd
    ee = int("12.3") #Error,Can't Convert to int
    print ee

      float函数将整数和字符串转换成浮点数。

      str函数将数字转换成字符

    6、进制转换

    hex # 10进制转16进制
    oct # 10进制8进制
    chr # 将一个ascii码转为一个字符
    ord # 将一个字符转为一个ascii码
    int(s,base=xx) # 将s转为十进制整数,默认是int(s,base=10),即将s看做10进制数,然后进行转换
    int(s,base=2) # 将基数s视为2进制数,转为10进制数
    

    7、输入输出函数

      7.1 输出函数 print

        print >> sys.stderr, "Fatal error: invalid input !"

        logfile=open('mylog.txt', 'w') //file对象的模式包括 'r'(只读) 'w'(清空后写) 'a'(追加), 注意如果mylog.txt不存在的话会自动创建该文件

        print >>logfile, "Fatal error: invalid input !"

        print "float:%.4f, %s is number %d!"%(12.1234567,"python",1) //%.4f表示保留4位小数

      7.2 输入函数raw_input和input

        a=raw_input(),_在交互模式下表示上一个输入

        raw_input和input的区别:raw_input原样输入,函数返回类型是str; input会根据输入判断返回类型,如"123"则返回类型是str,输入123则返回类型是int.

    8、字符串基本操作

    9、dict基础操作

    key不变,value可变 a={key:value}
    c = {'uid': 105,'login': 'beauty','name': 'James'}
    u = c['uid'] # 取元素 c['uid'] = "test" # 赋值 c.get('perf', 'Unknown') # 取key为perf的值,取不到的话,就取Unknown作为值 c.keys() # 得到c的所有key的一个list c.values() # 得到c的所有values的一个list c.items() # 得到c的所有(key, values)的一个list, [('login', 'beauty'), ('uid', 106), ('name', 'James')] d = c.copy() # 定义一个d,将c所有的元素复制一份给d,此时del(c['login'])只会删除c里面的login键值对,对d里面的没有影响 c[2] = 3 # 给c添加一个键值对 c.update(d) # 参照d更新c的内容,如果d里面包含c中没有的元素,就将改元素,也添加一个给c

    10、小括号是tuple(元组),中括号是list,大括号是dict

    11、list,dict遍历

    list遍历:
    
    d=["name","pyton","english",33,"match",35]
    for i in d:
        print i
    for id,i in enumerate(d):
        printid,i
        
    dict遍历:
    
    items()
    keys()
    values()
    
    dict1={"name":"python","english":33,"math":35}
    for k,v in dict1.items()
        print(k,v)
    for k in dict1.keys():
        print(dict1[k])

    12、运算符

    算数运算符:
    + 加法
    - 减法
    * 乘法 / 除法,包括小数 % 取余 ** 指数。如2**3=8 // 地板除,仅保留整数部分。例如 7.2/3=2.4 而7.2//3=2.0 逻辑运算符: and or not 位运算符: >> << & | ^ ~(按位取反) bool运算符: True False, 包括 0 False 0.0 0+0j '' () [] {}

    13、注释语句

    单行注释使用 #
    多行注释使用 ''' 或 """

    14、赋值语句

    a=10
    a=b=10
    a=(b=1)
    a=a+10
    a+=1
    a-=1
    += -= *= /= %= **= <<= >>= &= ^= |=
    a,b=1,2
    a,b=b,a交换a和b的值

    15、条件语句

    if exp
      statList
    elif exp2
       statList2
    else
       statList3
    

    16、循环语句

    while exp:
        statList1
    else
        statList2
    
    for var in vars:
        ...
    else
        ...
    
    break
    
    continue
    
    for var in vars:
        ...

    17、函数

    语法
        def functionname(arg1,arg2,*arg3,**arg4)
            """documentation""" #optional doc string
            statements
            return xxx
            #可以返回多个值
    例子
        def gcd(a,b):
            "greatest common divisor"
            while a!=0:
                a,b=b%a,a #parallel assignment
            return b
    
        >>>gcd.__doc__ #两个下划线
        "greatest common divisor"
        >>>gcd(12,20)
        4

    18、作用域-LGB规则

    大多数名字引用在三个作用域中查找:先局部(Local),次之(Global),再次之内置(Builtin)。若仍然找不到这个变量名,则引发NameError异常。
    
    在函数内定义一个全局变量

    global a a="hell" def f(): a="xxx" print type(a),a f()
    print(a)
    //打印出来的是hell a="hell" def f(): global a a="xxx" print type(a),a f() print(a)//打印出来的是xxx

    19、参数分类

    普通参数,即命名参数 arg1
    带默认值参数  arg2=0,默认参数不能在普通参数前面,但可以在元组参数和字典参数的前面
    元组参数  *arg3
    词典参数  **arg4

    def f(a, b, c=0, d=1, *e):
    print(a, b, c, d, e)


    f(1, 2) # 1 2 0 1 ()
    f(1, 2, 3, 8, 9) # 1 2 3 8 (9,)


    def f(a, b, c=0, d=1, *e, **g):
    print(a, b, c, d, e, g)


    h = ('a', 'b')
    f(1, 2, 3, 8, h, a1=2, a2=3) # 1 2 3 8 (('a', 'b'),) {'a1': 2, 'a2': 3}

    f(1, 2, 3, 8, h, 'a1=2,a2=3') # 1 2 3 8 (('a', 'b'), 'a1=2,a2=3') {} 必须是key=value的参数才被认为是词典

    x = {"a5": 1, "a6": 5}
    f(1, 2, 3, 8, h, x) # 1 2 3 8 (('a', 'b'), {'a5': 1, 'a6': 5}) {} 实参h和x会被认为一个元组的两个元素

    20、python为什么没有函数重载?

      因为通过元组和词典传参就已经达到了重载的效果

    21、python函数可以返回多个值吗?

      可以,多个元素形成一个元组对象

    def g(a, b):
        return a, b
    
    
    print(g(1, 2))  # (1,2)
    
    c, d = g(1, 2)
    print(c, d)  # 1 2
    

    22、函数的参数可以是函数吗?

      可以,函数的参数可以是任意一个对象

    23、局部改变变量值,不影响外部作用域的变量

    def func(in_p, out_p):
        print(in_p, out_p)
        out_p = 3  # 有问题,此处的赋值无法改变函数外部的参数的值, 如下
    
    
    a, b = 1, 2
    func(a, b)
    print(a, b)  # 1 2

    24、pip安装包管理

    Python生成requirement : 
        pip freeze > requirements.txt
    使用requirements.txt安装类库: pip install -r requirement.txt

      

    25、用dict模拟switch

    def f1(a):
        print(1, a)
    
    
    def f2(b):
        print(2, b)
    
    
    def default(d):
        print('default', 4)
    
    
    sw = {
        'f1': f1,
        'f2': f2,
        'default': default
    }
    sw['f1'](4)
    sw['f2'](5)
  • 相关阅读:
    ubuntu下编译安装uWebSockets
    centos7安装python3
    linux设置库文件加载包含路径
    centos7安装mysql和mysql-connector-c++
    SVN查看提交日志的命令
    [转]select模型的一种技巧运用-libevent
    一道题回顾计算机数值存储方式-原码,反码,补码
    msyql判断记录是否存在的三种方法
    windows下vs2013使用C++访问redis
    linux下查看端口的连接数
  • 原文地址:https://www.cnblogs.com/byron0918/p/4743932.html
Copyright © 2011-2022 走看看