《Python程序设计》python常用的格式转换

#字典
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
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值