python3基础学习一

打印print()函数

  • R 主要的原因是为防止转义,保证r后面的内容全文输出
  • f “主要作用就是格式化字符串,加上f以后,{“变量/表达式”},花括号里的变量和表达式就可以使用了”
def ptSubstr():msg = "hello,world!"print(msg[0:-1]);print(msg[2:5]) #打印从第3个字符到第5个字符print("\n")   #打印空行print(msg[2:])  #打印从第3个字符开始后的所有字符print(r"-----\n") #字符串前面加r表示字符串不转义print(f"倒数第三个字符:{msg[-3:]}") #打印倒数3个字符

数据类型

在python中,每个数据类型都可以当做是对象,当赋值时,对象就被创建了

数据类型名称备注说明容量是否可变
Number数字int包含长整型,float,bool,complex(复数)
String字符串底层结构:序列
Tupe元组底层结构:序列
List列表底层结构:序列
Set集合是一个无序的不重复的无序元素序列
Dictionary字典类似于JSON串,由key:value组成

Number(数字)

python3支持int、float、bool、complex(f复数),它们都属于数字类型
在python3中,只有一种整型类型int,表示为长整型,没有python2中的long类型
内置的type()函数可以用来查询变量所指的对象类型
python3中,bool是int的子类,True和False可以和数字相加,True1、False0 会返回True,但可以通过is来判断类型

"""
Number类型
"""def ptNumberType():a,b,c,d = type(20),type(5.5),type(True),type(4+3j)  #在赋值时,Number对象就会被创建print(a,b,c,d)  # 通过打印,这些类型都是对象类型print(isinstance(20,int));   #打印对象a是否是int类型#打印数据类型
ptNumberType()def ptBool():res = issubclass(bool,int)  # bool类型是否是int的子类print(res)valEQ1 = (True ==1)print('valeq1:',valEQ1)    # True和1是否值相等valEQ2 = (False == 0)print("valeq2:",valEQ2)   # False和0是否值相等typeEQ1 = (1 is True)print("typeEQ1:",typeEQ1)  # 1和True的类型是否相等,is是来判断类型typeEQ2 = (0 is False)print("typeEQ2:",typeEQ2)  # 0和False的类型是否相等print(True + 1)     # bool类型和int类型值相加# 打印布尔类型的特性
ptBool()

销毁对象
def delObj():var1,var2 = 1,10    #赋值,创建对象print(var1,var2)del var1,var2   #删除对象
#print(var1,var2) #报错,因为对象var1,var2已经被删除了# 删除对象
delObj()

数值运算
def oprations():print('求和:', 1+2)print('减法:', 10.8-5)print('乘法:', 5*10)print('除法-浮点型:', 12/8)  # 除法,得到一个浮点数print('除法-整型:', 12//8)  # 除法,得到整型print('求余:', 12 % 7)  # 求余print('乘方:', 2**3)  # 2的3次方# 数值运算
oprations()

注意
  • 1.python可以同时为多个变量赋值
  • 2 .一个变量可以通过赋值指向不同类型的对象
  • 3.数值的除法,包含两个运算符:"/“返回浮点数,”//"返回整数
  • 4.在混合计算时,python会把整型转换成浮点型

String(字符串)

python中的字符串用单引号 和 双引号括起来,同时使用反斜杠""转义特殊字符

字符串的截取的语法格式如下:

start下标表示从start开始截取,到end下标的前一个元素结束,注意不包含end下标
索引值以0为开始值,-1为从末尾的开始位置

str[start下标:end下标]

下标,从0开始为顺序的开始位置,从-1开始为逆序的开始位置

字符串截取
# 字符串截取测试
def ptStr():str = "Runoob"print('所有字符:', str[::])   #输出所有字符串print('第1个字符:', str[0])   #输出字符串的第一个字符print('输出到第2个字符:', str[:2]) #输出字符串从0开始到第2个字符print('输出到第3个字符到结尾:',str[2:])    #输出从第三个开始后的所有字符print('第1个到倒数第2个的所有字符:',str[0:-1]) #输出第一个到倒数第二个的所有字符print('输出两次字符串:',2 * str)print('连接字符串:',str+'Test')    #连接字符串print(f"key={key},value={val}")   #格式化字符串,防止变量被转义ptStr()

字符赋值测试

在python中,没有字符类型,只有字符串类型,并且字符不能被赋值;比如word[0]=‘P’,会导致错误

