一、Python和其他语言对比

C语言最接近机器语言,因此运行效率是最高的,但需要编译。

JAVA更适合企业应用。

PHP适合WEB页面应用。

PYTHON语言更加简洁,丰富的类库,使初学者更易实现应用开发,但运行速度不如其他语言。

高级语言都是通过各自的解释器,将代码编译成字节码,再将字节码编译成机器码。

二、Python种类

CPython:用C语言实现的Python解释器

执行过程:代码 -> C字节码 -> 机器码 (一行一行编译)

JPython:用JAVA实现的Python解释器

IronPython:用.NET实现的Python解释器

执行过程:代码 -> 其他字节码 -> 机器码

PyPy:用Python实现的Python解释器

执行过程:代码 -> C字节码 -> 机器码 全部转换完 -> 执行

三、Python基础

1.IDE工具

PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制。此外,该IDE提供了一些高级功能,以用于支持Django框架下的专业Web开发。

简单设置

(1)设置编码UTF-8

(2)设置模板temp

(3)设置鼠标滚动放大

2.编码

以下链接已经详细描述了各种编码

http://www.china-bigcloud.online/2017/04/11/字符集编码/

需要注意:

中文字符——utf-8,需要使用三个字节来表示 24位

gbk,gbk2312 需要使用二个字节来表示 16位

Python编码

python3默认编码方式是UTF-8

文件编码 # -- coding:utf-8 --

解释器编码

3.注释

(1)# 单行注释

(2)""" """ 多行注释

(3)IDE中使用ctrl+?注释代码

4. .pyc文件

由py文件经过编译后二进制文件,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,是由python的虚拟机来执行的。pyc的内容,是跟python的版本相关的,不同版本编译后的pyc文件是不同的,2.5编译的pyc文件,2.4版本的 python是无法执行的。pyc文件也是可以反编译的,不同版本编译后的pyc文件是不同。

pyc文件是用来保存python虚拟机编译生成的byte code的。在python的运行过程中,如果遇到import首先在设定好的path中寻找对应的.pyc或者.dll文件。如果没有这些文件,则编译成对应的PycodeObject并穿件.pyc文件写入中间结果。

5.变量
  • 字母
  • 数字(不能开头)
  • 下划线
  • 不能使用python内置关键字
  • 变量命名时,名字要有可读性,一般以下划线分割,如user_id
6.输入,输出

(1)input

  1. v = input("请输入:")
  1. 运行结果:
  2. 请输入:abc

(2)getpass

从终端输入一行字符串,关闭了回显(输入时不显示输入的字符串),适用于用密码的输入

  1. import getpass
  2. v = getpass.getpass('请输入:')
  3. print(v)

此方法只在终端测试时有效,在IDE测试时无效

  1. 运行结果:
  2. C:\Python35\python.exe E:\s17\day01-0423\test.py
  3. 请输入:
  4. asdgajlksd

(3)print

  1. v = "你好,This is 5!"
  2. print(v)
  1. 运行结果:
  2. 你好,This is 5
7.条件语句

(1)形式1

if 条件:

成功走这里

else:

失败走着

示例:

  1. import getpass
  2. name = input("请输入姓名:")
  3. pwd = getpass.getpass('请输入密码:')
  4. if name == 'xiaoda' and pwd == '123456':
  5. print(pwd)
  6. print('欢迎登陆')
  7. else:
  8. print(pwd)
  9. print('退出')
  1. 运行结果:
  2. C:\Python35\python.exe E:\s17\day01-0423\test.py
  3. 请输入姓名:xiaoda
  4. 请输入密码:
  5. 346134
  6. 退出
  7. C:\Python35\python.exe E:\s17\day01-0423\test.py
  8. 请输入姓名:xiaoda
  9. 请输入密码:
  10. 123456
  11. 欢迎登陆

(2)形式2

if 条件:

...

elif 条件:

...

else:

...

