• python的基本语法记录


    最近在学习爬虫,爬虫最多是用python编写,这里总结记录下本人整理的python基本语法

    一.python简介

    Python是一种跨平台的计算机程序设计语言。 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。

    二.基础语法

    2.1单行注释

     

     2.2多行注释

     

     2.3乱码问题

    当Python解释器读取源代码时,为了让它按UTF-8编码读取,我们通常在文件开头写上这两行:

    # -*- coding:utf-8 -*-

    # coding=utf-8

    2.4数据类型转换

    函数

    说明

    int(x [,base ])

    将x转换为一个整数

    long(x [,base ])

    将x转换为一个长整数

    float(x )

    将x转换到一个浮点数

    complex(real [,imag ])

    创建一个复数

    str(x )

    将对象 x 转换为字符串

    repr(x )

    将对象 x 转换为表达式字符串

    eval(str )

    用来计算在字符串中的有效Python表达式,并返回一个对象

    tuple(s )

    将序列 s 转换为一个元组

    list(s )

    将序列 s 转换为一个列表

    chr(x )

    将一个整数转换为一个字符

    unichr(x )

    将一个整数转换为Unicode字符

    ord(x )

    将一个字符转换为它的整数值

    hex(x )

    将一个整数转换为一个十六进制字符串

    oct(x )

    将一个整数转换为一个八进制字符串

    2.5普通输出

    print('hello world')

    print('100 + 200 =', 100 + 200)

    2.6格式化输出

    print('%d+%d=%d'%(1,2,3))

    %d 整数
    %f 浮点数
    %s 字符串
    %x 十六进制整数

     

    三.判断与循环

    3.1 if

    if 条件:

        pass

    elif 条件:

        pass

    else:

        pass

    3.2 while

    while 条件:

        循环体

    3.3 for

    for i in range(1,10):

        循环体

    四.集合类型

    4.1字符串

    4.1.1 find查找位置

    mystr="abcdefg"

    print(mystr.find("e", 0,len(mystr)))

    结果4

    4.1.2 count查找次数

    mystr="abecdefg"

    print(mystr.count("e", 0,len(mystr)))

    结果2

    4.1.3 replace替换

    mystr="abcdef"

    print(mystr.replace("e", "f"))

    结果abcdff

    4.1.4 split分割

    mystr="a,b,c,d,e"

    print(mystr.split(","))

    结果['a', 'b', 'c', 'd', 'e']

    4.1.5 lower全小写

    mystr="AbCdef"

    print(mystr.lower())

    结果abcdef

    4.1.6 upper全大写

    4.1.7 strip 删除两边的空白字符

    mystr="            AbCdef "

    print(mystr.strip())

    4.1.8 isalpha 全字母吗

    mystr="AbCdef"

    print(mystr.isalpha())

    结果True

    4.1.8 isdigit 全数字吗

    4.1.9 isalnum 全字母或数字吗

    4.2列表 []

    4.2.1添加元素

    a = [1, 2]

    b = [3, 4]

    a.append(b)

    print(a)

    a = [1, 2]

    b = [3, 4]

    a.extend(b)

    print(a)

    a = [0, 1, 2]

    a.insert(1, 3)

    print(a)

    结果

    [1, 2, [3, 4]]

    [1, 2, 3, 4]

    [0, 3, 1, 2]

    4.2.2查询元素

    a = ['a', 'b', 'c', 'a', 'b']

    print(a.count('b'))

    print(a.count('d'))

    结果

    2

    0

    4.2.3排序

    a = [1, 4, 2, 3]

    a.sort()

    print(a)

    a.reverse()

    print(a)

    结果

    [1, 2, 3, 4]

    [4, 3, 2, 1]

    4.3元组 ()

    元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。

    4.4字典 {}

    4.4.1添加字典

    info = {'name':'班长', 'sex':'f', 'address':'地球亚洲中国北京'}

    info["id"]="数据"

    print(info)

    结果:{'name': '班长', 'sex': 'f', 'address': '地球亚洲中国北京', 'id': '数据'}

    4.4.2遍历字典

    info = {'name':'班长', 'sex':'f', 'address':'地球亚洲中国北京'}

    for key,value in info.items():

       print("%s,%s"%(key,value))

    五.函数

    5.1函数格式举例

    def fun(a, b, *args, **kwargs):

        print("a =", a)

        print("b =", b )

        print("args =", args )

        print("kwargs: ")

        for key, value in kwargs.items():

            print( key, "=", value )

    fun(1, 2, 3, 4, 5, m=6, n=7, p=8)结果:

    a = 1

    b = 2

    args = (3, 4, 5)

    kwargs:

    m = 6

    n = 7

    p = 8

    5.2递归函数举例

    # 递归显示  [1, 1, 2, 3, 5, 8, 13, 21, 34, 55]

    aa = 1

    str = []

    def aaa(b):

        if b < 2:

            return 1

        else:

            return aaa(b - 1) + aaa(b - 2)

      

      

    for i in range(0, 10):

        str.append(aaa(i)) 

       

    print(str)

    5.3匿名函数举例

    sum = lambda a,b,c:a+b+c

    print(sum(1,2,3))  

    结果 3

    字典排序

    lit=[{"name":"zhangsan","age":18},{"name":"lisi","age":16},{"name":"wangwu","age":17}]

    lit.sort(key=lambda x:x["age"], reverse=False)

    print(lit)

    .文件操作

    6.1打开、关闭与写入

    f = open(r'G:aasst.txt', 'a+') #打开

    f.write('hello world, i am here!') #写入

    f.seek(0,0) #指针重回第一位

    print(f.read()) #读取

    f.close()#关闭

     

    访问模式

    说明

    r

    以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。

    w

    打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

    a

    打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

    r+

    打开一个文件用于读写。文件指针将会放在文件的开头。

    w+

    打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

    a+

    打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

     

    .类与对象

    7.1定义类

    定义一个类,格式如下:
    class
    类名: 方法列表

    创建对象的格式为:
    对象名 = 类名()

    可以把self当做C++中类里面的this指针一样理解,就是对象自身的意思

    class  Class1:#创建一个类

        def show1(self):

            print("show1")

     

    class1=Class1() #创建对象

    class1.show1()

     

    7.2保护对象的属性

    属性名前面加了2个下划线'__',则表明该属性是私有属性,否则为公有属性

    下面举例如何调用__,简单说是内部建立公有属性调用__

    class Car(object):

        def __inte(self,name):

            self.__name=name

        def getInit(self):

            print("%s"%(self.__name))  

        def setInit(self,name):

            self.__inte(name);

     

    car1=Car()

    car1.setInit("张三")    

    car1.getInit() 

    7.3 __init__()方法

    创建对象时,首先调用__init__()方法

    7.4 继承/多继承

    在定义类时,小括号()中为父类的名字

    class Car1(object):

        def show(self):

            print("show1")

    class Dog1(Car1):

        pass         

     

    dog1=Car1()

    dog1.show()

    7.5类属性和实例属性

    类属性就是类对象所拥有的属性

    class Car2(object):

        name="张三"

     

    car2=Car2()

    car2.name="李四"

    print(Car2.name) #类属性

    print(car2.name) #实例属性

    结果:

    张三

    李四

    7.6类方法和静态方法

    类方法是类对象所拥有的方法,需要用修饰器@classmethod来标识其为类方

    静态方法需要通过修饰器@staticmethod来进行修饰法

    class Car3(object):

        @classmethod

        def show(self):

            print("show")

    car3=Car3()

    car3.show()#调用方式一

    Car3.show()#调用方式二

       

       

       

    class Car4(object):

        @staticmethod

        def show(self):

            print("show")

    car3=Car3()

    car3.show()#调用方式一

    Car3.show()#调用方式二

    八.设计模式

    8.1单例设计模式

    举例一

    class Car2:

        pass

    class Car:

        __car =Car2()

        @classmethod

        def getInstance(self):

            return self.__car

    a=Car.getInstance()

    b=Car.getInstance()

    print(id(a))

    print(id(b))

    举例二

    class Sing:

        __instance=None

        def __new__(cls):

            if not cls.__instance:

                __instance=object.__new__(cls)

            return    cls.__instance

       

    a=Sing()

    b=Sing()

    print(id(a))

    print(id(b))           

           

    8.2工厂设计模式

    class Person:

        def work(self,type):

            cut= Factory.option(type)

            cut.cutTree()

    class Stone(object):

        def cutTree(self):

            print("使用石头砍树")

           

    class Water(object):

        def cutTree(self):

            print("使用水砍树")

             

    class Aex(object):

        def cutTree(self):

            print("使用斧头砍树")

    class Factory:

        @classmethod         

        def option(self,type):  

            if type=="aex":

                return Aex();

            elif type=="water":

                return Water();

            elif type=="stone":

                return Stone();

            else:

                print("选择斧头")

                return

           

    person=Person()

    person.work("aex"

    九.异常

    9.1异常格式

    try:

        i=1/0

    except Exception as e:

        print(e)

    10.模块

    10.1引入模块

    使用from…import 或 import

    from os import path

    import os

    print(path.getsize("test.txt"))

    10.2安装模块

    pip install 模块

    11.列表推导式

    a = [i for i in range(1,10)]

    print(a)

    结果:

    [1, 2, 3, 4, 5, 6, 7, 8, 9]

    下载相关

    点击此处下载python工具

  • 相关阅读:
    Android 在一个程序中启动另一个程序
    Android SDK Manager国内无法更新的解决方案
    Android studio 安装中遇到一些问题的解决办法,分享一下
    apache服务器伪静态配置说明
    POJ3253 Fence Repair【贪心】
    洛谷P1090 合并果子【贪心】
    POJ3069 Saruman's Army【贪心】
    洛谷P1012 拼数【字符串+排序】
    POJ3617 Best Cow Line【贪心】
    洛谷P1583 魔法照片【模拟+排序】
  • 原文地址:https://www.cnblogs.com/hzcjd/p/12862403.html
Copyright © 2020-2023  润新知