当前位置: 首页 > news >正文

网站建设好不好平台营销策略

网站建设好不好,平台营销策略,藏文网站怎么做,正规的营销型网站建设公司文章目录Python基础复习Python的下载与安装标识符关键字模块条件、循环语句if elif elsefor循环while循环成员测试Python中的数据类型序列列表 list元组 tuple集合 set字典 dictPython关系运算算术运算符比较运算符逻辑运算符位运算符赋值运算符运算符优先级字符串表示字符串字…

文章目录

  • Python基础复习
    • Python的下载与安装
    • 标识符
    • 关键字
    • 模块
    • 条件、循环语句
      • if elif else
      • for循环
      • while循环
      • 成员测试
    • Python中的数据类型
      • 序列
      • 列表 list
      • 元组 tuple
      • 集合 set
      • 字典 dict
    • Python关系运算
      • 算术运算符
      • 比较运算符
      • 逻辑运算符
      • 位运算符
      • 赋值运算符
      • 运算符优先级
    • 字符串
      • 表示字符串
      • 字符串与数字类型的转换
      • 字符串格式化
      • 操作字符串
    • 函数
    • 使用Python进行目录的搜索移动
    • Python爬虫-数据获取
    • 面向对象
      • 面向对象个绍
      • 定义类
      • 创建对象
      • 类的成员
      • 封装性
      • 继承性
      • 多态性
    • 异常
      • 异常捕获
      • 使用finally代码块
      • 自定义异常类
      • 手动引发异常

Python基础复习

Python的下载与安装

Python下载地址:https://www.python.org/downloads/
安装详细教程:https://blog.csdn.net/qq_53280175/article/details/121107748

标识符

1、区分大小写: Myname与myname是两个不同的标识符。
2、首字符可以是下画线(_ )或字母,但不能是数字。
3、除首字符外的其他字符必须是下画线、字母和数字。
4、关键字不能作为标识符。
5、不要使用Python的内置函数作为自己的标识符

关键字

在这里插入图片描述

模块

一个模块就是一个文件

import <模块名>
from <模块名> import <代码元素>
from <模块名> import <代码元素> as <代码元素别名>

条件、循环语句

if elif else

score = int(input("请输 入“个0~100整数: "))
if score >= 90:grade =' A ”
elif score >= 80:grade =' B'
elif score >=70:grade = 'C'
elif score >= 60:grade =' D'
else:grade = 'F'
print("Grade ="+ grade)

for循环

for i in range(0,10):print("i = %d"%(i)) # 打印i=0到9
# 计算1+2+3+...+N
print("请输入N的值:")
N = int(input()) # 键盘输入N的值
sumN = 0
for i in range(1,N+1):sumN = sumN + i
print(sumN)	

while循环

i=0
while i * i< 1000:i += 1
print("i =" + str(i)) # i = 32
print("i * i ="+ str(i * i)) # i * i = 1024

成员测试

成员测试运算符有两个: in和not in,
in用于测试是否包含某一个元素,
not in用于测试是否不包含某一个元素。

a = "Hello"
print('e' in a) # True

Python中的数据类型

Python中有6种主要的内置数据类型:数字、字符串、列表、元组、集合和字典。
Python中有4种数字类型:整数类型、浮点类型、复数类型和布尔类型。

Python中的整数类型为int类。
在这里插入图片描述
Python的浮点类型为float类。
在这里插入图片描述
复数在数学中被表示为: a + bi,其中a被称为实部,b被称为虚部,i被称为虚数单位。
在这里插入图片描述
Python中的布尔类型为bool类:它只有两个值:True和False。
在这里插入图片描述
1.隐式类型的转换
在这里插入图片描述
2.显式类型的转换
在这里插入图片描述

序列

序列(sequence) 是一种可迭代的、元素 有序的容器类型的数据。

