开发者

tomcat8改了jar加载顺序的踩坑记录

开发者 https://www.devze.com 2020-01-11 12:02 出处:网络 作者: weixw
这篇文章主要给大家介绍了关于tomcat8改了jar加载顺序的踩坑记录,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

一、变量

1.1数值

a = 1
b = 2.1
print (a,b)

1.2字符串

c = “Hello”
d = “Word”
print (c,d)
print (c+d)                      #两个字符串连接在一起
print (len(c+d))                 #输出字符串长度
print (c[0])                     #切片,输出c的下标为0的字符H
print (c[-1])                    #切片,下标为负数,输出c的倒数第一个字符o
print (c[1:5])                   #片段,输出c的第1个字符到第4个字符共三个字符Hel
print (c[3:])                    #片段,输出c的第四个字符到结束lo

1.3列表

l = [] #新建一个空列表
l.append(1)
l.append(1.3)
l.append("Hello word!!")          #添加了几个元素
print (l)
print (len(l))                    #获取元素个数
print (l[1],l[-1])                #切片操作,输出列表中下标为1和倒数第一个元素1.3和Hello word!!
l[1] = 1.1                        #修改下标为1的元素为1.1
del l[0]                          #删除下标0的元素

1.4元组

t = (1,1.4,'Hello word!!')        #元组用()表示,元组初始化之后不可修改,可以看成只读列表
t[0] = 2                          #会报错

1.5字典

d = {'key1':1,'key2':1.5,'key3':"Hello word!!"}   #字典用{}表示,字典内部为kv方式表示;字典是无顺序的,需要修改的值时输入key来寻找位置。
d['key1'] = 2                                     #将key1的值改为2
print ('key1' in d)                               #判断字典d里有没有key1,实际程序中可以通过判断来修改或初始化key1的值

总结:列表[]表示,有下标,可修改。元组()表示,只读的列表,不可修改。字典{}表示,内部无序,需要key来寻位置。

二、注释

'''
python中整段的注释
多行直到结束
'''

三、保留名

python中有很多保留名,例如import,class等等,是不可以赋值的,定义变量时应尽量避开。

例如:

import = 1 #会报错

四、行和缩进

在 Python 中,代码块的边界不是通过大括号等符号进行显式划分,而是通过行的缩进隐含 的。连续相同缩进水平的代码处于同一个代码块,在使用 for、while、if、try 等语法时,需要注 意每行代码的缩进量,缩进量存在问题除了会报错外,甚至可能会完全改变代码的运行逻辑。

五、运算符

运算符的作用是在已有变量的基础上进行一些操作,从而生成新的变量,主要有以下几大类。需要注意的是,在代码中输入这些运算符时需要使用英文输入法。

算术运算符: +(加)、-(减)、*(乘)、/(除)、%(取余)。

比较运算符: ==(等于)、!=(不等于)、>(大于)、<(小于)、>=(大于等于)、<=(小于等于)。

赋值运算符: =(赋值)、+=(加赋值)、-=(减赋值)、*=(乘赋值)、/=(除赋值)、%=(取余赋值)。

逻辑运算符: and(与)、or(或)、not(非)。

a = 1
b = 2
print (a + b)
print (a == b)
c = True
d = False
print (c and d, c or d, not c)

六、条件

if 判断

a = 1
#单个判断
if a == 1:
   print ("aaaaa")
#处理不成立的分支
if a == 2:
   print ("aaaaa")
else:
   print ("bbbbb")
#多个判断条件,添加多少个都可以
if a == 2:
   print ("aaaaaa")
elif a == 3:
   print ("ccccc")
else:
   print ("bbbbbb")

七、循环

7.1 while循环

使用循环打出1~100个数

while 循环只要某一条件成立,就不断执行循环体里的代码,直到该条件不再成立,条件是否成立同样是使用逻辑值来表示。

f = 1
while f < 100:
   print (f)
   f += 1 #f记得加1.不然可能变成死循环,一直回执行print

   7.2 for循环

for 循环的循环次数一般是事先定好的,将一个条件变量从某个起始值开始,一直迭代到某个终止值后结束。

for x in range(0,10):
   print (x) #x从0开始,一直到9结束,不包括后面的数字。

利用for循环遍历第一部分学习的列表和字典。遍历就是将目标中的所有数据处理一遍,因此可以使用循环的思想来完成。

l = [1,1.2,"Hello word!!"]
d = {'key1':1,'key2':1.5,'key3':"Hello word!!!"}
for i in l:
   print (i)                                    #遍历l内的所有列表并列出,i只是一个临时变量,可以更改。