def assgin():word = "python"print(word[0],word[5])  #打印第一个,第六个字符word[0] = 'P'           #字符串的容量是不可变的,在赋值时会报错print(word[-1],word[-6])    #打印倒数第一个,倒数第六个字符# 字符赋值测试
assgin()

注意
  • 反斜杠可以用来转义,字符串前面使用了r,就不会进行转义
  • 字符串可以用+运算符连接在一起,用*运算符重复。
  • python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。
  • python中的字符串不能改变

List(列表)

List是python中使用最频繁的数据类型。
列表中的元素可以不相同,它支持数字,字符串甚至是列表,集合等
列表的格式使用[],里面的元素使用,隔开的元素列表
和字符串一样,列表可以被索引和截取,列表被截取后返回一个包含所需元素的新列表

列表被截取的语法格式:

start下标表示从第start个开始截取,end表示到第end个元素结束,即下标end前一个元素结束,注意不包含end下标
索引值以0为开始值,-1为从末尾的开始位置

变量[start下标:end下标]

简单实例

list = [1,"hjc","email",3.14,True]
list2 = [2,"username"]print(list)    #打印list列表
print('list的第1个元素:',list[0])   #打印第1个元素
print('list下标为1开始,到第3个元素结束:',list[1:3]) #打印下标从1开始,到第3个元素结束
print('list下标为2开始到结束的所有元素:',list[2:])   #打印下标从2开始的所有元素
print('list2输出两次:',list2 *2 )  #打印两次list2
print('将list+list2两个列表合并:',list+list2)

注意:

  • list中的元素是可以被改变的。
  • list可以使用"+"操作符可以进行拼接的
  • python列表截取可以接收第三个参数,参数的作用是截取的步长,以下实例在索引1到4的位置设置步长为2,来截取字符串,如果第三个参数为负数,表示来翻转字符串用:
#打印list列表,测试分片,列表的合并
def testList():list = [1, "hjc", "email", 3.14, True]list2 = [2, "username"]print(list)  #打印list列表print('list的第1个元素:', list[0])  #打印第1个元素print('list下标为1开始,到第3个元素结束:', list[1:3])  #打印下标从1开始,到第3个元素结束print('list下标为2开始到结束的所有元素:', list[2:])  #打印下标从2开始的所有元素print('list2输出两次:', list2 * 2)  #打印两次list2print('将list+list2两个列表合并:', list + list2)# testList()#测试列表元素的改变,
def testList2():list = ['a', 'b', 'c', 1, 2, 3]list[0] = 9print('第1个元素被改变:', list)list[:3] = [4, 5, 6]print('从第1个元素到第3个元素被改变:', list)list[2:5] = [3, 6, 9]print('从第3个元素到第5个元素被改变:', list)list[-2:] = []print('从倒数第2个元素开始,设置为空:', list)testList2()#测试步长取值
def testStep():list = [1,2,3,4,5,6]newList = list[0::2]print('从0开始到末尾,取值步长为2,即隔2个取一次:',newList)newList2 = list[-1::-1]print('从下标最后一个元素开始到末尾,取值步长为-1,即隔反向取一次:',newList2)testStep()#步长为负数,来做字符串反转
def reverseWords(str):inputWords = str.split(',') #分割字符串,放到列表中inputWords = inputWords[-1::-1]output = ','.join(inputWords)   #重新拼接到字符串print(output)reverseWords('a,b,c,d,e,f')#将字符串的字符塞入到列表中
def strPushList(str):list = []for item in str:list.append(item)return listlastList = strPushList("hjc_042043@sian.cn")
print(lastList)

Tuple(元组)

元组(tuple)和列表相似,不同之处在于元组的元素不能被改变,元组是在"()“里,元素之间用”,"隔开
元组中的元素类型也可以不相同
元组和列表都可以视为数组,只是列表是类型可以改变,可以自由伸缩,可以用作队列来使用。元组是长度不可变的,可以用在枚举,配置等。

实例说明:

# 测试元组的赋值,取值
def testTuple():tuple = (1, 2, 3, 4, 5, 6)tuple2 = ('abc', 'hjc')print('打印tuple的所有元素:', tuple)print('打印tuple的第一个元素:', tuple[0])print('打印tuple的第二个元素到第三个元素:', tuple[1:3])print('打印从第三个元素开始的所有元素:', tuple[2:])print('将tuple2的元素打印两次:', tuple2 * 2)print('将tuple2和tuple进行合并:', tuple + tuple2)tuple2[0] = '123'print('不能修改元组:', tuple2)#testTuple()# 测试元组的声明
def declraTuple():tup1 = ()tup2 = (1)  #如果是一个元素,元素后面需要加,print(tup1,tup2)declraTuple()

集合(set)

集合是有一个或者N个整体构成,可以是不同的数据类型,构成集合的事物被称作是元素或成员
基本功能是成员关系测试(判断元素是否在集合中)和删除重复元素
可以使用set()函数创建集合,注意创建一个空集合必须使用set(),因为"{}"是创建一个空字典
如果不要求是顺序的,可以用集合来代替列表,在性能上集合比列表要快。

创建格式:

value = {val1,val2,val3...}
或者
value = set(val1)

实例说明:

#集合声明,成员测试
def testSet():set1 = set()print('空集合初始化:', set1)set2 = {'taobao', 'jingdong', 'pingduoduo', 'facebook', 'baidu', 'taobao'}print('输出集合,集合自动排序,重复的元素自动去掉:', set2)#成员测试if 'taobao' in set2:print('taobao在集合set2中')else:print('taobao不在集合set2中')testSet()def create_set():"""创建集合:return:"""set1 = {1, 2, 3, 3, 4, 5}print("set1=", set1)print("set1_len=", len(set1))# 使用构造器语法创建集合set2 = set("hello")print("set2=", set2)# 将列表转换成集合,并去掉重复元素set3 = set([1, 2, 3, 3, 2, 1, 5])print("set3=", set3)# 使用生成器set4 = {num for num in range(1, 20) if num % 3 == 0 or num % 5 == 0}print("set4=", set4)create_set()'''
集合运算
set1: 集合1
set2: 集合2
op: 操作符
'''#集合的运算
def testSet2(set1, set2, op):lastSet = set()if op == '+':#lastSet=set1+set2   #集合合并,这是错误的,正确用法使用'|'lastSet = {"集合合并,这是错误的,正确用法使用'|'"}elif op == '-':lastSet = set1 - set2  #集合的差集elif op == '|':lastSet = set1 | set2  #集合的并集elif op == '&':lastSet = set1 & set1  #集合的交集elif op == '^':lastSet = set1 ^ set2  #集合中不同时存在的元素else:lastSet = {"unknown"}  #操作符不正确return lastSetset1 = {1, 2, 3, 4, 5, 6}
set2 = {1, 3, 5, 7, 9, 11}print('集合合并:', testSet2(set1, set2, '+'))
print('集合差集:', testSet2(set1, set2, '-'))
print('集合合并:', testSet2(set1, set2, '|'))
print('集合交集:', testSet2(set1, set2, '&'))
print('集合的异或操作:', testSet2(set1, set2, '^'))

集合运算示例2

def op_set():"""集合运算:return:"""# 成员运算set1 = {1, 2, 3, 4, 5}print("6 is in=", 6 in set1)print("5 is in=", 5 in set1)set2 = {"Python", "Java", "Go", "Php"}print("Python is in=", "Python" in set2)print("C++ is in=", "C++" in set2)# 交并差运算,和数学上的交并差一样set1 = {1, 2, 3, 4, 5, 6, 7, 8}set2 = {2, 4, 6, 8, 10}# 求交集res = set1 & set2print("两集合交集:", res)print("两集合交集第二种方法:", set1.intersection(set2))# 求并集res = set1 | set2print("两集合并集:", res)print("两集合并集第二种方法:", set1.union(set2))# 求差集res = set1 - set2print("两集合差集:", res)print("两集合差集第二种方法:", set1.difference(set2))# 对称差,相当于是两集合的并集-两集合的交集,使用异或符号res = set1 ^ set2print("两集合的对称差:", res)print("两集合的对称差第二种方法:", set1.symmetric_difference(set2))print("两集合的对称差第三种方法:", (set1 | set2) - (set1 & set2))op_set()

集合函数

add:添加一个元素
update:添加一个或一组元素,可以是字符串,集合,列表,元祖元素
discard:删除一个元素,如果元素不在集合中,不会报错
remove:同样也是一个元素,如果不在集合中,就会报错
clear:清空集合
isdisjoint:判断两个集合是否存在交集,不存在返回False,存在就返回True

def method_set():"""集合的方法:return:"""# 创建一个空集合set1 = set()# 通过add方法添加元素set1.add(1)set1.add(2)# 添加多个元素set1.update(set1, {3, 4, 5, 6, 7})print("set1-add=", set1)# 通过discard方法删除指定元素set1.discard(7)set1.discard(8)print("set1-update=", set1)# 通过remove方法删除元素,建议先做成员运算在删除# 如果key不存在,就会引发KeyError异常if 10 in set1:set1.remove(10)print("set1-remove=", set1)# pop方法可以从集合中随机删除一个元素,并返回一个元素pop_item = set1.pop()print("set1-pop=", pop_item)# clear方法可以清空整个集合set1.clear()print("set1-clear=", set1)# 判断两个集合有没有相同元素(交集),使用isdisjoint方法,没有相同元素返回true,否则返回falseset1 = {"Java", "C++", "Python", "Golang"}set2 = {"Swift", "C", "Golang"}set3 = {"Html", "Javascript", "Css"}print("set1和set2是否有相同的元素", set1.isdisjoint(set2))print("set1和set3是否有相同的元素", set1.isdisjoint(set3))

字典(Dictionary)

列表是有序的对象集合,字典是无序的对象集合,两者之间的区别在于:字典当中元素通过键来进行存取,而不是通过偏移量来进行存取
字典是一种映射关系,使用{key:value}来进行标识,他是一个无序的的集合
key必须是不可变类型,一般是字符串来表示,并且同一个字典中键是唯一的

# 测试字典的特性
def testDic1():'''字典声明的第一种方式'''dic = {}dic[0] = 'test'dic['uid'] = '1234089'dic['user_name'] = 'hjc_042043'dic['email'] = 'hjc_042043@sian.cn'dic['phone'] = '13634199417'print('输出key=uid的值:', dic['uid'])#print('输出key=2的值:',dic[2])     #注意字典类型是不能隐式转换成list类型的,这里因为key中没有2的元素,所以会报错print('输出完整的字典dic:', dic)print('输出所有的键名:', dic.keys())print('输出所有的值:', dic.values())# testDic1()# 测试字典2
def testDic2():dic = dict([('real_name', '黄锦潮'), ('age', 37), ('sex', 1)])print('字典声明的第2种方式:', dic)dic2 = dict(real_name='黄锦潮', sex=1, age=37)print('字典声明的第3种方式:', dic2)dic3 = {'order_sn': '009780832378', 'address': '杭州市西湖区文一西路'}print('字典声明的第4种方式:', dic3)# 推导式dic4 = {x: x**2 for x in (2, 3, 4)}print('字典推导式的使用:', dic4)testDic2()

Python数据类型转换列表

有时候,我们需要对数据内置的类型进行转换,只需要对数据类型作为函数名进行转换即可
以下几个内置数据类型之间进行转换,这些函数返回一个新的对象,表示转换的值

函数描述
int(x)将x转换成一个整数
float(x)将x转换成一个浮点数
complex(x)创建一个复数
str(x)将对象转换成字符串
repr(x)将对象x转换成表达式字符串
eval(x)用来计算字符串中有效的python表达式,并返回一个对象
tuple(s)将序列转换成元组类型
list(s)将序列转换成列表类型
set(s)转换成可变集合
dict(d)创建一个字典,d必须是一个(key,value)元组序列
frozenset(s)转换为不可变集合
chr(x)将一个整数转换成一个字符
ord(x)将一个整数转换成8进制
oct(x)将一个整数转换成16进制

数据类型转换

有时候,我们需要对数据类型的转换,包括内置的数据类型,一般情况下只需要将数据类型作为函数即可
Python 数据类型转换可以分为两种:

  • 隐式转换–自动完成
  • 显示类型转换—需要使用类型函数转换

隐式转换

在隐式转换中,python会自动转换为另一种数据类型,不需要我们去干预
在以下实例中,我们对两种不同类型的数据进行运算,较低数据类型(整数)就会转换成较高数据类型(浮点数)以避免数据丢失

# 测试将整型隐式转换成浮点型
from xml.dom.minidom import TypeInfodef testParse():numInt = 10numFloat = 10.5'''因为int类型的优先级比float要底,所以计算时会自动转换成浮点数,不然精度容易溢出数据类型的优先级:byte,char-->int--->long--->float--->double不能将对象转换成不相关类的对象类型把容量大的类型转换成容量小的类型时,必须使用强制类型转换浮点数到整数,是通过舍弃小叔得到,而不是四舍五入'''numNew = numInt + numFloatprint('整数和浮点数相加:', numNew)#testParse()# 隐式转换
def strToInt():numInt = 10numStr = "122"numBool = Trueprint('data type of numInt:', type(numInt))print('data type of numStr:', type(numStr))print('data type of numBool:', type(numBool))print('int + boolen:', numInt + numBool)numNew = numInt + numStr  #这样子会报错,因为字符串类型不是数字类型,需要进行显示转换。print("numNew is ", numNew)# strToInt()

显式转换

# 显示转换
def testParse2(num1, num2):return num1 + num2# int类型相加
intSum = testParse2(1, int('123'))
print('int类型求和:', intSum)# float类型相加
floatSum = testParse2(float(2), 3.14)
print('float类型求和', floatSum)# str类型相加,是字符串拼接
strNew = testParse2(str(2),str(3.14))
print('str类型相加',strNew)

推导式

python推导式是一种特殊数据处理方式,可以从一个数据序列构件另一个数据序列的结构体
python支持各种数据结构的推导式:

  • 列表(list)推导式
  • 字典(dict)推导式
  • 集合(set)推导式
  • 元组(tuple)推导式

列表推导式

列表推导式,注意,这里的表达式没有冒号

[表达式表示最终需要得到的结果 for 变量 in iterable(可迭代对象)]
[out_exp_res for variable in input_list][表达式表示最终需要得到的结果 for 变量 in iterable(可迭代对象) if 条件]
[out_exp_res for variable in input_list condition]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/662673.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在Django Admin添加快捷方式django-admin-shortcuts

在Django管理主页上添加简单漂亮的快捷方式。 1.安装 pip install django-admin-shortcuts 2在settings.py注册django-admin-shortcuts INSTALLED_APPS [admin_shortcuts,django.contrib.admin,....... ] 3.添加ADMIN_SHORTCUTS设置 ADMIN_SHORTCUTS [ { ti…

k8s二进制及负载均衡集群部署详解

目录 常见部署方式 二进制部署流程 环境准备 操作系统初始化配置 关闭防火墙 配置SELinux 关闭SWAP 根据规划设置主机名 在master添加hosts,便于主机名解析 调整内核参数 配置时间同步 部署docker引擎 在所有node节点部署docker引擎 部署etcd集群 签发…

合约短线高胜率策略-扭转乾坤指标使用说明

扭转乾坤指标使用说明 行情判断 双绿线 多趋势双红线 空趋势大绿线 小红线 多震荡大红线 小绿线 空震荡 进场条件 趋势行情进场 多趋势 多信号 底金叉 做多空趋势 空信号 顶死叉 做空 震荡行情进场 多震荡 多信号 底金叉 做多多震荡 空信号 顶死叉 做空空…

idea docker 镜像生成太慢太大问题

文章目录 前言一、更小的jdk基础镜像二、服务瘦包(thin jar)2.1 maven2.2 修改dockerfile2.3 container run options 三、 基础jdk镜像入手?总结 前言 idea docker 内网应用实践遗留问题 idea docker插件 build 服务镜像太慢服务镜像太大 …

【Java程序设计】【C00223】基于Springboot+vue的图书购物商城(论文)

基于Springbootvue的图书购物商城(论文) 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springbootvue的前后端分离的图书商城购物系统 本系统分为用户以及管理员2个角色。 用户:用户登录后、可以查看新上架的书籍和新闻等…

npm ERR! reason: certificate has expired(淘宝镜像过期)

npm ERR! request to https://registry.npm.taobao.org/yauzl/-/yauzl-2.4.1.tgz failed, reason: certificate has expired 今天在执行npm install命令时,报错百度了下是淘宝证书过期原因 解决方法一 执行下面两个命令再进行npm install即可 npm cache clean --…

【深度学习】从0完整讲透深度学习第2篇:TensorFlow介绍和基本操作(代码文档已分享)

本系列文章md笔记(已分享)主要讨论深度学习相关知识。可以让大家熟练掌握机器学习基础,如分类、回归(含代码),熟练掌握numpy,pandas,sklearn等框架使用。在算法上,掌握神经网络的数学原理,手动实…

02链表:19、删除链表的倒数第N个节点

19、删除链表的倒数第N个节点 文章目录 19、删除链表的倒数第N个节点方法一:快慢指针 思路:使用虚拟头节点快慢指针,fast指针先走n1,直到为null,slow节点刚好在删除元素前一个位置,方便操作 重点&#xff1…

2024美赛数学建模B题思路源码

赛题目的 赛题目的: 问题描述: 解题的关键: 问题一. 问题分析 问题解答 问题二. 问题分析 问题解答 问题三. 问题分析 问题解答 问题四. 问题分析 问题解答 问题五. 问题分析 问题解答

云计算基础(云计算概述)

目录 一、云计算概述 1.1 云计算的概念 1.1.1 云计算解决的问题 1.1.2 云计算的概念 1.1.3 云计算的组成 1.2 云计算主要特征 1.2.1 按需自助服务 1.2.2 泛在接入 1.2.3 资源池化 1.2.4 快速伸缩性 1.2.5 服务可度量 1.3 云计算服务模式 1.3.1 软件即服务(Softwar…

老师罚学生钱违法吗

在教师岗位上耕耘了近十年,我遇到过无数的学生和无数的教学情境。其中,有一个问题始终困扰着我:在某些情况下,我能否用“罚钱”的方式来纠正学生的行为?当然,这还涉及到许多复杂的因素:学校的规…

Pandas快问快答1-15题

如果你是一名使用python进行过数据处理的程序员,那你对Pandas必然不陌生。pandas是一个开源的第三方Python库,旨在提供快速、灵活和富有表现力的数据结构,以便能够简单、直观地处理关系型和标记型数据。它的名字来源于面板数据(Pa…

Linux项目的挂起与结束

后台挂起 nohup java -jar java_gobang.jar & 结束项目 先查询pid ps -ef | grep java_gobang 结束: kill -9 23183

Ruoyi-Cloud-Plus_Nacos配置服务漏洞CVE-2021-29441_官方解决方法以及_修改源码解决---SpringCloud工作笔记199

CVE-2021-29441 这个漏洞是Nacos的,通过使用postman,直接访问接口: 就可以直接添加nacos的用户 Nacos是Alibaba的一个动态服务发现、配置和服务管理平台。攻击者通过添加Nacos-Server的User-Agent头部将可绕过(nacos.core.auth.enabled=true)鉴权认证,从而进行API操作。 …

工业智能网关构建智慧污水处理远程监测及管理

污水处理厂是为了处理生活污水和工业废水而建立的设施。为了监测和控制污水处理过程,现代污水处理厂采用了智能工业网关物联网技术。智慧污水系统能够通过工业网关远程监测厂内各个环节的运行情况,提高处理效率和管理水平。 智能工业网关能够将不同设备…

C语言第十六弹---操作符(下)

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】 操作符 1、下标访问[]、函数调用() 1.1、[ ] 下标引用操作符 1.2、函数调用操作符 2、结构成员访问操作符 2.1、结构体 2.1.1、结构的声明 2.1.2、结构体变…

wordpress怎么做产品展示站?推荐使用MOK主题和ent主题

大多数WordPress站点都是个人博客网站,主要以文章性质的图文为主。不过部分站长想要用WordPress搭建一个产品展示站,应该怎么做呢? 其实,WordPress可以用来建立各种各样的博客网站,包括个人博客、企业网站、商城、影视…

Node需要了解的知识

一:Node能执行javascript的原因。 浏览器之所以能执行Javascript代码,因为内部含有v8引擎。Node.js基于v8引擎封装,因此可以执行javascript代码。Node.js环境没有DOM和BOM。DOM能访问HTML所有的节点对象,BOM是浏览器对象。但是node中提供了c…

vue全家桶之路由管理Vue-Router

一、前端路由的发展历程 1.认识前端路由 路由其实是网络工程中的一个术语: 在架构一个网络时,非常重要的两个设备就是路由器和交换机。当然,目前在我们生活中路由器也是越来越被大家所熟知,因为我们生活中都会用到路由器&#…

(007)Gradle 找不到符号

问题 明明类的定义存在,gradle编译时,去报找不到符号: 解决 强制刷新gradle缓存:(C:\Users\Administrator.gradle\caches) ./gradlew build --refresh-dependencies -Penvtestout