strtest = "Hello"
print(strtest[0]) # H
print(strtest[-5]) # H
print(strtest[-1]) # oprint(strtest*2) # HelloHello
print(strtest+" World") # Hello World
# 切片操作
# 切片运算符的语法形式为[start:end:step]。其中,start是开始索引,end是结束索引,step是步长(切片时获取的元素的间隔,可以为正整数,也可以为负整数)。
a = "Hello"
print(a[1:3]) # el
print(a[0:3:2]) # Hl

在这里插入图片描述

列表 list

列表(ist) 是一种可变序列类型,我们可以追加、插入、删除和替换列表中的元素。
在这里插入图片描述
1.在列表中追加单个元素时, 可以使用列表的append(x)方法。
2.在列表中追加多个元素时,可以使用加(+) 运算符或列表的extend(t)方法

想向列表中插入元素时,可以使用列表的list.insert(i, x)方法

l = [20,30,50]
l.insert(2,80)
print(l) # [20,30,80,50]

想替换列表中的元素时,将列表下标索引元素放在赋值符号(=)的左边,进行赋值即可。

l = [20,30,50]
l[1] = 80
print(l) # [20,80,50]

使用列表的list.remove(x)方法。

l = [20,30,50]
l.remove(30)
print(l) # [20,50]

元组 tuple

元组(tuple) 是一种**不可变**序列类型。
1.tuple(iterable)函数
2.(元素1,元素2,元素3…)
在这里插入图片描述

sid,sname = (110,'张三')
print(sid) # 110
print(sname) # 张三

集合 set

集合(set)是一种可迭代的、无序的、不能包含 重复元素的容器类型的数据。
1.set(iterable)函数
2.{元素1,元素2,元素3, … }

a = set()
b = {1,2,'abc'}

集合中不包含重复的元素

# 其他数据类型转为集合
a = 'abcd' # 字符串
test = set(a)
print(test) # {'a','b','c','d'}b = [1,2,3] # 列表
test = set(b)
print(test) # {1,2,3}c = (1,2,'abc') # 元组
test = set(c)
print(test) # {1,2,'abc'}d = {'a':1,'b':2,'c':3} # 字典
test = set(d)
print(test) # {'a','b','c'}
# for循环打印集合中的元素
test = {1,2,'abc'}
for item in test:print(item)

add(elem):添加元素,如果元素已经存在, 则不能添加, 不会抛出错误。
remove(elem) :删除元素, 如果元素不存在,则抛出错误。
clear(): 清除集合。

# 集合添加删除元素
nums = {1,2,3}
nums.add(6)
nums.remove(1)
print(nums) # {2,3,6}
nums.clear() # 清除集合
# 集合之间的运算
# 交集 &或者intersection
# 并集 |或者union
# 差集 -或者difference
a = {1,2,3,4}
b = {3,4,5,6}print(a&b) # {3,4}
print(a.intersection(b))print(b&a) # {3,4}
print(b.intersection(a))print(a|b) # {1,2,3,4,5,6}
print(a.union(b))print(a-b) # {1,2}
print(a.difference(b))print(b-a) # {5,6}
print(b.difference(a))

在这里插入图片描述
在这里插入图片描述

字典 dict

1、字典(dict) 是可迭代的、 通过键(key)来访问元素的可变的容器类型的数据。
2、键视图不能包含重复的元素,值视图能。在键视图中, 键和值是成对出现的。

container = {'苹果':'A','香蕉':'C','桃子':'B','梨子':'D'}
print(container)
print(container['桃子'])# 创建字典
name = {}
name = dict()dictname[key] = value

字典可以被修改,但都是针对键和值同时操作的,对字典的修改包括添加、替换和删除。
在这里插入图片描述
items():返回字典的所有键值对视图。
keys():返回字典键视图。
values(): 返回字典值视图。
在这里插入图片描述
在这里插入图片描述

Python关系运算

v1 = True
v2 = False
print(v1) # True
print(v2) # False
print(int(v1)) # 1
print(int(v2)) # 0
print(v1+v2) # 1

算术运算符

在这里插入图片描述

比较运算符