示例:

  1. username = input('>>>')
  2. if username == 'alex':
  3. print('普通管理')
  4. elif username == 'oldboy':
  5. print('超级管理')
  6. elif username == '郭少龙':
  7. print('人')
  8. elif username == '刘一':
  9. print('装逼犯')
  10. else:
  11. print('再见...')
  12. print('end')
  1. 运行结果:
  2. 请输入姓名:达达
  3. 超级管理
  4. end
  5. 请输入姓名:xiaoda
  6. 帅哥
  7. end
  8. 请输入姓名:武总
  9. 再见...
  10. end
8.循环语句

while 条件:

continue # 立即开始下次循环

break # 跳出所有循环

示例:

  1. 练习1:使用while循环输出1 2 3 4 5 6 8 9 10
  2. i = 1
  3. while True:
  4. if i == 7:
  5. i = i + 1
  6. continue
  7. print(i)
  8. i = i + 1
  9. if i == 11:
  10. break
  1. 运行结果:
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 8
  9. 9
  10. 10
  1. 练习2:求1-100的所有数的和
  2. value = 0
  3. i = 1
  4. while i < 101:
  5. value = value + i
  6. i = i + 1
  7. print(value)
  1. 运行结果:
  2. 5050
  1. 练习3:输出 1-10 内的所有奇数
  2. i = 1
  3. while i < 11:
  4. a = i % 2
  5. if a == 1:
  6. print(i)
  7. i = i + 1
  1. 运行结果:
  2. 1
  3. 3
  4. 5
  5. 7
  6. 9
  1. 练习4:输出 1-10 内的所有偶数
  2. i = 1
  3. while i < 11:
  4. a = i % 2
  5. if a == 0:
  6. print(i)
  7. i = i + 1
  1. 运行结果:
  2. 2
  3. 4
  4. 6
  5. 8
  6. 10
  1. 练习5:求1-2+3-4+5 ... 99的所有数的和
  2. value = 0
  3. i = 1
  4. while i < 100:
  5. if i % 2 == 1: #奇数
  6. value = value + i
  7. i += 1
  8. else: #偶数
  9. value = value - i
  10. i += 1
  11. print(value)
  1. 运行结果:
  2. 50
  1. 练习6:用户登陆(三次机会重试)
  2. i = 0
  3. while i < 3:
  4. username = input('请输入姓名:')
  5. pwd = input('请输入密码:')
  6. if username == 'xiaoda' and pwd == '123123':
  7. print('登录成功')
  8. break
  9. else:
  10. print('用户名或密码错误,请重新输入。')
  11. i += 1
  12. else:
  13. print('您已输入错误3次,请核对后重试。')
  1. 运行结果:
  2. 请输入姓名:dog
  3. 请输入密码:1234
  4. 用户名或密码错误,请重新输入。
  5. 请输入姓名:cat
  6. 请输入密码:123456
  7. 用户名或密码错误,请重新输入。
  8. 请输入姓名:mouse
  9. 请输入密码:123123
  10. 用户名或密码错误,请重新输入。
  11. 您已输入错误3次,请核对后重试。
  12. 请输入姓名:xiaoda
  13. 请输入密码:123123
  14. 登录成功
9.运算符

(1)算术运算符

运算符 描述 实例
+ 加 - 两个对象相加 a + b 输出结果 30
- 减 - 得到负数或是一个数减去另一个数 a - b 输出结果 -10
* 乘 - 两个数相乘或是返回一个被重复若干次的字符串 a * b 输出结果 200
/ 除 - x除以y b / a 输出结果 2
% 取模 - 返回除法的余数 b % a 输出结果 0
** 幂 - 返回x的y次幂 a**b 为10的20次方, 输出结果 100000000000000000000
// 取整除 - 返回商的整数部分 9//2 输出结果 4 , 9.0//2.0 输出结果 4.0

(2)比较运算符

运算符 描述 实例
== 等于 - 比较对象是否相等 (a == b) 返回 False。
!= 不等于 - 比较两个对象是否不相等 (a != b) 返回 true.
<> 不等于 - 比较两个对象是否不相等 (a <> b) 返回 true。这个运算符类似 != 。
> 大于 - 返回x是否大于y (a > b) 返回 False。
< 小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。 (a < b) 返回 true。
>= 大于等于 - 返回x是否大于等于y。 (a >= b) 返回 False。
<= 小于等于 - 返回x是否小于等于y。 (a <= b) 返回 true。

