首页 > 技术文章 > python的基本语法记录

hzcjd 2020-05-10 10:36 原文

最近在学习爬虫,爬虫最多是用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工具

推荐阅读