for key in d.keys():
   print (key)                                  #遍历d内的所有key并列出,key只是一个临时变量。
for value in d.values():
   print (value)                                #遍历d内所有的values并列出,value只是一个临时变量。
for key,value in d.intems():
   print (key,value)                            #遍历d内的所有kv并列出。

7.3 循环控制

循环控制是指在循环的过程中,根据某些条件的当前状态,选择性地控制或改变循环原本的流程,主要包括 3 种:pass(跳过,什么也不做)、continue(立即退出本循环,不再执行后续代码)、break(立即退出整个循环,后续循环都不再执行)。

for x range(0,10):
   if x == 5:                         
      pass                            #在循环中如果遇到x值为5则跳过
   else:
      print (x)                       #否则输出x值
      #此时输出结果为012346789
for x in range(0,10):
   if x ==5 :                         
      continue                        #如果遇到x值为5跳出此循环
   print (x)                          #输出x值
      #此时输出结果为012346789
for x in range(0,10):
   if x ==5:                          
      break                           #如果遇到x值为5跳出整个循环
   print (x)                          #输出x
   #此时输出结果为01234

八 、时间

在处理数据时,很多地方都会涉及时间,例如,数据产生的时间,即之前提及的时间戳概念。为什么需要时间戳这样一个概念?因为对于同一个时刻,不同人的描述可能不同,毕竟文本表达的形式千变万化,而时间戳使时刻的表示得到了统一,每个时刻只能用唯一的整数或浮点数来表示,也便于计算时间差之类的数值处理。

import time              #载入time模块
t = time.time()
print (t.type(t))        #看下当前的时间戳

实际编程当中。经常会降时间文本转成成时间戳,例如将“2019-07-25 15:00:00”转换成时间戳。

import time
# 时间文本转时间戳,精确到秒
a = '2019-07-25 15:00:00'
a = int(time.mktime(time.strptime(a, '%Y-%m-%d %H:%M:%S')))
print (a)
#将时间戳转换成文本
b = int(time.time())
b = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(b))
print (b)

九、文件

文件操作包括向文件中写内容,以及从文件中读内容。可以使用 open()函数打开一个文件,打开时需要指定相应的操作模式。

fl = open('e:\data.json','w')  #open方式打开文件,w为写入方式
for x in range(0,10):
   fl.write(str(x) + '\n')     #将整数文本写入,\n为换行
fl.close() #关闭连接
fl = open('e:\data.json','r')  #打开文件,r方式为读
   for line in fl:
   print (line)                #遍历fl的每一行,输出
   print (line.strip())        #删除每行的首尾空白字符
fl.close()                     #关闭

十、异常

Python 代码中可能会出现一些可以预知的错误,我们称之为异常,如字典访问的 key 不存在、除数为 0 等。如果对这类潜在错误不加处理,发生问题时,Python 会报错并退出,可能之前跑了很久的程序又要重头再来。因此,需要对可能出现的异常进行捕捉和处理。异常的结构由 try、except、else、finally 四部分组成。在 Sublime Text 中输出 try 会出现相应的提示,按回车键可快速补全。

try:
   #尝试执行这些代码
   print (1 / 0)
except Exception, e:
   #如果出现异常就进行这些处理
   #e为出现的异常,输出e
   print (e)
else:
   #try中的代码没有报错,输出成功
   print ("执行成功")
finally:
   #无论是否出错,都会执行的代码
   print ("一定会执行这里的")

十一、函数

函数的作用是将代码模块化,把可重用的代码封装成一个函数,这样在需要使用时,只需调用写好的函数即可,而不用重新写一遍代码。就像购买了一台榨汁机,每次想喝果汁时,只需要把水果丢进去处理即可。

函数的使用包括两个部分,函数的定义和函数的调用。除此之外,函数可以接受一个或多个变量作为参数,参数之间以逗号分开,为函数的功能提供更多的灵活性。需要注意的是,定义和调用部分的参数应当一一对应,除非在定义时为某些参数提供了默认值。

def hello(parameter1,parameter2):                      #定义一个函数hello
   print ("hello" + parameter1 + '' + parameter2)      #函数的内容,输出hello+参数1+参数2
hello('Word!!','Python')                               #调用函数,后边的括号为参数1+参数2

十二、其他

以上为Python比较基础与核心的语法,如果需要更深入的学习,可以参考以下链接。

菜鸟 Python 教程,(http://www.runoob.com/python/python-tutorial.html)

廖雪峰 Python 教程,(https://www.liaoxuefeng.com/wiki/1016959663602400)

0

精彩评论

暂无评论...
验证码 换一张
取 消