(3)赋值运算符

运算符 描述 实例
= 简单的赋值运算符 c = a + b 将 a + b 的运算结果赋值为 c
+= 加法赋值运算符 c += a 等效于 c = c + a
-= 减法赋值运算符 c -= a 等效于 c = c - a
*= 乘法赋值运算符 c *= a 等效于 c = c * a
/= 除法赋值运算符 c /= a 等效于 c = c / a
%= 取模赋值运算符 c %= a 等效于 c = c % a
**= 幂赋值运算符 c **= a 等效于 c = c ** a
//= 取整除赋值运算符 c //= a 等效于 c = c // a

(4)位运算符

运算符 描述 实例
& 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 (a & b) 输出结果 12 ,二进制解释: 0000 1100
/ 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。 (a / b) 输出结果 61 ,二进制解释: 0011 1101
^ 按位异或运算符:当两对应的二进位相异时,结果为1 (a ^ b) 输出结果 49 ,二进制解释: 0011 0001
~ 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 (~a ) 输出结果 -61 ,二进制解释: 1100 0011, 在一个有符号二进制数的补码形式。
<< 左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。 a << 2 输出结果 240 ,二进制解释: 1111 0000
>> 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数 a >> 2 输出结果 15 ,二进制解释: 0000 1111

(5)逻辑运算符

运算符 逻辑表达式 描述 实例
and x and y 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 (a and b) 返回 20。
or x or y 布尔"或" - 如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值。 (a or b) 返回 10。
not not x 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 not(a and b) 返回 False

(6)成员运算符

运算符 描述 实例
in 如果在指定的序列中找到值返回 True,否则返回 False。 x 在 y 序列中 , 如果 x 在 y 序列中返回 True。
not in 如果在指定的序列中没有找到值返回 True,否则返回 False。 x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。

(7)身份运算符

运算符 描述 实例
is is是判断两个标识符是不是引用自一个对象 x is y, 如果 id(x) 等于 id(y) , is 返回结果 1
is not is not是判断两个标识符是不是引用自不同对象 x is not y, 如果 id(x) 不等于 id(y). is not 返回结果 1

(8)运算符优先级

运算符 描述
** 指数 (最高优先级)
~ + - 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
* / % // 乘,除,取模和取整除
+ - 加法减法
>> << 右移,左移运算符
& 位 'AND'
^ / 位运算符
<= < > >= 比较运算符
<> == != 等于运算符
= %= /= //= -= += *= **= 赋值运算符
is is not 身份运算符
in not in 成员运算符
not or and 逻辑运算符
  1. 注意:
  2. a.
  3. i += 1
  4. b.
  5. if 1 == 1 or 1 > 2 and 1 == 4:
  6. print('正确')
  7. else:
  8. print('错误')
  9. 运行结果:
  10. 正确
  11. 注意:同为逻辑判断没有优先级,自左向右,符合条件即为真
  12. c.
  13. content = "Alex 前几天去泰国玩姑娘,一不小心染上了病,他的内心活动是,真该多来几个"
  14. if "前几天去" in content:
  15. print('包含敏感字符')
  16. else:
  17. print(content)
  18. 运行结果:
  19. 包含敏感字符
10.Python数据类型
(1) 整数 int
  • 创建

    a = 123

    a = int(123)
  • 转换

    age = "18"

    new_age = int(age)
(2) 布尔值
  • 创建

    a = True

    b = False
  • 转换
    • 数字转换,只有0是False,其他True
    • 字符串, 只有""是False,其他True
    • 待续...
