#字典
tinydict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
tinydict['Age'] = 8 # 更新
tinydict['School'] = "RUNOOB" # 添加
print "tinydict['Age']: ", tinydict['Age']
print "tinydict['School']: ", tinydict['School']
1、含义:内存空间的表示式
2、命名需要遵循规则;
import keyword
print(keyword.kw_list)
3、赋值使用 =
4、变量无数据类型 ##数据类型
1、整数类型 int
2、浮点类型 float
3、布尔类型 取值 False or True
4、字符串类型 str
1、数据类型运算方法
1、+、-、*、\
2、5%3 = 5/3*2 除数 1 余数 2
3、17/3 = 5...返回为浮点数
4、17//3 =5 返回为整数
5、2\*\*2 = 4 计算为 2 的平方
###2、数据类型运算注意事项
1、2.2 + 2.1 = 4.2 浮点数相加会有相差
2、... ##类型转换
1、str()将其他类型转换为字符串
2、int()将其他类型转换为整数
3、float()将其他数据类型转换为浮点数
###1、类型转换使用方法
1、a=1 type(a)=int str(a) type(a)=str
2、a='1' type(a)=str int(a) type(a)=int
###2、类型转换注意事项
1、a='1.1' type(a)=str int(a) 报错 不能转换浮点数的字符串为整数
2、... ##数据类型之间连接
1、print('我叫' + name + ',今年' + str(age) + '岁') ###数据类型之间连接注意事项
1、字符串与整型链接,需要将整型转换为字符串 ##注释
1、单行注释 #这是一段注释
2、多行注释 '''这是一块注释'''
函数
# def fib(n): # """Print a Fibonacci erie's up to n.""" # a, b = 0, 1 # while a < n: # print(a, end='') # a, b = b, a + b # print() # # # fib(1000)
# def f(a, L=None):
# if L is None:
# L = []
# L.append(a)
# return L
#
#
# print(f(1))
# print(f(2))
# print(f(3))
数据结构
list.append(x)
在列表末尾添加一个元素,相当于 a[len(a):] = [x] 。
list.extend(iterable)
用可迭代对象的元素扩展列表。相当于 a[len(a):] = iterable 。
list.insert(i, x)
在指定位置插入元素。第一个参数是插入元素的索引,因此,a.insert(0, x) 在列表开头插入元素, a.insert(len(a), x) 等同于 a.append(x) 。
list.remove(x)
从列表中删除第一个值为 x 的元素。未找到指定元素时,触发 ValueError 异常。
list.pop([i])
删除列表中指定位置的元素,并返回被删除的元素。未指定位置时,a.pop() 删除并返回列表的最后一个元素。(方法签名中 i 两边的方括号表示该参数是可选的,不是要求输入方括号。这种表示法常见于 Python 参考库)。
list.clear()
删除列表里的所有元素,相当于 del a[:] 。
list.index(x[, start[, end]])
返回列表中第一个值为 x 的元素的零基索引。未找到指定元素时,触发 ValueError 异常。
可选参数 start 和 end 是切片符号,用于将搜索限制为列表的特定子序列。返回的索引是相对于整个序列的开始计算的,而不是 start 参数。
list.count(x)
返回列表中元素 x 出现的次数。
list.sort(*, key=None, reverse=False)
就地排序列表中的元素(要了解自定义排序参数,详见 sorted())。
list.reverse()
翻转列表中的元素。
list.copy()
返回列表的浅拷贝。相当于 a[:] 。
堆栈 队列 元组
实现队列最好用 collections.dequeue ###队列
from collections import dequeue
dequeue = dequeue(['aa', 'bb', 'cc'])
dequeue.append('dd')
print(dequeue)
dequeue.poppet()
print(dequeue)
dequeue.poppet()
print(dequeue)
堆栈
stack = [3, 4, 5, 6, 7]
print(stack) # [3, 4, 5, 6, 7]
stack.pop() # 7
print(stack) # 4, 5, 6]
stack.pop() # 6
stack.pop() # 5
print(stack) # [3, 4] ####列表行列转换
matrix = [
[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]] ## print(matrix) ### 转置行列
Sprint(list(zip(\*matrix))) # [(1, 5, 9), (2, 6, 10), (3, 7, 11), (4, 8, 12)] ###元组
t = 'aa', 'dd', 'a1'
print(t)
u = t, ('cc', 'gg')
print(u)
##集合 # 集合 # basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'} # # print(basket) # {'orange', 'banana', 'apple', 'pear'} 集合没有重复的 ##字典 # # # 字典 # tel = {'jack': 1990, 'age': 50} # # print(tel) # {'jack': 1990, 'age': 50} # # print(tel['jack']) # 1990 以关键字作为索引 # # dict() 构造函数可以直接用键值对序列创建字典 ##常见的数据异常
1、except ZeroDivisionError
2、except IndexError
3、except KeyError
4、except NameError
5、except SyntaxError
6、except ValueError ##异常使用
try:
a = int(input('请输入第一个数'))
b = int(input('请输入第二个数'))
result = a / b
except BaseException as e:
print('出错了', e)
else:
print('结果为:', result)
finally:
print('无论是否产生异常,都执行')
print('程序结束') ##编程思想
不同点 共同点
面向过程:顺序执行 解决问题
面向对象:模块执行 解决问题 ##类
#1、类的创建 class Student
pass #关键词:class 类名(首字母大写)
#2、类的内存空间
print(id(Student)) # 140420918074560
print(type(Student)) # <class 'type'>
print(Student) # <class '**main**.Student'>
#3、类创建模板
#4、类属性 #类中方法外的变量成为类属性,其被属于该类的所有对象共享
#5、类方法 #使用@classmethod 修饰符的方法,使用类名直接使用的方法
#6、静态方法 #使用 staticmethod 修饰的主法,使用类名直接访问使用的方法
#7、类的封装 在属性前面加**
#Python 没有专门的修饰符封装私有,封装私有变量和方法,提高安全性
#8、类的继承 提高代码复用性 # 类的继承 ##定义父类
class Person(object):
def **init**(self, name, age):
self.name = name
self.age = age
def info(self):
print('姓名:{0},年龄:{1}'.format(self.name, self.age)) ##定义子类
class Teenage(Person):
def **init**(self, name, age, score):
super().**init\_\_(name, age)
self.score = score ###测试
stu6 = Teenage('jack', 20, '99')
stu6.info() # 多继承 C=>A,B=>object
class A(object):
pass
class B(object):
pass
class C(A, B):
pass
##方法重写:父类方法不能满足子类需求,需要重写方法
#9、类的多态 增加代码扩展性
class Animal(object):
# def eat(self):
# print('动物要吃东西')
#
#
# class Dog(Animal):
# def eat(self):
# print('狗吃肉')
#
#
# class Cat(Animal):
# def eat(self):
# print('猫吃鱼')
#
#
# class Person(Animal):
# def eat(self):
# print('人吃五谷杂粮')
#
#
# def fun(animal):
# animal.eat()
#
#
# fun(Dog())
# fun(Cat())
# fun(Person())
类的特殊方法和属性 #类的特殊属性
class A(object):
pass
class B(object):
pass
class C(A, B):
def **init**(self, name, age):
self.name = name
self.age = age
class D(A):
pass
x = C('jack', 20)
print(x.**dict**) # 实例对象的属性字典 {'name': 'jack', 'age': 20}
print(C.**dict**) # 类对象属性和方法字典 {'**module**': '**main**', '**init**': <function C.**init** at 0x10429e050>, '**doc**': None}
print('-------------')
print(x.**class**) # 列出该实例对象所属的类对象 <class '**main**.C'>
print(C.**bases**) # 列出继承的类对象 (<class '**main**.A'>, <class '**main**.B'>)
print(C.**base**) # 列出继承的第一个类 <class '**main**.A'>
print(C.**mro**) # 列出该类继承继承层次结构
print(A.**subclasses**()) # 列出子类 [<class '__main__.C'>, <class '__main__.D'>] #类的特殊方法
#add()
class Student(object):
def **init**(self, name):
self.name = name
def **add**(self, other): #实现了两个对象的加法运算,在类中编写 Add 方法
return self.name + other.name
stu1 = Student('张三')
stu2 = Student('李斯')
s = stu1.name + stu2.name
print(s)
#len()
class Student(object):
def **init**(self, name):
self.name = name
def **len**(self):
return len(self.name)
stu1 = Student('张三')
print(len(stu1))
list1 = [1, 2, 3, 5]
print(len(list1))
#new() 创建对象 创建子对象
class Student(object):
def **new**(cls, \*args, \*\*kwan's):
print('**new**被调用执行,cls 的 id 值为:{0}'.format(id(cls)))
obj = super().**new**(cls)
print('创建对象得到 id 为:{0}'.format(id(obj)))
return obj
def __init__(self, name, age):
print('__init__被调用执行,self的id值为:{0}'.format(id(self)))
self.name = name
self.age = age
print('object这个的对象的id为:{0}'.format(id(object)))
print('Student这个的对象的id为:{0}'.format(id(Student)))
# 创建Student类的实例对象
p1 = Student('张三', 20)
print('p1这个Student类的实例对象的id为:{0}'.format(id(p1)))
#变量的赋值
class CPU:
pass
class Disk:
pass
class Computer:
def __init__(self, cpu, disk):
self.cpu = cpu
self.disk = disk
# 变量的赋值
cpu1 = CPU()
cpu2 = cpu1
print(cpu1) # <__main__.CPU instance at 0x101619710>
print(cpu2) # <__main__.CPU instance at 0x101619710>
# 类的浅拷贝 拷贝后源对象与子对象指向同一个子类对象
print('---------------')
disk = Disk() # 创建一个硬盘类对象
computer = Computer(cpu1, disk) # 创建一个计算机类对象
import copy
computer2 = copy.copy(computer)
print(computer, computer.cpu, computer.disk) # <__main__.Computer object at 0x109adb4d0> <__main__.CPU object at 0x109acb790> <__main__.Disk object at 0x109adb450>
print(computer2, computer2.cpu, computer2.disk) # <__main__.Computer object at 0x109adb650> <__main__.CPU object at 0x109acb790> <__main__.Disk object at 0x109adb450>
# 深拷贝 拷贝源对象子对象
computer3 = copy.deepcopy(computer)
print('---------------')
print(computer, computer.cpu, computer.disk) # <__main__.Computer object at 0x109adb4d0> <__main__.CPU object at 0x109acb790> <__main__.Disk object at 0x109adb450>
print(computer3, computer3.cpu, computer3.disk) # <__main__.Computer object at 0x109adb910> <__main__.CPU object at 0x109add090> <__main__.Disk object at 0x109add1d0>
模块
与函数封装类似,提高代码可维护性,提高代码可复用性 ###
import math
print(id(math))
print(type(math))
print(math)
print(math.pi)
print(dir(math))
print(math.pow(2, 3), type(math.pow(2, 3))) ### # from 模块 import 函数、方法
from math import pi
from math import pow
print(pi)
print(pow(2, 6)) ###导入自定义模块 # 导入自定义模块,并使用 选中根目录,选择 mark directory as 变成更路由 # import demo2
#from demo2 import add
#print(add(2, 10)) #在导入的文件里面,有其他函数或输出语句不需要输出时,可以添加一下代码处理
#if **name** == '**main**': # 只有运行本文件才执行代码,导入其他文件时不会执行
#print(10 + 30) ###包 包+模块 可以避免模块名冲突, #注意事项 使用 import 的是,只能导入包名或者模块名 使用 from 可以带入命名和模块名
import pageage_1.moudle_a as ma
print(ma.a)
标准库的使用和介绍
<!-- import imp
import sys # 与 Python 解释器及其环境相关的数据
import time # 提供与时间相关的各种函数的标准库
import os # 提供了访问操作系统服务功能的标准库
import calendar # 提供了与日期相关的各种函数的标准库
import urllib.request # 提供了用于读取来自网上(服务器)的数据标准库
import json # 提供了使用 json 序列化和反序列化对象
import re # 用于在字符串中执行正则表达式匹配和替换
import math # 提供了标准算术运算函数的标准库
import decimal # 用于进行精确控制运算精度、有效数位和四舍五入操作的十进制运算
import logging # 提供了灵活的记录事件、错误、警告和调试信息等日志的功能
print(sys.getsizeof(11))
print(sys.getsizeof(True))
print(sys.getsizeof('44'))
print(time.time())
print(time.localtime(time.time()))
print(urllib.request.urlopen('http://www.baidu.com').read()) #第三方模块的使用 #第三方模块的使用 例如日程模块 1、pip3 install schedule 2、进入 python3 3、输入 import schedule #实现定时发送邮件:办公自动化 # import schedule # import time # def job(): # print('哈哈----') # schedule.every(3).seconds.do(job) # while True: # schedule.run_pending() # time.sleep(1) -->
with 管理上下文
装饰器
重构url
# url_for() 第一个参数为目标函数名,将其路由转换为url,第二个参数为关键字 需要填入url后置,参数的多少。与目标函数所绑定的url相匹配
#book['url'] = url_for('book_detail', book_id=book['id'])
请求方法设置
# 如果只是获取服务器的数据,则一般使用get请求,如果前端需要把数据发送给服务器,则用post请求
# 在路由路径加入参数methods,限制请求方式
#@app.route('/book/detail/<string:book_id>', methods=['GET', 'POST'])
测试方法 unittest
方法名称
assertEqual() 失败除非相等
assertNotEqual()失败如果相等
assertTrue()失败除非
assertFalse()如果失败
assertRaises() 除非增加否则失败
assertAlmostEqual()失败除非几乎相等
assertNotAlmostEqual()失败如果几乎相等
重定向设置
#@app.route("/profile")
# def profile():
# 获取用户在接口输入的url
user_id = request.args.get('id')
# 参数传递的两种方式:
# 1、作为url的组成部分:/book/1
# 2、查询字符串:/book?id=1
# print(user_id)
#if user_id:
# return "用户个人中心"
#else:
# return redirect(url_for("index"))
加载静态文件
动态的 web 应用同样需要静态文件。CSS 和 JavaScript 文件通常来源于此。理想情况下, 你的 web 服务器已经配置好为它们服务,然而在开发过程中 Flask 能够做到。 只要在你的包中或模块旁边创建一个名为 static 的文件夹,在应用中使用 /static 即可访问。
给静态文件生成 URL ,使用特殊的 'static' 端点名:
url_for('static', filename='style.css')
会话:cookies基础上改造
除了请求对象,还有第二个称为 session 对象允许你在不同请求间存储特定用户的信息。 这是在 cookies 的基础上实现的, 并且在 cookies 中使用加密的签名。这意味着用户可以查看 cookie 的内容, 但是不能修改它,除非它知道签名的密钥。
常用库介绍
Flask 常用库详情
flask-script
为Flask提供强大的命令行操作,与Django shell类似。
flask-login
Flask user session 管理,提供诸如login_user, logout_user, login_required, current_user等功能,也是其他很多Flask库的基础。
flask-admin
为Flask应用提供操作简单且易于扩展的数据库管理界面,与Django自带的数据库管理app类似。
Flask-WTF
Flask与WTForms的集成,提供强大的Form安全和校验机制,与Django内置的Form功能类似。
flask-principal
Flask强大的权限管理机制,灵活性强,提供了一个权限管理的基础框架,是很多Flask权限相关扩展的基础。
flask-restful
一个强大的Flask RESTful框架,简单好用。
flask-api
相当于Django REST Framework的Flask版,是另一个强大的Flask RESTful框架。
Flask-Mail
Flask-Mail 为Flask应用添加了SMTP 邮件发送功能
Flask-User
Flask-User集成了用户管理相关功能,并允许对功能做定制性修改,其相关功能包括Register, Confirm email, Login, Change username, Change password, Forgot password等。
Flask-User 基于Flask-SQLAlchemy,NoSQL数据库无法使用。
flask-security
Flask-Security让开发者能够很快的为应用添加常用的安全机制,其整合了Flask-Login, Flask-Mail, Flask-Principal, Flask-Script等应用。其安全机制包括:
Session based authentication
Role management
Password encryption
Basic HTTP authentication
Token based authentication
Token based account activation (optional)
Token based password recovery / resetting (optional)
User registration (optional)
Login tracking (optional)
JSON/Ajax Support
flask-babel
Flask国际化和本地化扩展,基于Babel
flask-locale
为Flask应用添加语言包,与flask-babel类似。
flask_蓝图
###蓝图:Blueprint 是一种组织一组相关视图及其他代码的方式。与把视图及其他 代码直接注册到应用的方式不同,蓝图方式是把它们注册到蓝图,然后在工厂函数中 把蓝图注册到应用。
###理解:在vue中,蓝图相当于路由管理,把所有组件放置在路由,并通过一些方法,让其他组件可以快速访问,其中路由守卫的功能在蓝图中实现,进入或者离开
tran库常见问题处理
常见问题和处理
故障:flask.cli.NoAppException: Could not import "manage".
原因:Flask需要在网站的根目录下运行,在其它路径地方运行会出现,遇到这个提示要检查是否在正确位置,不对的要进入网站目录
cd /web/www/py_xxx
故障:Address already in use
原因:已经有相同的程序运行着,端口不能重复使用,需要运行下面的命令清除
ps -e | grep flask | grep -v grep | awk '{ print $1 }' | xargs sudo kill
故障:ImportError: No module named 'flask-mail' 或者 ModuleNotFoundError: No module named 'loguru'
原因:模块没有按照引起,需要重新运行命令安装(其它模块缺少也是如此安装,注意:xcore xuser xadmin xweb是公司开发组件,看上面的安装提示):
sudo pip3 install flask-mail
故障:ssl.SSLError: [SSL] PEM lib
原因:网站证书错误或者或者下载有问题,运行下面的命令修复
wget -T 10 -t 3 -O /web/tools/dev.com.pem http://soft.oa.com/dev.com.pem
wget -T 10 -t 3 -O /web/tools/dev.com.key http://soft.oa.com/dev.com.key
故障:ImportError: cannot import name 'bytes_type'
原因:组件版本问题
sudo pip3 install oauthlib==2.1.0 requests-oauthlib==1.1.0
故障:mongoengine.connection.ConnectionFailure: You have not defined a default connection
原因:mongoengine版本问题,运行如下命令更换下版本即可
pip3 install mongoengine==0.19.0
故障:访问 https://dev.com 时候,浏览器提示证书错误
原因:没有安装好浏览器证书,运行命令修复,安装完成以后需要重启电脑,更多的问题解决方案看:https测试环境
wget -T 10 -t 3 -O /tmp/telking.pem http://soft.oa.com/telking.pem
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain /tmp/telking.pem
一 装饰器
作用是为了将一个子模块加入新的功能,但是不修改原有的代码
二 案例
def operate(func): def wrapper(*args, **kwargs): # 闭包函数 value = func(*args, **kwargs) print(value, args, kwargs) return value return wrapper @operate def start_func(count, second="yes"): count = count * 10 print("这里是加了装饰器的函数 %d" % count) return count start_func(10, second="no")
输出:
这里是加了装饰器的函数 100 100 (10,) {'second': 'no'} 100
# 不含参数的装饰器
## 不含参数的装饰器 def jump_func(funcName): def build_in(a, b, c): # 这个函数要与 start_entrance 函数参数一致 b = "woman" print("-----before-----", a, b, c) change = funcName(a, b, c) print("-----after------", change) return change return build_in @jump_func def start_entrance(name, sex, age): # sex = "crazy" # age = 18 print("stat func:", name, sex, age) return (name, sex, age) result = start_entrance("honer", "man", 78)
输出:
-----before----- honer woman 78 stat func: honer woman 78 -----after------ ('honer', 'woman', 78)
有参数的装饰器
# 传递带有参数的装饰器,能在运行时,处理不同的功能 """ 1 先执行 trans_args("start") 函数,这个函数return 的结果是func这个函数的引用 2 @func 3 使用 @func 对start_entrance 进行装饰 """ def trans_args(arg): def func(funcName): def build_in(): if arg == "start": # 装饰器里的参数 result = funcName() print(result) return result else: result = funcName() return "not comparable" return build_in return func @trans_args("start") def start_entrance(): wrap = "嵌入其中的函数" print(wrap) return wrap res = start_entrance() @trans_args("from") def from_entrance(): variable = "hello, world" print(variable) return variable from_entrance()
输出:
嵌入其中的函数 嵌入其中的函数 hello, world 'not comparable'
目录
JavaScript
简介
# 1.JavaScript与Java没有半毛钱关系
之所以叫这么个名字纯粹是为了蹭当时Java的热度
# 2.JavaScript简称JS 也是一门前端的编程语言
前端由于非常受制于后端,所以有一些人异想天开想要通过js来编写后端代码一统江湖 由此开发了一个叫nodejs的工具(支持js跑在后端服务器上)>>>:不好用
# 3.JS最初由一个程序员花了七天时间开发的 里面存在很多bug
为了解决这些bug一直在编写相应的补丁 补丁本身又有bug 最后导致了js中有很多不符合逻辑的地方(成了大家墨守成规的东西)
# 4.JavaScript与ECMAScript
JavaScript原先由一家公司开发 希望其他公司都使用 最后被组织改名
# 5.版本问题
ECMA5
ECMA6
JavaScript 与 Java 是两种完全不同的语言,无论在概念上还是设计上。
Java(由 Sun 发明)是更复杂的编程语言。
# ECMA-262 是 JavaScript 标准的官方名称。
JavaScript 由 Brendan Eich 发明。它于 1995 年出现在 Netscape 中(该浏览器已停止更新),并于 1997 年被 ECMA(一个标准协会)采纳。
JavaScript 已经由 ECMA(欧洲电脑制造商协会)通过 ECMAScript 实现语言的标准化。
# JavaScript 是脚本语言
JavaScript 是一种轻量级的编程语言。
# JavaScript 是可插入 HTML 页面的编程代码。
JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行。
"""
编写js代码的位置
1.pycharm提供的js文件
2.浏览器提供的js环境(学习阶段推荐)
"""
JavaScript 变量和注释
注释
通过添加注释来对 JavaScript 进行解释,或者提高代码的可读性。
# 单行注释以 // 开头。
单行注释可用于阻止其中一条代码行的执行(可用于调试)
# 还可以在行末使用注释
# 多行注释以 /* 开始,以 */ 结尾。
多行注释用于阻止代码块的执行(可用于调试)
变量、常量
变量是用于存储信息的"容器"。
# 就像代数那样
x=5
y=6
z=x+y
# 在代数中,我们使用字母(比如 x)来保存值(比如 5)。
通过上面的表达式 z=x+y,我们能够计算出 z 的值为 11。
# 在 JavaScript 中,这些字母被称为变量。
与代数一样,JavaScript 变量可用于存放值(比如 x=5)和表达式(比如 z=x+y)。
变量可以使用短名称(比如 x 和 y),也可以使用描述性更好的名称(比如 age, sum, totalvolume)。
'''
变量必须以字母开头
变量也能以 $ 和 _ 符号开头(不过我们不推荐这么做)
变量名称对大小写敏感(y 和 Y 是不同的变量)
'''
# JavaScript 语句和 JavaScript 变量都对大小写敏感。
声明(创建)变量
在 JavaScript 中创建变量通常称为"声明"变量。
在js中定义变量需要使用关键字声明
我们使用 var 关键词来声明变量
var carname;
变量声明之后,该变量是空的(它没有值)。
如需向变量赋值,需使用等号
carname="JOJO";
也可以在声明变量时对其赋值
var carname="JOJO";
可以在一条语句中声明很多变量。并使用逗号分隔变量即可
//该语句以 var 开头
var lastname="Doe", age=30, job="carpenter";
声明也可横跨多行
var lastname="Doe",
age=30,
job="carpenter";
一条语句中声明的多个变量不可以同时赋同一个值
var x,y,z=1;
// x,y 为 undefined, z 为 1。
如果重新声明 JavaScript 变量,该变量的值不会丢失
我们还可以用 let 关键字声明变量
let name = 'jojo'
var声明都是全局变量,let可以声明局部变量
声明常量
使用 const 关键字来定义一个常量。
const pi = 3.14
const 用于声明一个或多个常量,声明时必须进行初始化,且初始化后值不可再修改
const PI = 3.141592653589793;
PI = 3.14; // 报错
PI = PI + 10; // 报错
# 并非真正的常量:
const 定义的变量并非常量,并非不可变,它定义了一个常量引用一个值。使用 const 定义的对象或者数组,其实是可变的。
const
定义常量与使用let
定义的变量相似:
- 二者都是块级作用域
- 都不能和它所在作用域内的其他变量或函数拥有相同的名称
两者还有以下两点区别:
- `const`声明的常量必须初始化,而`let`声明的变量不用
- const 定义常量的值不能通过再赋值修改,也不能再次声明。而 let 定义的变量值可以修改。
变量赋值
# 当您向变量分配文本值时,应该用双引号或单引号包围这个值。
# 当您向变量赋的值是数值时,不要使用引号。如果您用引号包围数值,该值会被作为文本来处理。
var pi=3.14;
// 如果你熟悉 ES6,pi 可以使用 const 关键字,表示一个常量
// const pi = 3.14;
var person="John Doe";
var answer='Yes I am!';
// 结束符号是以分号结束
数据类型
变量的数据类型可以使用 typeof 操作符来查看
typeof "John" // 返回 string
typeof 3.14 // 返回 number
typeof false // 返回 boolean
typeof [1,2,3,4] // 返回 object
typeof {name:'John', age:34} // 返回 object
数值类型(Number)
(相当于python里面的整型int和浮点型float)
# NaN:属于数值类型 意思是'不是一个数字'(not a number)
parseInt('abc') # 不报错返回NaN
parseFloat('abc') # 不报错返回NaN
字符类型(String)
(相当于python里面的字符串str)
JavaScript 字符串用于存储和处理文本。
字符串可以是引号中的任意文本。默认只能使用单引号或双引号
var name1="jojo";
var name2='JOJO';
//字符串中的引号不要与字符串的引号相同
var answer = "He is called 'Johnny'";
var answer = 'He is called "Johnny"';
格式化字符串用小顿号
var name3 = `jason`
字符串属性
字符串可以是对象
通常, JavaScript 字符串是原始值,可以使用字符创建: var firstName = "JoJo"
但我们也可以使用 new 关键字将字符串定义为一个对象: var firstName = new String("JoJo")
var x = "JoJo";
var y = new String("JoJo");
typeof x // 返回 String
typeof y // 返回 Object
// === 为绝对相等,即数据类型与值都必须相等。
var x = "JoJo";
var y = new String("JoJo");
(x === y) // 结果为 false,因为 x 是字符串,y 是对象
原始值字符串, 如 "JoJo", 没有属性和方法(因为他们不是对象)。
原始值可以使用 JavaScript 的属性和方法,因为 JavaScript 在执行方法和属性时可以把原始值当作对象。
字符串方法
布尔类型
(相当于python中的布尔值bool)
布尔(逻辑)只能有两个值:true 或 false。
js中布尔值是全小写
# 布尔值为false的: 0 空字符串 null undefined NaN
null的意思是空, undefined的意思是没有定义
Undefined 这个值表示变量不含有值。可以通过将变量的值设置为 null 来清空变量。
# python中布尔值时首字母大写
True False
# 布尔值为False的: 0 None 空字符串 空列表 空字典...
对象
(相当于python中的列表、字典、对象)
对象由花括号分隔。在括号内部,对象的属性以名称和值对的形式 (name : value) 来定义。属性由逗号分隔
var person={firstname:"John", lastname:"Doe", id:5566};
// 上面例子中的对象 (person) 有三个属性:firstname、lastname 以及 id。
在 JavaScript中,几乎所有的事物都是对象。
定义 JavaScript 对象可以跨越多行,空格跟换行是关紧要的
var person = {
firstName:"John",
lastName:"Doe",
age:50,
eyeColor:"blue"
};
可以说 "JavaScript 对象是变量的容器"。
但是,我们通常认为 "JavaScript 对象是键值对的容器"。
# 键值对通常写法为 name : value (键与值以冒号分割)。
键值对在 JavaScript 对象通常称为 '对象属性'。
# 对象键值对的写法类似于Python 中的字典
可以通过两种方式访问对象属性
person.lastName;
person["lastName"];
方法
# 数组(相当于python中的列表)
Array
var l1 = [11, 22, 33]
# 1.追加元素
js中使用push() python中使用append()
# 2.弹出元素
js和python都用的pop()
# 3.头部插入元素
js中使用unshift() python中使用insert()
# 4.头部移除元素
js中使用shift() python中可以使用pop(0) remove()
# 5.扩展列表
js中使用concat() python中使用extend()
# 6.forEach
var l2 = ['jason', 'tony', 'kevin', 'oscar', 'jerry']
l2.forEach(function(arg1){console.log(arg1)})
VM3143:1 jason
VM3143:1 tony
VM3143:1 kevin
VM3143:1 oscar
VM3143:1 jerry
l2.forEach(function(arg1,arg2){console.log(arg1,arg2)})
VM3539:1 jason 0
VM3539:1 tony 1
VM3539:1 kevin 2
VM3539:1 oscar 3
VM3539:1 jerry 4
l2.forEach(function(arg1,arg2,arg3){console.log(arg1,arg2,arg3)})
VM3663:1 jason 0 ['jason', 'tony', 'kevin', 'oscar', 'jerry']
VM3663:1 tony 1 ['jason', 'tony', 'kevin', 'oscar', 'jerry']
VM3663:1 kevin 2 ['jason', 'tony', 'kevin', 'oscar', 'jerry']
VM3663:1 oscar 3 ['jason', 'tony', 'kevin', 'oscar', 'jerry']
VM3663:1 jerry 4 ['jason', 'tony', 'kevin', 'oscar', 'jerry']
# 7.splice
splice(起始位置,删除个数,新增的值)
目录
- JavaScript
- 简介
- https://3g.163.com/dy/article/%E6%96%B0%E7%99%BE%E8%83%9C%E5%85%AC%E5%8F%B8%E6%80%8E%E4%B9%88%E8%81%94%E7%B3%BB-19869481847
https://3g.163.com/dy/article/%E6%96%B0%E7%99%BE%E8%83%9C%E5%85%AC%E5%8F%B8%E6%80%8E%E4%B9%88%E8%81%94%E7%B3%BB-19869481847
https://3g.163.com/dy/article/%E6%96%B0%E7%99%BE%E8%83%9C%E5%85%AC%E5%8F%B8%E6%B8%B8%E6%88%8F%E9%93%BE%E6%8E%A5-19869481847
https://3g.163.com/dy/article/%E6%96%B0%E7%99%BE%E8%83%9C%E5%85%AC%E5%8F%B8%E6%B8%B8%E6%88%8F%E9%93%BE%E6%8E%A5-19869481847
https://3g.163.com/dy/article/%E6%96%B0%E7%99%BE%E8%83%9C%E5%85%AC%E5%8F%B8%E6%B3%A8%E5%86%8C%E5%AE%98%E7%BD%91-19869481847
https://3g.163.com/dy/article/%E6%96%B0%E7%99%BE%E8%83%9C%E5%85%AC%E5%8F%B8%E6%B3%A8%E5%86%8C%E5%AE%98%E7%BD%91-19869481847
https://3g.163.com/dy/article/%E6%96%B0%E7%99%BE%E8%83%9C%E5%85%AC%E5%8F%B8%E5%AE%A2%E6%9C%8D-19869481847
https://3g.163.com/dy/article/%E6%96%B0%E7%99%BE%E8%83%9C%E5%85%AC%E5%8F%B8%E5%AE%A2%E6%9C%8D-19869481847
https://3g.163.com/dy/article/%E6%96%B0%E7%99%BE%E8%83%9C%E5%85%AC%E5%8F%B8%E6%B8%B8%E6%88%8F%E7%BD%91%E5%9D%80-19869481847
https://3g.163.com/dy/article/%E6%96%B0%E7%99%BE%E8%83%9C%E5%85%AC%E5%8F%B8%E6%B8%B8%E6%88%8F%E7%BD%91%E5%9D%80-19869481847
https://3g.163.com/dy/article/%E6%96%B0%E7%99%BE%E8%83%9C%E5%85%AC%E5%8F%B8%E5%AE%A2%E6%9C%8D%E7%94%B5%E8%AF%9D-19869481847
https://3g.163.com/dy/article/%E6%96%B0%E7%99%BE%E8%83%9C%E5%85%AC%E5%8F%B8%E4%B8%8A%E4%B8%8B%E5%88%86-19869481847
https://3g.163.com/dy/article/%E6%96%B0%E7%99%BE%E8%83%9C%E5%85%AC%E5%8F%B8%E4%B8%8A%E4%B8%8B%E5%88%86-19869481847
https://3g.163.com/dy/article/%E6%96%B0%E7%99%BE%E8%83%9C%E5%85%AC%E5%8F%B8%E6%B3%A8%E5%86%8C%E7%BD%91%E5%9D%80-19869481847
https://3g.163.com/dy/article/%E6%96%B0%E7%99%BE%E8%83%9C%E5%85%AC%E5%8F%B8%E6%B3%A8%E5%86%8C%E7%BD%91%E5%9D%80-19869481847
https://3g.163.com/dy/article/%E6%96%B0%E7%99%BE%E8%83%9C%E5%85%AC%E5%8F%B8%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F-19869481847
https://3g.163.com/dy/article/%E6%96%B0%E7%99%BE%E8%83%9C%E5%85%AC%E5%8F%B8%E5%AE%A2%E6%9C%8D%E7%94%B5%E8%AF%9D-19869481847
https://3g.163.com/dy/article/%E6%96%B0%E7%99%BE%E8%83%9C%E5%85%AC%E5%8F%B8%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F-19869481847
https://3g.163.com/dy/article/%E6%96%B0%E7%99%BE%E8%83%9C%E5%A8%B1%E4%B9%90%E6%B8%B8%E6%88%8F%E9%93%BE%E6%8E%A5-19869481847
https://3g.163.com/dy/article/%E6%96%B0%E7%99%BE%E8%83%9C%E5%A8%B1%E4%B9%90%E6%B8%B8%E6%88%8F%E9%93%BE%E6%8E%A5-19869481847
https://3g.163.com/dy/article/%E6%96%B0%E7%99%BE%E8%83%9C%E5%A8%B1%E4%B9%90%E6%B3%A8%E5%86%8C%E5%AE%98%E7%BD%91-19869481847
https://3g.163.com/dy/article/%E6%96%B0%E7%99%BE%E8%83%9C%E5%A8%B1%E4%B9%90%E6%B3%A8%E5%86%8C%E5%AE%98%E7%BD%91-19869481847
https://3g.163.com/dy/article/%E6%96%B0%E7%99%BE%E8%83%9C%E5%A8%B1%E4%B9%90%E6%B8%B8%E6%88%8F%E7%BD%91%E5%9D%80-19869481847
https://3g.163.com/dy/article/%E6%96%B0%E7%99%BE%E8%83%9C%E5%A8%B1%E4%B9%90%E4%B8%8A%E4%B8%8B%E5%88%86-19869481847
https://3g.163.com/dy/article/%E6%96%B0%E7%99%BE%E8%83%9C%E5%A8%B1%E4%B9%90%E4%B8%8A%E4%B8%8B%E5%88%86-19869481847
https://3g.163.com/dy/article/%E6%96%B0%E7%99%BE%E8%83%9C%E5%A8%B1%E4%B9%90%E6%80%8E%E4%B9%88%E8%81%94%E7%B3%BB-19869481847
https://3g.163.com/dy/article/%E6%96%B0%E7%99%BE%E8%83%9C%E5%A8%B1%E4%B9%90%E6%80%8E%E4%B9%88%E8%81%94%E7%B3%BB-19869481847
https://3g.163.com/dy/article/%E6%96%B0%E7%99%BE%E8%83%9C%E5%A8%B1%E4%B9%90%E5%AE%A2%E6%9C%8D-19869481847
https://3g.163.com/dy/article/%E6%96%B0%E7%99%BE%E8%83%9C%E5%A8%B1%E4%B9%90%E6%B3%A8%E5%86%8C%E7%BD%91%E5%9D%80-19869481847
https://www.163.com/search?keyword=%E6%96%B0%E7%99%BE%E8%83%9C%E5%A8%B1%E4%B9%90%E5%AE%A2%E6%9C%8D%E7%94%B5%E8%AF%9D-19869481847
https://www.163.com/search?keyword=%E9%93%B6%E9%92%BB%E5%A8%B1%E4%B9%90%E6%80%8E%E4%B9%88%E8%81%94%E7%B3%BB-19869481847
https://www.163.com/search?keyword=%E9%93%B6%E9%92%BB%E5%A8%B1%E4%B9%90%E4%B8%8A%E4%B8%8B%E5%88%86-19869481847
https://www.163.com/search?keyword=%E9%93%B6%E9%92%BB%E5%A8%B1%E4%B9%90%E6%B8%B8%E6%88%8F%E9%93%BE%E6%8E%A5-19869481847
https://www.163.com/search?keyword=%E6%96%B0%E7%99%BE%E8%83%9C%E5%A8%B1%E4%B9%90%E5%AE%A2%E6%9C%8D-19869481847
https://www.163.com/search?keyword=%E9%93%B6%E9%92%BB%E5%A8%B1%E4%B9%90%E6%B3%A8%E5%86%8C%E5%AE%98%E7%BD%91-19869481847
https://www.163.com/search?keyword=%E9%93%B6%E9%92%BB%E5%A8%B1%E4%B9%90%E4%B8%8A%E4%B8%8B%E5%88%86-19869481847
https://www.163.com/search?keyword=%E6%96%B0%E7%99%BE%E8%83%9C%E5%A8%B1%E4%B9%90%E6%B8%B8%E6%88%8F%E7%BD%91%E5%9D%80-19869481847
https://www.163.com/search?keyword=%E6%96%B0%E7%99%BE%E8%83%9C%E5%A8%B1%E4%B9%90%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F-19869481847
https://3g.163.com/dy/article/%E9%93%B6%E9%92%BB%E5%A8%B1%E4%B9%90%E5%AE%A2%E6%9C%8D%E7%94%B5%E8%AF%9D-19869481847
https://www.163.com/search?keyword=%E9%93%B6%E9%92%BB%E5%A8%B1%E4%B9%90%E6%B8%B8%E6%88%8F%E7%BD%91%E5%9D%80-19869481847
https://www.163.com/search?keyword=%E9%93%B6%E9%92%BB%E5%A8%B1%E4%B9%90%E6%80%8E%E4%B9%88%E8%81%94%E7%B3%BB-19869481847
https://www.163.com/search?keyword=%E9%93%B6%E9%92%BB%E5%A8%B1%E4%B9%90%E6%B8%B8%E6%88%8F%E7%BD%91%E5%9D%80-19869481847
https://www.163.com/search?keyword=%E9%93%B6%E9%92%BB%E5%A8%B1%E4%B9%90%E6%B3%A8%E5%86%8C%E5%AE%98%E7%BD%91-19869481847
https://www.163.com/search?keyword=%E9%93%B6%E9%92%BB%E5%A8%B1%E4%B9%90%E6%B8%B8%E6%88%8F%E9%93%BE%E6%8E%A5-19869481847
https://www.163.com/search?keyword=%E6%96%B0%E7%99%BE%E8%83%9C%E5%A8%B1%E4%B9%90%E5%AE%A2%E6%9C%8D%E7%94%B5%E8%AF%9D-19869481847
https://www.163.com/search?keyword=%E6%96%B0%E7%99%BE%E8%83%9C%E5%A8%B1%E4%B9%90%E6%B3%A8%E5%86%8C%E7%BD%91%E5%9D%80-19869481847
https://www.163.com/search?keyword=%E9%93%B6%E9%92%BB%E5%A8%B1%E4%B9%90%E5%AE%A2%E6%9C%8D-19869481847
https://www.163.com/search?keyword=%E9%93%B6%E9%92%BB%E5%A8%B1%E4%B9%90%E6%B3%A8%E5%86%8C%E7%BD%91%E5%9D%80-19869481847
https://www.163.com/search?keyword=%E9%93%B6%E9%92%BB%E5%A8%B1%E4%B9%90%E5%AE%A2%E6%9C%8D-19869481847
https://www.163.com/search?keyword=%E8%85%BE%E9%BE%99%E5%85%AC%E5%8F%B8%E6%B8%B8%E6%88%8F%E9%93%BE%E6%8E%A5-19869481847
https://3g.163.com/dy/article/%E8%85%BE%E9%BE%99%E5%85%AC%E5%8F%B8%E6%B8%B8%E6%88%8F%E7%BD%91%E5%9D%80-19869481847
https://3g.163.com/dy/article/%E8%85%BE%E9%BE%99%E5%85%AC%E5%8F%B8%E6%B8%B8%E6%88%8F%E7%BD%91%E5%9D%80-19869481847
https://3g.163.com/dy/article/%E8%85%BE%E9%BE%99%E5%85%AC%E5%8F%B8%E4%B8%8A%E4%B8%8B%E5%88%86-19869481847
https://3g.163.com/dy/article/%E8%85%BE%E9%BE%99%E5%85%AC%E5%8F%B8%E4%B8%8A%E4%B8%8B%E5%88%86-19869481847
https://3g.163.com/dy/article/%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E6%80%8E%E4%B9%88%E8%81%94%E7%B3%BB-19869481847
https://3g.163.com/dy/article/%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E6%80%8E%E4%B9%88%E8%81%94%E7%B3%BB-19869481847
https://www.163.com/search?keyword=%E9%93%B6%E9%92%BB%E5%A8%B1%E4%B9%90%E6%B3%A8%E5%86%8C%E7%BD%91%E5%9D%80-19869481847
https://www.163.com/search?keyword=%E8%85%BE%E9%BE%99%E5%85%AC%E5%8F%B8%E6%B3%A8%E5%86%8C%E5%AE%98%E7%BD%91-19869481847
https://3g.163.com/dy/article/%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F-19869481847
https://3g.163.com/dy/article/%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F-19869481847
https://www.163.com/search?keyword=%E6%96%B0%E7%99%BE%E8%83%9C%E5%A8%B1%E4%B9%90%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F-19869481847
https://www.163.com/search?keyword=%E9%93%B6%E9%92%BB%E5%A8%B1%E4%B9%90%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F-19869481847
https://3g.163.com/dy/article/%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E6%B8%B8%E6%88%8F%E5%AE%98%E7%BD%91-19869481847
https://3g.163.com/dy/article/%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E6%B8%B8%E6%88%8F%E5%AE%98%E7%BD%91-19869481847
https://www.163.com/search?keyword=%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E6%B3%A8%E5%86%8C%E7%BD%91%E5%9D%80-19869481847
https://www.163.com/search?keyword=%E8%85%BE%E9%BE%99%E5%85%AC%E5%8F%B8%E6%B3%A8%E5%86%8C%E5%AE%98%E7%BD%91-19869481847
https://www.163.com/search?keyword=%E9%93%B6%E9%92%BB%E5%A8%B1%E4%B9%90%E5%AE%A2%E6%9C%8D%E7%94%B5%E8%AF%9D-19869481847
https://3g.163.com/dy/article/%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C-19869481847
https://3g.163.com/dy/article/%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C-19869481847
https://3g.163.com/dy/article/%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E6%B3%A8%E5%86%8C%E7%BD%91%E5%9D%80-19869481847
https://3g.163.com/dy/article/%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E6%B8%B8%E6%88%8F%E4%B8%8B%E8%BD%BD%E9%93%BE%E6%8E%A5-19869481847
https://www.163.com/search?keyword=%E8%85%BE%E9%BE%99%E5%85%AC%E5%8F%B8%E6%B8%B8%E6%88%8F%E9%93%BE%E6%8E%A5-19869481847
https://3g.163.com/dy/article/%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85app%E4%B8%8B%E8%BD%BD-19869481847
https://3g.163.com/dy/article/%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85app%E4%B8%8B%E8%BD%BD-19869481847
https://www.163.com/search?keyword=%E8%85%BE%E9%BE%99%E5%85%AC%E5%8F%B8%E6%80%8E%E4%B9%88%E8%81%94%E7%B3%BB-19869481847
https://www.163.com/search?keyword=%E8%85%BE%E9%BE%99%E5%85%AC%E5%8F%B8%E6%80%8E%E4%B9%88%E8%81%94%E7%B3%BB-19869481847
https://www.163.com/search?keyword=%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E6%B8%B8%E6%88%8F%E4%B8%8B%E8%BD%BD%E9%93%BE%E6%8E%A5-19869481847
https://3g.163.com/dy/article/%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E8%B4%9F%E8%B4%A3%E4%BA%BA-19869481847
https://3g.163.com/dy/article/%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E8%B4%9F%E8%B4%A3%E4%BA%BA-19869481847
https://www.163.com/search?keyword=%E9%93%B6%E9%92%BB%E5%A8%B1%E4%B9%90%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F-19869481847
https://3g.163.com/dy/article/%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E7%BD%91%E7%AB%99-19869481847
https://www.163.com/search?keyword=%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E7%BD%91%E5%9D%80-19869481847
https://www.163.com/search?keyword=%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E7%94%B5%E8%84%91%E7%BD%91%E5%9D%80-19869481847
https://www.163.com/search?keyword=%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E6%B8%B8%E6%88%8F%E6%B3%A8%E5%86%8C-19869481847
https://www.163.com/search?keyword=%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E7%BD%91%E5%9D%80-19869481847
https://3g.163.com/dy/article/%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E7%94%B5%E8%84%91%E7%BD%91%E5%9D%80-19869481847
https://www.163.com/search?keyword=%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E7%BB%8F%E7%90%86%E5%BE%AE%E4%BF%A1-19869481847
https://www.163.com/search?keyword=%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E7%BB%8F%E7%90%86%E5%BE%AE%E4%BF%A1-19869481847
https://www.163.com/search?keyword=%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E7%BD%91%E7%AB%99-19869481847
https://www.163.com/search?keyword=%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E6%B8%B8%E6%88%8F%E6%B3%A8%E5%86%8C-19869481847
https://www.163.com/search?keyword=%E8%80%81%E8%A1%97%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E6%80%8E%E4%B9%88%E8%81%94%E7%B3%BB-19869481847
https://www.163.com/search?keyword=%E8%80%81%E8%A1%97%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E6%80%8E%E4%B9%88%E8%81%94%E7%B3%BB-19869481847
https://www.163.com/search?keyword=%E8%80%81%E8%A1%97%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C-19869481847
https://www.163.com/search?keyword=%E8%80%81%E8%A1%97%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E6%B3%A8%E5%86%8C%E7%BD%91%E5%9D%80-19869481847
https://www.163.com/search?keyword=%E8%80%81%E8%A1%97%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C-19869481847
https://www.163.com/search?keyword=%E8%80%81%E8%A1%97%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E6%B3%A8%E5%86%8C%E7%BD%91%E5%9D%80-19869481847
https://www.163.com/search?keyword=%E8%80%81%E8%A1%97%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F-19869481847
https://www.163.com/search?keyword=%E8%80%81%E8%A1%97%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E6%B8%B8%E6%88%8F%E5%AE%98%E7%BD%91-19869481847
https://www.163.com/search?keyword=%E8%80%81%E8%A1%97%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F-19869481847
https://www.163.com/search?keyword=%E8%80%81%E8%A1%97%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E6%B8%B8%E6%88%8F%E5%AE%98%E7%BD%91-19869481847
https://3g.163.com/dy/article/%E8%80%81%E8%A1%97%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E6%B8%B8%E6%88%8F%E4%B8%8B%E8%BD%BD%E9%93%BE%E6%8E%A5-19869481847
https://3g.163.com/dy/article/%E8%80%81%E8%A1%97%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E6%B8%B8%E6%88%8F%E4%B8%8B%E8%BD%BD%E9%93%BE%E6%8E%A5-19869481847
https://3g.163.com/dy/article/%E8%80%81%E8%A1%97%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85app%E4%B8%8B%E8%BD%BD-19869481847
https://3g.163.com/dy/article/%E8%80%81%E8%A1%97%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85app%E4%B8%8B%E8%BD%BD-19869481847
https://3g.163.com/dy/article/%E8%80%81%E8%A1%97%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E7%BB%8F%E7%90%86%E5%BE%AE%E4%BF%A1-19869481847
https://3g.163.com/dy/article/%E8%80%81%E8%A1%97%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E7%BB%8F%E7%90%86%E5%BE%AE%E4%BF%A1-19869481847
https://3g.163.com/dy/article/%E8%80%81%E8%A1%97%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E7%BD%91%E5%9D%80-19869481847
https://www.163.com/search?keyword=%E8%80%81%E8%A1%97%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E7%BD%91%E5%9D%80-19869481847
https://3g.163.com/dy/article/%E8%80%81%E8%A1%97%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E6%B8%B8%E6%88%8F%E6%B3%A8%E5%86%8C-19869481847
https://3g.163.com/dy/article/%E8%80%81%E8%A1%97%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E6%B8%B8%E6%88%8F%E6%B3%A8%E5%86%8C-19869481847
https://3g.163.com/dy/article/%E8%80%81%E8%A1%97%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E7%BD%91%E7%AB%99-19869481847
https://3g.163.com/dy/article/%E8%80%81%E8%A1%97%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E7%94%B5%E8%84%91%E7%BD%91%E5%9D%80-19869481847
https://3g.163.com/dy/article/%E8%80%81%E8%A1%97%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E7%94%B5%E8%84%91%E7%BD%91%E5%9D%80-19869481847
https://3g.163.com/dy/article/%E8%80%81%E8%A1%97%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E7%BD%91%E7%AB%99-19869481847
https://3g.163.com/dy/article/%E8%85%BE%E9%BE%99%E5%85%AC%E5%8F%B8%E5%AE%A2%E6%9C%8D%E7%94%B5%E8%AF%9D-19869481847
https://3g.163.com/dy/article/%E8%85%BE%E9%BE%99%E5%85%AC%E5%8F%B8%E6%B3%A8%E5%86%8C%E7%B