逻辑运算符

在这里插入图片描述

位运算符

在这里插入图片描述

赋值运算符

在这里插入图片描述

运算符优先级

在这里插入图片描述

字符串

表示字符串

普通字符串指用单引号(') 或双引号(")括起来的字符串。
常用的转义符:
在这里插入图片描述
在这里插入图片描述

# 长字符串
s = """1213123123453434342342245412125142534254
352352435231523425325345234524352435243"""

字符串与数字类型的转换

1、将字符串转换为数字
2、将数字转换为字符串

将字符串转换为数字,可以使用int()float()实现, 如果成功则返回数字,否则引发异常。

将数字转换为字符串,可以使用str()函数, str()函数可以将很多类型的数据都转换为字符串。

字符串格式化

使用字符串的format0方法,它不仅可以实现字符串的拼接,还可以格式化字符串。

要想将表达式的计算结果插入字符串中,则需要用到占位符({})
在这里插入图片描述
格式化控制符:
在这里插入图片描述
在这里插入图片描述

操作字符串

str.find(sub[, start[ end]])查找子字符串,在索引start到end之间查找子字符串sub,
如果找到,则返回最左端位置的索引;如果没有找到,则返回-1。
在这里插入图片描述
str.replace(old, new[, count])字符串替换,new子字符串替换old子字符串。count参数指定了替换old子字符串的个数,count被省略,则替换所有old子字符串。
在这里插入图片描述
str.split(sep=None, maxsplit=-1) ,使用sep子字符串分割字符串str。maxsplit是最大分割次数,
如果maxsplit被省略, 则表示不限制分割次数。
在这里插入图片描述

函数

定义函数

def rect_area(w,h):area = w * hreturn area
def print_area(w,h):area = w * hprint("{0}x{1}长方形的面积是{2}".format(w,h,area))	

调用函数
在调用函数时传递的实参与定义函数时的形参顺序一致,这是调用函数的基本形式。
在调用函数时可以采用“关键字=实参”的形式,其中,关键字的名称就是定义函数时形参的名称。

参数的默认值
可变参数
Python中的函数可以定义接收不确定数量的参数,这种参数被称为可变参数。可变参数有两种,即在参数前加*或**。

def sum(*numbers):total = 0.0for number in numbers:total += numberreturn total	print(sum(100.0,20.0,30.0)) # 输出150.0
print(sum(30.0,80.0)) # 110.0	
def show_info(**info):print('---show info---')for key,value in info.items():print('{0} - {1}'.format(key,value))show_info(name = 'Tony',age = 18,sex = True)

函数变量的作用域
全局变量 局部变量

x = 20
def print_value():global x # 将x变量提升为全局变量x = 10print(x)

函数的类型
Python中的任意一个函数都有 数据类型,这种数据类型是function,被称为函数类型。
1、一个函数可以作为另一个函数返回值使用。
2、一个函数可以作为另一个函数参数使用。

filter函数

def f1(x):return x > 50
data = [66,15,91,28,98,50,7,80,99]	
filtered = filter(f1,data)
data2 = list(filtered)
print(data2) # [66,91,98,80,99]

map函数

#提供变换规则的函数
def f1(x):return x*2 #变换规则乘以2
data1 = [66, 15, 91,28, 98, 50, 7, 8099]
mapped = map(f1, data1)
data2 = list(mapped) # 转换为列表
print(data2) # [132, 30, 182,56, 196, 100, 14, 160,198]

lambda函数
在Python中使用lambda关键字定义匿名函数。lambda关键字定义的函数也被称为lambda函数。

def calc(opr):if opr == '+':return lambda a, b:(a + b) #替代add函数else:return lambda a, b: (a - b) # 替代sub函数
f1 = calc('+')
f2 = calc('-')
print("10 + 5 = {0}".format(f1(10,5)))
print("10 - 5 = {0}".format(f2(10,5)))

使用Python进行目录的搜索移动

import os # 导入系统库os
import shutil # 实现移动文件的功能需求# path代表待搜索的目录路径.res存储搜索到的文件路径列表
def search_dir(path,res):child_files = os.listdir(path)for child in child_files:child = os.path.join(path,child)res.append(child)if os.path.isdir(child): # 如果child是一个子目录search_dir(child,res) # 递归input_dir = input("输入待搜索的目录:")
output_dir = input("输入保存文件的目录:")files = list()
search_dir(input_dir,files)		
for file1 in files:print("find %s"%(file1))if os.path.isfile(file1) and file1.endswith(".docx"):print("move %s"%(file1))shutil.move(file1,output_dir)

Python爬虫-数据获取

在这里插入图片描述

# 样例代码
import urllib.request
url = "https://movie.douban.com/top250"
header = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64)"	"AppleWebKit/537.36 (KHTML, like Gecko)""Chrome/76.0.3809.87 Safari/537.36 SLBrowser/6.0.1 .8131"
}
req = urllib.request.Request(url=url,headers = header)
response = urllib.request.urlopen(req)
html = response.read().decode("utf-8")
print(html)
import urlib.request
def download_html(url):header = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64)"	"AppleWebKit/537.36 (KHTML, like Gecko)""Chrome/76.0.3809.87 Safari/537.36 SLBrowser/6.0.1 .8131"}req = urllib.request.Request(url=url,headers = header)response = urllib.request.urlopen(req)html = response.read().decode("utf-8")return htmlhtml = download_html("https://movie.douban.com/top250")
import re
pattern = "https://movie.douban.com/subject/[0-9]+/"
urls = re.findall(pattern,html)
urls = set(urls)
print("urls count = %d"%(len(urls)))
for url in urls:print(url)	
import urlib.request
import redef download_html(url):header = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64)"	"AppleWebKit/537.36 (KHTML, like Gecko)""Chrome/76.0.3809.87 Safari/537.36 SLBrowser/6.0.1 .8131"}req = urllib.request.Request(url=url,headers = header)response = urllib.request.urlopen(req)html = response.read().decode("utf-8")return htmldef extract_url(html):pattern = "https://movie.douban.com/subject/[0-9]+/"urls = re.findall(pattern,html)urls = set(urls)return urls	file1 = open("douban.txt",'r')
output = open('movie.txt','w')lines = file1.readlines()
for url in lines:url = url.strip()print(url)html = 	download_html(url)urls = extract_url(html)for url in urls:output.write(url+'\n')
file1.close()
output.close()