(3) 字符串
  • 创建

    a = "alex"

    a = str('alex')

  • 转换

    age = 19

    new_age = str(age)

  • 字符串的拼接

  1. name = 'alex'
  2. gender = '女'
  3. new_str = name + gender
  4. print(new_str)
  1. 运行结果:
  2. alex
  • 字符串格式化

    占位符
  1. name = '我叫李杰,性别:%s,我今年%s岁,我在说谎!'
  2. new_str = name %('男',19,)
  3. print(new_str)
  1. 运行结果:
  2. 我叫李杰,性别:男,我今年19岁,我在说谎!
  1. name = '我叫李杰,性别:%s,我今年%s岁,我在说谎!' %('男',19,)
  2. print(name)
  1. 运行结果:
  2. 我叫李杰,性别:男,我今年19岁,我在说谎!
  • 判断子序列是否在其中
  1. content = "Alex 前几天去泰国玩姑娘,一不小心染上了病,他的内心活动是,真该多来几个"
  2. if "前几天去" in content:
  3. print('包含敏感字符')
  4. else:
  5. print(content)
  • 移除空白
  1. val = " alex "
  2. print(val)
  3. new_val = val.strip() # 左右
  4. print(new_val)
  5. new_val = val.lstrip()# 左边
  6. print(new_val)
  7. new_val = val.rstrip() # 右边
  8. print(new_val)
  1. 运行结果:
  2. alex
  3. alex
  4. alex
  5. alex
  • 分割
  1. user_info = "alex|sb123|9"
  2. v = user_info.split('|')
  3. print(v)
  4. v = user_info.split('|',1)
  5. print(v)
  6. v = user_info.rsplit(' ',1)
  7. print(v)
  1. 运行结果:
  2. ['alex', 'sb123', '9']
  3. ['alex', 'sb123|9']
  4. ['alex|sb123|9']
  • 长度(字符)
  1. val = "李杰nb"
  2. v = len(val)
  3. print(v)
  1. 运行结果:
  2. 4
  • 索引
  1. val = "李杰nb"
  2. v = val[0]
  3. print(v)
  1. 运行结果:

  1. val = input('请输入:')
  2. i = 0
  3. while i < len(val):
  4. print(val[i])
  5. i += 1
  1. 运行结果:
  2. 请输入:啥空间大概xck23





  3. x
  4. c
  5. k
  6. 2
  7. 3
  • 切片
  1. name = '我叫李杰,性别我今年岁,我在说谎!'
  2. print(name[0])
  3. print(name[0:2])
  4. print(name[5:9])
  5. print(name[5:])
  6. print(name[5:-2])
  7. print(name[-2:])
  1. 运行结果:

  2. 我叫
  3. 性别我今
  4. 性别我今年岁,我在说谎!
  5. 性别我今年岁,我在说
  6. 谎!
(4) 列表
  • 创建:

    a = ['alex','狗','eric',123]

    a = list(['alex','狗','eric',123])

  • in判断:

  1. if 'al' in a:
  2. pass
  1. if 'al' in a[0]:
  2. pass
  • 索引:
  1. val = a[0]
  • 长度:
  1. val = len(a)
  • 切片:
  1. a = ['alex','狗','eric',123]
  2. v = a[0::2]
  3. print(v)
  • 追加:
  1. a = ['alex','狗','eric',123]
  2. a.append('xxoo')
  3. print(a)
  1. 运行结果:
  2. ['alex', '狗', 'eric', 123, 'xxoo']
  • 插入:
  1. a = ['alex','狗','eric',123]
  2. a.insert(1,'牛')
  3. print(a)
  1. 运行结果:
  2. ['alex', '牛', '狗', 'eric', 123]
  • 删除:
  1. a = ['alex','eric','狗','eric',123]
  2. a.remove('eric')
  3. print(a)
  4. del a[1]
  5. print(a)
  1. 运行结果:
  2. ['alex', '狗', 'eric', 123]
  3. ['alex', 'eric', 123]
  • 更新:
  1. a = ['alex','eric','狗','eric',123]
  2. a[1] = '阿斯顿发送到'
  3. print(a)
  1. 运行结果:
  2. ['alex', 'eric', '阿斯顿发送到', 'eric', 123]
  • For循环:
  1. a = ['alex','eric','狗','eric',123]
  2. for item in a:
  3. print(item)
  4. # break
  5. # continue
  1. 运行结果:
  2. alex
  3. eric

  4. eric
  5. 123
(5) 字典操作
  • 创建
  1. v = {
  2. 'name': 'alex',
  3. 'password': '123123'
  4. }
  • 索引获取值
  1. n = v['name']
  2. print(n)
  • 无数据时为增加;有数据时为修改

    1. v['age'] = 19
    2. print(v)
  • 删除

    1. del v['name']
    2. print(v)
  • 循环

    1. for item in v.keys():
    2. print(item)
    3. for item in v.values():
    4. print(item)
    5. for key,val in v.items():
    6. print(key,val)
  • 长度

  1. print(len(user_dict))
  1. 以上操作运行结果:
  2. alex
  3. {'age': 19, 'password': '123123', 'name': 'alex'}
  4. {'password': '123123', 'age': 19}
  5. password
  6. age
  7. 123123
  8. 19
  9. password 123123
  10. age 19
  11. 2
  • 相互嵌套
  1. user_dict = {
  2. 'k1': 'v1',
  3. 'k2': {'kk1':'vv1','kk2':'vv2'},
  4. 'k3': 123,
  5. 'k4': ['alex','eric',['a','b','c'],'李杰',{'k11':'vv1'}],
  6. }
  7. user_dict['k4'][2].append('123')
  8. user_dict['k4'][4]['n'] = '过啥龙'
  1. 运行结果:
  2. {'k1': 'v1', 'k4': ['alex', 'eric', ['a', 'b', 'c', '123'], '李杰', {'k11': 'vv1'}], 'k3': 123, 'k2': {'kk2': 'vv2', 'kk1': 'vv1'}}
  3. {'k1': 'v1', 'k4': ['alex', 'eric', ['a', 'b', 'c', '123'], '李杰', {'n': '过啥龙', 'k11': 'vv1'}], 'k3': 123, 'k2': {'kk2': 'vv2', 'kk1': 'vv1'}}

示例1:

  1. user_list = [
  2. {'name':'alex','pwd':'123123','times':1},
  3. {'name':'eric','pwd':'123123','times':1},
  4. {'name':'tony','pwd':'123123','times':1},
  5. ]
  6. user = input('用户名:')
  7. pwd = input('密码:')
  8. for item in user_list:
  9. if user == item['name'] and pwd == item['pwd']:
  10. print('登录成功')
  11. break
  1. 运行结果:
  2. 用户名:eric
  3. 密码:123123
  4. 登录成功

示例2:

读取文件,重新赋值

(1)创建一个普通文件

  1. db
  2. alex|123123|3
  3. eric|123123|3

(2)读取文件,根据条件,重新赋值

  1. login.py
  2. #!/usr/bin/python
  3. # -*- coding:utf-8 -*-
  4. # 1. 打开并读取文件内容
  5. f1 = open('db','r')
  6. data = f1.read()
  7. f1.close()
  8. # 2. 格式化,列表中嵌套字典
  9. print(data)
  10. user_info_list = []
  11. user_str_list = data.split('\n')
  12. for item in user_str_list:
  13. temp = item.split('|')
  14. v = {
  15. 'name': temp[0],
  16. 'pwd': temp[1],
  17. 'times': temp[2]
  18. }
  19. user_info_list.append(v)
  20. user_info_list[1]['times'] = 3
  21. print(user_info_list)
  22. # 3. 列表中嵌套的字典
  23. #
  24. # 4. 重新写入文件
  25. target = """alex|123123|3\neric|123123|3"""
  26. f2 = open('db','w')
  27. f2.write(target)
  28. f2.close()