面向对象

面向对象个绍

面向对象是一种编程思想,即按照真实世界的思维方式构建软件系统。

定义类

class类名[(父类)]:
\t 类体

class Car(object):# 类体pass

创建对象

class Car(object):# 类体passcar = Car()

类的成员

在这里插入图片描述
实例变量就是对象个体特有的“数据”,例如狗狗的名称和年龄等。

class Dog:def __init__(self,name,age):self.name = name #创建和初始化实例变量nameself.age = age #创建和初始化实例变量age
d = Dog('球球',2)
print('我们家狗狗名叫{0},{1}岁 了。'.format(d.name, d.age))

类中的__ init__()方法是- -个非常特殊的方法,用来创建和初始化实例变量,这种方法就是“构造方法”。

class Dog:def __init__(self, name, age, sex='雌性'):self.name = name #创建和初始化实例变量nameself.age = age #创建和初始化实例变量ageself.sex = sex #创建和初始化实例变量sex
d1 = Dog('球球'2)
d2 = Dog('哈哈',1,‘雄性')
d3 = Dog(name='拖布',sex= ' 雄性',age=3)
print('{0}: {1}岁{2}。'.format(d1.name, d1.age, d1.sex))
print('{0}: {1}岁{2}。'.format(d2.name, d2.age, d2.sex))
print('{0}: {1}岁{2}。'.format(d3.name, d3.age, d3.sex))

实例方法与实例变量-样,都是某个实例 (或对象)个体特有的方法。

class Dog:#构造方法def __init__ (self, name ,age, sex='雌性'):self.name = name #创建和初始化实例变量nameself.age = age #创建和初始化实例变量ageself.sex = sex #创建和初始化实例变量sex#实例方法def run(self):print("{}在跑...". format(self.name))#实例方法def speak(self, sound) :print('{}在叫,"{}"!'. format(self.name, sound))
dog = Dog('球球'2)
dog. run()
dog. speak('旺旺旺')

类变量是属于类的变量,不属于单个对象。

class Account:interest_ rate = 0.0568 # 类变量利率interest_ ratedef __init__ (self, owner, amount):self.owner = owner #创建并初始化实例变量ownerself.amount = amount #创建并初始化实例变量amount
account = Account( 'Tony', 800000.0)
print('账户名: {0}'.format(account.owner))
print('账户金额: {0}'.format(account.amount) )
print('利率: {0}'.format (Account.interest_ rate))

类方法与类变量类似,属于类,不属于个体实例。

class Account:interest_rate = 0. 0668 #类变量利率def __init__(self, owner, amount):self.owner = owner #定义实例变量账户名self.amount = amount # 定义实例变量账户金额#类方法@classmethoddef interest_ by(cls, amt):return cls.interest_rate * amt
interest = Account.interest_ by(12000.0)
print('计算利息: {0: .4f}'.format(interest))

封装性

封装隐藏了对象的内部细节,只保留有限的对外接口,外部调用者不用关心对象的内部细节,使得操作对象变得简单。

为了防止外部调用者随意存取类的内部数据(成员变量),内部数据(成员变量)会被封装为‘私有变量”。
私有变量,则在变量前加上双下画线(__)。

class Account:__interest_ rate = 0.0568 #类变量利率interest_ ratedef __init__(self, owner, amount) :self.owner = owner #创建并初始化公有实例变量ownerself.__amount = amount #创建并初始化私有实例变量__amountdef desc(self):return "{0}金额: {1}利率: {2}。 " . format(self.owner,self._ amount ,Account.__ interest rate)

私有方法与私有变量的封装是类似的,在方法前加上双下画线 (__) 就是私有方法了。

class Account :__interest_ rate = 0.0568 #类变量利率__ interest_ ratedef __init__(self, owner, amount) :self.owner = owner #创建并初始化公有实例变量ownerself.__amount = amount #创建并初始化私有实例变量___ amountdef __get_info(self):return "{0}金额: {1}利率: {2}。 " . format( self.owner,self.__amount,Account._ interest rate )def desc(self):print(self.__get_info())

为了实现对象的封装,在一个类中不应该有公有的成员变量,这些成员变量应该被设计为私有的,然后通过公有的set (赋值)和get (取值) 方法访问。

class Dog:#构造方法def __init__(self, name, age,sex='雌性'):self.name = name #创建和初始化实例变量nameself.__age = age #创建和初始化私有实例变量__age#实例方法def run(self):print("{}在跑...". format(self.name))@propertydef age(self):#替代get_age(self):return self.__age@age.setterdef age(self, age): # 替代set_age(self, age)self.__ age = age
dog = Dog('球球',2)
print('狗狗年龄: {}'. format(dog.age))
dog.age = 3 # dog.set_ age(3)
print('修改后狗狗年龄: {}' .format(dog.age))

继承性

1、继承性也是面向对象重要的基本特性之- 。在现实世界中继承关系无处不在。
2、例如猫与动物之间的关系:猫是一 种特殊动物,具有动物的全部特征和行为,即数据和操作。在面向对象中动物是一般类,被称为”父类”;猫是特殊类,被称为“子类”。特殊类拥有一般类的全部数据和操作,可称之为子类继承父类。

class Animal :def __init__(self,name):self.name = name #实例变量namedef show_info(self):return "动物的名字: {0}". format(self.name )def move(self):print("动动...")
class Cat(Animal):def __init__(self,name, age):super().__ init__(name)self.age = age # 实例变量age
cat = Cat('Tom', 2)
cat.move()
print(cat.show_info())

多继承

class Horse:def __init__(self, name):self.name = name # 实例变量namedef show_info(self):return "马的名字: {0}". format(self.name)def run(self):print("马跑...")
class Donkey:def __init__(self, name):self.name = name #实例变量namedef show_info(self):return "驴的名字: {0}".format(self.name)def run(self):print("驴跑...")def roll(self):print("驴打滚...")
class Mule(Horse, Donkey): # 多继承 优先性def __init__(self, name, age):super().__init__ (name)self.age = age #实例变量age
m = Mule('骡保丽',1)
m.run() # 继承父类Horse方法
m.roll() # 继承父类Donkey方法
print(m.show_info()) # 继承父类Horse方法

方法重写

class Horse:def __init__(self, name):self.name = name # 实例变量namedef show_info(self):return "马的名字: {0}". format(self.name)def run(self):print("马跑...")
class Donkey:def __init__(self, name):self.name = name #实例变量namedef show_info(self):return "驴的名字: {0}".format(self.name)def run(self):print("驴跑...")def roll(self):print("驴打滚...")
class Mule(Horse, Donkey): # 多继承 优先性def __init__(self, name, age):super().__init__ (name)self.age = age #实例变量agedef show_info(self):return "骡:{0},{1}岁。".format(self.name,self.age)	

多态性

1、“多态”指对象可以表现出多种形态。
2、例如,猫、狗、鸭子都属于动物,它们有”叫”和"动”等行为,但是”叫”的方式不同,"动”的方式也不同。

在多个子类继承父类,并重写父类方法后,这些子类所创建的对象之间就是多态的。这些对象采用不同的方式实现父类方法。

class Animal :def speak(self):print('动物叫,但不知道是哪种动物叫!')
class Dog(Animal):def speak(self):print('小狗:旺旺叫...')
class Cat(Animal):def speak(self):print('小猫:喵喵叫...')
an1 = Dog()
an2 = Cat()
an1.speak()
an2.speak()

鸭子类型测试与多态
1、鸭子类型测试指:若看到一只鸟走起来像鸭子、游泳起来像鸭子、 叫起来也像鸭子,那么这只鸟可以被称为鸭子。
2、Python支持鸭子 类型测试,Python解释器不检查发生多态的对象是否继承了同一个父类,只要它们有相同的行为(方法)它们之间就是多态的。

1、设计一个函数start(),它接收具有“叫"speak()方法的对象:

def start(obj): #接收obj对象具有speak()方法obj.speak( )

2、定义了几个类,它们都有speak()方法:

class Animal:def speak(self):print( '动物叫,但不知道是哪种动物叫! ' )
class Dog(Animal):def speak(self):print('小狗:旺旺叫...')
class Cat(Animal):def speak(self):print('小猫:喵喵叫...')
class Car:def speak(self):print('小汽车:嘀嘀叫...')

3、start()可以接收所有speak()方法对象,代码如下:

start(Dog())
start(Cat())
start(Car())

异常

除零异常:ZeroDivisionErrpr异常

i = input('请输入数字: ')
n = 8888
result = n / int(i)
print(result)
print('{0}除以{1}等于{2}' .format(n, i, result))

异常捕获

我们不能防止用户输入0,但在出现异常后我们能捕获并处理异常,不至于让程序发生终止并退出。亡羊补牢,为时未晚。

i = input('请输入数字:')
n = 8888
try:result = n / int(i)print (result)print(' {0}除以{1}等于{2}'.format(n, i, result))
except ZeroDivisionError as e: # except:print("不能除以0,异常: {}".format(e) )

在这里插入图片描述

i = input(’ 请输入数字:)
n = 8888
try:result = n / int(i)print (result)print( {0}除以{1}等于{2}'.format(n, i, result))
except ZeroDivisionError as e:print("不能除以0,异常: {} ".format(e) )
except ValueError as e:print("输入的是无效数字,异常: {}".format(e))
i = input('请输入数字: ')
n = 8888
try:result = n / int(i)print (result)print('{0}除以{1}等于{2}'.format(n, i, result))
except (ZeroDivisionError, ValueError) as e:print("异常发生: {}".format(e))
i = input('请输入数字: ')
n = 8888
try:i2 = int(i) try :result=n/i2print('{0}除以{1}等于{2}'.format(n, i2, result))except ZeroDivisionError as el:print("不能除以0,异常: {}".format (e1))
except ValueError as e2:print("输入的是无效数字,异常: {}".format (e2))

使用finally代码块

在这里插入图片描述

i = input('请输入数字:' )
n = 8888
try:result=n / int(i)print(result)print('{0}除以{1}等于{2}'.format(n, i, result))
except ZeroDivisionError as e:print("不能除以0,异常: {}".format(e) )
except ValueError as e:print ("输入的是无效数字,异常: {}".format (e))
finally: # 释放资源代码print('资源释放...' )

自定义异常类

# 自定义异常类 MyError ,继承普通异常基类 Exception
class MyError(Exception):def __init__(self, value):self.value = valuedef __str__(self):return repr(self.value)try:num = input("请输入数字:")if not num.isdigit():  # 判断输入的是否是数字raise MyError(num)  # 输入的如果不是数字,手动指定抛出异常
except MyError as e:print("MyError:请输入数字。您输入的是:", e.value)

手动引发异常

def demo_bad_catch():try:raise ValueError('Represents a hidden bug, do not catch this')raise Exception('This is the exception you expect to handle')except Exception as error:print('Caught this error: ' + repr(error))>>> demo_bad_catch()
Caught this error: ValueError('Represents a hidden bug, do not catch this',)

【参考】https://www.bilibili.com/video/BV19M411r7ix
【参考】https://www.bilibili.com/video/BV1wD4y1o7AS/?spm_id_from=333.999.0.0&vd_source=ae10349a11947050eef839ac15d08136
【参考】https://blog.csdn.net/manongajie/article/details/106344964
【参考】https://blog.csdn.net/p15097962069/article/details/103381588

http://www.ds6.com.cn/news/1197.html

相关文章:

  • 南宁网站建设云尚网络数据统计网站有哪些
  • 哪个网站做数学题赚钱百度关键词搜索怎么收费
  • 做一个网站美工多少钱网络营销案例分析题及答案
  • 做图片能去哪些网站吗seo站外优化最主要的是什么
  • 公众号平台客服人工服务电话百度移动排名优化软件
  • 做一个多肉网站可以做哪些内容市场营销实际案例
  • c2c代表网站是什么在百度如何发布作品
  • 网线制作心得体会搜外网 seo教程
  • 重庆公司社保最低档每月多少钱浙江seo关键词
  • ai做的比较好的网站网站制作公司网站
  • wordpress主题视频谷歌排名优化入门教程
  • 公司网站背景图百度sem竞价托管公司
  • 网投网站建设百度怎么发布短视频
  • 城乡与建设厅网站今日热搜第一名
  • 如何做网站关键词优化自己的网站怎么做seo
  • 网页转向功能网站四种营销策略
  • 找做网站的上什么app谷歌paypal官网入口
  • 十大导航软件廊坊seo排名霸屏
  • wordpress视频播放系统seo sem优化
  • 如何做私服网站代理网络营销方案范文
  • 图书管理系统网站开发绪论品牌宣传方式
  • 怎么建设游戏网站seo流量增长策略
  • 建设网站方法优化模型数学建模
  • 云南省文山建设厅网站seo搜索引擎优化5
  • 网站地图样本自己开平台怎么弄啊
  • 自己做网站卖外挂专业培训心得体会
  • 大连网站制作的公司网络销售好做吗
  • 百度推广代理开户seo搜索工具栏
  • 长安镇做网站网络做推广公司
  • 新余+网站建设今天国内新闻