Python编程-编码、变量、数据类型的更多相关文章

  1. python编程之变量和简单的数据结构

    一.变量 前面我们用python输出了“hello world!” 这次我们在前面加入一行,定义一个变量,然后修改第二行. 添加变量导致Python解释器需要做更多工作.处理第1行代码时,它将文本“H ...

  2. Python编程-编码、文件处理、函数

    一.字符编码补充知识点 1.文本编辑器存取文件的原理(nodepad++,pycharm,word) 打开编辑器就打开了启动了一个进程,是在内存中的,所以在编辑器编写的内容也都是存放与内存中的,断电后 ...

  3. python基础知识 变量 数据类型 if判断

    cpu 内存 硬盘 操作系统 cpu:计算机的运算和计算中心,相当于人类的大脑 飞机 内存:暂时存储一些数据,临时加载数据和应用程序 4G 8G 16G 32G 速度快,高铁 断电即消失 造价高 硬盘 ...

  4. Python基础编程:字符编码、数据类型、列表

    目录: python简介 字符编码介绍 数据类型 一.Python简介 Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心 ...

  5. python笔记二(数据类型和变量、编码方式、字符串的编码、字符串的格式化)

    一.数据类型 python可以直接处理的数据类型有:整数.浮点数.字符串.布尔值.空值. 整数 浮点数 字符串:双引号内嵌套单引号,可以输出 i'm ok. 也可以用\来实现,\n 换行 \t tab ...

  6. Python编程从入门到实践笔记——变量和简单数据类型

    Python编程从入门到实践笔记——变量和简单数据类型 #coding=gbk #变量 message_1 = 'aAa fff' message_2 = 'hart' message_3 = &qu ...

  7. Python编程笔记二进制、字符编码、数据类型

    Python编程笔记二进制.字符编码.数据类型 一.二进制 bin() 在python中可以用bin()内置函数获取一个十进制的数的二进制 计算机容量单位 8bit = 1 bytes 字节,最小的存 ...

  8. 第2章 Python编程基础知识 第2.1节 简单的Python数据类型、变量赋值及输入输出

    第三节 简单的Python数据类型.变量赋值及输入输出 Python是一门解释性语言,它的执行依赖于Python提供的执行环境,前面一章介绍了Python环境安装.WINDOWS系列Python编辑和 ...

  9. Python编程:从入门到实践—变量和简单数据类型

    变量的命名和使用 #!/usr/bin/env python# -*- encoding:utf-8 -*- message ="Hello Python world!"print ...

随机推荐

  1. java 读取world的图片 并把图片路径存入数据库

    package World; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundExcep ...

  2. 005 android jni 一个简单的报错

    在android中使用ndk开发需要使用到jni. 1. java.lang.UnsatisfiedLinkError: No implementation found for void com.fr ...

  3. codeforces(559C)--C. Gerald and Giant Chess(组合数学)

    C. Gerald and Giant Chess time limit per test 2 seconds memory limit per test 256 megabytes input st ...

  4. ubuntu12.04部署ROR

    刚开始部署这玩意是很折磨的,折腾吧. 确保使用最新版本的linux,否则成功率会大大降低,因为ruby开源社区对于ubuntu的支持总是不兼容旧版本的.笔者部署时的版本是ubuntu12.04 每次都 ...

  5. PostgreSQL tips

    tip 1 在sql中我们可以设置一个列自增长identity(1,1),但在postgresql中却没有这个关键字定义.但postgresql也有实现相关功能,那就是只需要将该列数据类型标记为ser ...

  6. Machine Learning第十周笔记:大规模机器学习

    博客已经迁移到Marcovaldo's blog (http://marcovaldong.github.io/) 刚刚完毕了Andrew Ng在Cousera上的Machine Learning的第 ...

  7. iOS学习笔记(二)——Hello iOS

    前面写了iOS开发环境搭建,只简单提了一下安装Xcode,这里再补充一下,点击下载Xcode的dmp文件,稍等片刻会有图一(拖拽Xcode至Applications)的提示,拖拽至Applicatio ...

  8. IIS配置(持续更新中...)

    本文暂时适用于IIS7.5. IIS配置文件路径:"C:\Windows\System32\inetsrv\config\applicationHost.config" 1.sta ...

  9. 使用EasyNVR无插件流媒体服务器接口和EasyPlayer.js播放器插件实现web网页H5播放无插件

    1.背景需求 很多客户在使用EasyNVR无插件流媒体服务器时,不喜欢产品化的界面,有时可能满足不了日常观看使用的需求.因此软件提供丰富的HTTP接口,供第三方平台调用集成.但是有时客户这边可能没有专 ...

  10. Js slice()方法和splice()方法

    1.slice(start,end) 从已有的数组中返回选定元素,参数start必填,end选填 <script> delArray(); function delArray(){ var ...