Python re模块 (正则表达式用法剖析详解)

阅读目录

      • 正则表达式
        • 字符组
        • 字符(元字符)
        • 量词(个数)
        • 边界字符(也属于元字符)
        • 分组()与或 |[^]
        • 转义字符
        • 贪婪模式和非贪婪模式
      • re模块下的常用方法
        • re.match()
        • re.search()
        • re.findall()
        • re.split()
        • re.sub()
        • 提取与分组
      • 应用
        • 匹配标签
        • 匹配整数
        • 数字匹配

正则表达式

字符组

字符组 : [字符组]
在同一个位置可能出现的各种字符组成了一个字符组,在正则表达式中用“ [ ] ”表示
字符分为很多类,比如数字、字母、标点等等。
假如要求一个位置"只能出现一个数字",那么这个位置上的字符只能是0、1、2...9这10个数之一

Python re模块 (正则表达式用法剖析详解)_第1张图片


字符(元字符)

Python re模块 (正则表达式用法剖析详解)_第2张图片

\w 包括:字母、数字、下划线;如果验证要求只允许输入:“数字和字母” 不能单独 \w 解决,
还要考虑到下划线,所以只能写成[0-9a-zA-Z] 
import re

strd = input("please:")
if re.search("^[0-9a-zA-Z]+$", strd):

    print("输入正确")
else:
    print("错误")

Python re模块 (正则表达式用法剖析详解)_第3张图片

# [/s/S] 、[/d/D]、[/w/W] 这类的可以匹配任意字符

量词(个数)

Python re模块 (正则表达式用法剖析详解)_第4张图片
Python re模块 (正则表达式用法剖析详解)_第5张图片

边界字符(也属于元字符)

Python re模块 (正则表达式用法剖析详解)_第6张图片

 有一些有特殊意义的元字符进入字符组中会回复它本来的意义如: . | [ ] ( )
^ 匹配字符串的开始 如: ^x ,表示字符串必须以x开头, 注意:[^ ] 意义不同
$ 匹配字符串的结束 如: x$ , 表示字符串必须以x结尾

^,$ : 如果字符有多行, 且在 re.M 模式下, ^,$ 会将每一行当作一个字符串,
	即换行后会重新匹配

\A 匹配字符串的开始,^ 类似,: \Ax ,表示字符串必须以x开头
\Z 匹配字符串的结尾, 与$类似,: x\Z,表示字符串必须以x结尾
# \A ,\Z , 在re.M模式下不会影响多行匹配

\b 用来匹配单词的结尾,: er\b 表示单词是否以 er结束
\B 用来匹配非单词的结尾,: er\B 表示单词中含有er,单独的以er结尾的词不行
# 注意:\b 需要转意 即写成 \\b

import re

res=re.findall("海.","海燕海桥海石")   # ['海燕', '海桥', '海石']
res=re.findall("^海.","海燕海桥海石")  # 海燕
res=re.findall("海.$","海燕海桥海石")  # 海石
res=re.findall("^海.$","海燕海桥海石") # []
res=re.findall("^海.$","海燕") # ['海燕']  这就能明白为什么 . 也属于边界字符了

print(res)

分组()与或 |[^]

身份证号码是一个长度为15或18个字符的字符串,如果是15位则全部由数字组成,首位不能为0;
	如果是18位,则前17位全部是数字,末位可能是数字或x,下面我们尝试用正则来表示:

Python re模块 (正则表达式用法剖析详解)_第7张图片

# 匹配任意一个邮箱 [email protected]
# x|y 表示匹配 x 或者 y
# (xyz) 加上括号表示将 xyz 看成一个整体
mailPattern = "\w+@\w+\.\w+"
# mailPattern = "(\w+@\w+\.((com)|(cn)))" # 在re.match / re.search 下能找出
# 匹配日期 1800-01-01 --- 2020-12-31
# 1899 1999 -- 2020
# 0-[1-9] 1[0-1-2]
# 0-[1-9] 1 2 - 0-9 3 0,1


result=re.search("^((1[89]\d{2})|(20[01]\d)|(2020))-((0[1-9])|(1[012]))-((0[1-9])|([12]\d)|(3[01]))$","2020-12-31")
# 注意括号分组,或 | 的时候,每一种可能给一个括号,
# 判断的每一项(年、月、日)再给一个括号
print(result)


import re

strd = input("请按格式输入出生年月日:")
if re.search("((1[89]\d{2})|(20[01]\d)|(2020))-((0[1-9])|(1[012]))-((0[1-9])|([12]\d)|(3[01]))", strd):
    print("输入正确")
else:
    print("输入格式有误,或者数值有误")

转义字符

Python re模块 (正则表达式用法剖析详解)_第8张图片

贪婪模式和非贪婪模式

贪婪匹配:在满足匹配时,匹配尽可能长的字符串,默认情况下,采用贪婪匹配

import re

res = re.findall("a?", "min is a good man")  # 非贪婪模式
# 结果:['', '', '', '', '', '', '', 'a', '', '', '', '', '', '', '', 'a', '', '']
res = re.findall("a?", "min is a good maan")  # 非贪婪模式
# 结果:['', '', '', '', '', '', '', 'a', '', '', '', '', '', '', '', 'a', 'a', '', '']
res = re.findall("a*", "min is a good maan")  # 贪婪模式
# 结果:['', '', '', '', '', '', '', 'a', '', '', '', '', '', '', '', 'aa', '', '']
res = re.findall("a+", "min is a good maan")  # 贪婪模式
# 结果:['a','aa']
res = re.findall("a{3}", "min is a good maaan")  # 贪婪模式
# 结果:['aaa']
res = re.findall("a{3}", "min is a good maaaan")  # 贪婪模式
# 结果:['aaa']
res = re.findall("a{3,5}", "min is a good maaaaan")  # 贪婪模式
# 结果:['aaaaa'] 包后
res = re.findall("a{3,}", "min is a good maaaaaaan")  # 贪婪模式
# 结果:['aaaaaaa']
res = re.findall("a{,5}", "min is a good maaaaaaan")  # 贪婪模式
# 结果:['', '', '', '', '', '', '', 'a', '', '', '', '', '', '', '', 'aaaaa', 'aa', '', '']
print(res)

单独出现 ? 非贪婪模式
出现 的第二个范围量词是“ ?” 就会变成 非贪婪模式

常用的非贪婪匹配Pattern

*? 重复任意次,但尽可能少重复
+? 重复1次或更多次,但尽可能少重复
?? 重复0次或1次,但尽可能少重复
{n,m}? 重复n到m次,但尽可能少重复
{n,}? 重复n次以上,但尽可能少重复

. * ? 的用法

. 是任意字符
* 是取 0 至 无限长度
? 是非贪婪模式。
合在一起就是:取尽量少的任意字符,一般不会这么单独写,他大多用在:
.*?x

就是取前面任意长度的字符,直到一个 x 出现

re模块下的常用方法

三种模式:
re.match() 是从源字符串的 起始位置开始查找一个匹配项
re.search() 是从源字符串中找到一个匹配项
re.findall() 是从源字符串中找到所有的匹配项

flag:真正的含义
	re.I 	使匹配对大小写不敏感
 	re.M 	多行匹配,是否影响 ^ 和 $  
	re.S 使 . 匹配包含换行符在内的任意字符
# re.M 实例
import re

res = re.findall("^min","min is a good man\nmin is a good man") # ['min']
res = re.findall("^min", "min is a good man\nmin is a good man", re.M)  # ['min', 'min']

# 如果后面,没有加上re.M 表示看做一行字符串(不会进行换行),只能找到前面的一个“min”,加了,加了能找到两个

res = re.findall("\Amin","min is a good man\nmin is a good man")  # ['min']
res = re.findall("\Amin","min is a good man\nmin is a good man",re.M) # ['min', 'min']


# print(res)

re.match()

re.match(pattern,string,flag) # 是从源字符串的 起始位置开始查找一个匹配项

     pattern 要进行匹配的正则表达式
     string 表示的是源字符串
     flag 标记, 可以不写
         re.I 使匹配对大小写不敏感
         re.M 多行匹配,是否影响 ^ 和 $
         re.S 使 . 匹配包含换行符在内的任意字符

# 如果匹配成功会返回一个对象
# 如果匹配失败 会 返回None
# 可以根据 结构是否为 None 来判断是否匹配成功
# 可以通过这个变量的group方法来获取结果;
# 如果没有匹配到,会返回None,此时如果使用group会报错
res = re.match("www","www.baidu.com")
res = re.match("www","aww.baidu.com")
res = re.match("www","awww.baidu.com")
res = re.match("www","wwbaidu.www,com")
res = re.match("www","wwwwbaidu.www,com")
res = re.match("www","WWW.baidu.com")
res = re.match("www","WWW.baidu.com",re.I)
print(res)
print(type(res))


>>> 匹配手机号码
import re
phone_number = input('please input your phone number : ')
if re.match('^(13|14|15|18)[0-9]{9}$',phone_number): # 如果成功则不是None
        print('是合法的手机号码')
else:
        print('不是合法的手机号码')
        

re.search()

re.search(pattern,string,flag) # 是从源字符串中(从左往右)找到第一个匹配项

     pattern 要进行匹配的正则表达式
     string 表示的是源字符串
     flag 标记, 可以不写
         re.I 使匹配对大小写不敏感
         re.M 多行匹配,是否影响 ^ 和 $
         re.S 使 . 匹配包含换行符在内的任意字符
         
     # 多用于表单验证    
res = re.search("www","www.baidu.com")
res = re.search("www","ww.baiduwww.com")
res = re.search("www","www.baiduwww.com")
print(res)

print(res.group)
# 只匹配从左到右的第一个,得到的不是直接的结果,而是一个变量,
# --需要通过这个变量的group方法来获取结果;
# 如果没有匹配到,会返回None,此时如果使用group会报错

re.findall()

re.findall(pattern,string,flag) # 是从源字符串中找到所有的匹配项

     pattern 要进行匹配的正则表达式
     string 表示的是源字符串
     flag 标记, 可以不写
         re.I 使匹配对大小写不敏感
         re.M 多行匹配,是否影响 ^ 和 $
         re.S 使 . 匹配包含换行符在内的任意字符
# findall的结果是列表的形式,会将找到的多个结果放到列表中去
# 注意: 如果找不到,会返回一个空列表
# 注意:不能直接使用 group 方法
res = re.findall("www","www.baidu.com")
res = re.findall("wwwa","www.baiduwww.com") # 结果:[]
print(res)
print(type(res))

findall 的优先级查询:

import re

ret = re.findall('www.(baidu|oldboy).com', 'www.oldboy.com')
print(ret)  # ['oldboy'] 这是因为findall会优先把匹配结果组里内容返回

# 如果想要匹配结果,取消权限即可,格式:在分组内加上 ?:即 (?:正则表达式)

ret = re.findall('www.(?:baidu|oldboy).com', 'www.oldboy.com')
print(ret)  # ['www.oldboy.com']
>>> 三种模式练习
import re

ret = re.findall('a', 'eva egon yuan') # 返回所有满足匹配条件的结果,放在列表里
print(ret) # 结果 : ['a', 'a']

ret = re.search('a', 'eva egon yuan').group()
print(ret) # 结果 : 'a'
# 函数会在字符串内 查找模式匹配,只到找到第一个匹配然后返回一个包含匹配信息的对象,
# 该对象可以通过调用group()方法得到匹配的字符串,如果字符串没有匹配,则返回None。

ret = re.match('a', 'abc').group() # 同search,不过在字符串开始处进行匹配
print(ret)
#结果 : 'a'

re.split()

# re.split()
# 参数:
# pattern,正则表达式, 即以某个正则来拆分
# string, 被拆分的源字符串
# maxsplit=0, 最大拆分次数
# flags=0 标识


# 正则表达式来拆分字符串
strData ="wen1 is2 a3 old4 man5"
lis_re = re.split(" ",strData)
# list_re=re.split("\d",strData)
# list_re=re.split("[0-9]",strData)
# list_re=re.split(" +",strData) #注意,+前面有个空格
# print(listRes) 结果:['wen1', 'is2', 'a3', 'old4', 'man5']
# 结果:['wen', ' is', ' a', ' old', ' man', '']
# 如果想保留用来作切割标准的字符串:只需给它添加分组即可
ret = re.split('\d+','alex83taibai40egon25')
print(ret) # ['alex', 'taibai', 'egon', ''] # 最后一次切割 留下末尾一个空
ret = re.split('(\d+)','alex83taibai40egon25aa')
print(ret) # ['alex', '83', 'taibai', '40', 'egon', '25', 'aa']
# split的优先级查询
ret=re.split("\d+","eva3egon4yuan")
print(ret) #结果 : ['eva', 'egon', 'yuan']

ret=re.split("(\d+)","eva3egon4yuan")
print(ret) # 结果 : ['eva', '3', 'egon', '4', 'yuan']

# 在匹配部分加上()之后所切出的结果是不同的,
# 没有()的没有保留所匹配的项,但是有()的却能够保留了匹配的项,
# 这个在某些需要保留匹配部分的使用过程是非常重要的。

re.sub()

str= "蔡徐篮球 是 xxx\n蔡徐坤歌手 是 yyy\n 肖战 是 帅哥"

# re.sub()
# 参数 
	pattern
	repl, 用来替换的新字符串
	string
	count=0, 替换的次数,默认是全部替换
	flags=0  # 不能修改,默认可以不写
	# 默认是 re.M 模式,会换行匹配所有

res = re.sub("蔡徐.{,2}","肖战",str)
'''
肖战 是 xxx
肖战手 是 yyy
 肖战 是 帅哥
'''

# subn与sub功能一致, 但是 sub是返回替 换后的新字符串,

# subn返回的是元组,元组有2个元素, 元素1代表替换后的新字符串, 元素2代表的替换的次数
res = re.subn("蔡徐.{,2}","肖战",str)
# ('肖战 是 xxx\n肖战手 是 yyy\n 肖战 是 帅哥', 2) 
    
print(res)

提取与分组

正则表达式不仅仅有强大的匹配功能,还有强大提取功能
(xyz) 将xyz看作一个整体
(xyz) 将xyz看成一个小组

re.search() 模式下的分组

import re

s = 'wahaha'  # 标签语言 html 网页
ret = re.search('<(\w+)>(\w+)',s)
print(ret.group(0))  # 所有的结果
print(ret.group(1)) # 数字参数代表的是取对应分组中的内容
print(ret.group(2))
print(ret.group(3))

re.findall() 模式的分组

# 为了findall也可以顺利取到分组中的内容,有一个特殊的语法,就是优先显示分组中的内容
ret = re.findall('(\w+)',s)
print(ret) #['a', 'wahaha', 'a']
ret = re.findall('>(\w+)<',s)
print(ret) #['wahaha']

strData = "010-34545546"
numberPattern = "(\d{3})-(\d{8})" 结果:[('010', '34545546')]
numberPattern = "((\d{3})-(\d{8}))" 结果:[('010-34545546', '010', '34545546')]
# findall会将所有的组作为一个元组的元素,放在列表中,组是靠括号来分的
res = re.findall(numberPattern,strData)
print(res) # print(res[0]) 结果:('010', '34545546')

re.findall模式下,取消分组优先

ret = re.findall('\d+(\.\d+)?','1.234*4.3')
print(ret) # 结果是:['.234', '.3']
# 为什么只显示了 小数位,因为findall优先显示分组中的内容

# 取消分组优先做法:在分组内加上?:(?:正则表达式)
ret = re.findall('\d+(?:\.\d+)?','1.234*4.3')
print(ret)


str_date = "010-34545546"
numberPattern = "\d{3}-\d{8}"
numberPattern = "(\d{3})-(\d{8})"
numberPattern = "((\d{3})-(\d{8}))"
numberPattern = "(?P\d{3})-(?P\d{8})"

res = re.match(numberPattern,str_date)
print(res)

# group可以提取完整匹配的字符
# () 可以将字符串分成多个组, 分组顺序是由外到里, 由前到后
print(res.group()) # 默认是0
print(res.group(1)) # 第一组
print(res.group(2)) # 第二组
#print(res.group(3)) # 第三组

>>>可以给每一个分组取一个别名, 格式:(?P<别名>正则)
# 获取的时候可以直接根据别名来获取
print(res.group("First"))
print(res.group("Last"))

# groups 将() 包裹的内容进行分组提取, 将所有的分组作为元组的元素,并作为结果返回
     # 它只看括号
res=re.match("\d{3}-\d{8}",strDate) # 这里没括号,输出结果为:()空元祖
print(res.groups())

分组命名的用法

s = 'wahaha' # 加入div标签不一致
pattern = '<(\w+)>(\w+)'
ret = re.search(pattern,s)
# print(ret.group(1) == ret.group(3)) False

# 使用前面的分组 要求使用这个名字的分组和前面同名分组中的内容匹配的必须一致
pattern = '<(?P\w+)>(\w+)'
ret = re.search(pattern,s)
print(ret) #False

>>>练习
# 2018-12-06  这种时间格式,中间的分隔符必须一致,所以可以用到命名分组
# 2018.12.6
# 2018 12 06
# 12:30:30

总结

import re

ret = re.findall('a', 'eva egon yuan')  # 返回所有满足匹配条件的结果,放在列表里
print(ret) # 结果 : ['a', 'a']

ret = re.search('a', 'eva egon yuan').group()
print(ret) # 结果 : 'a'
# 函数会在字符串内查找模式匹配,只到找到第一个匹配然后返回一个包含匹配信息的对象,该对象可以
# 通过调用group()方法得到匹配的字符串,如果字符串没有匹配,则返回None。

ret = re.match('a', 'abc').group()  # 同search,不过尽在字符串开始处进行匹配
print(ret)
# 结果 : 'a'

ret = re.split('[ab]', 'abcd')  # 先按'a'分割得到''和'bcd',在对''和'bcd'分别按'b'分割
print(ret)  # ['', '', 'cd']

ret = re.sub('\d', 'H', 'eva3egon4yuan4', 1) # 将数字替换成'H',参数1表示只替换1个
print(ret) # evaHegon4yuan4

ret = re.subn('\d', 'H', 'eva3egon4yuan4') # 将数字替换成'H',返回元组(替换的结果,替换了多少次)
print(ret)

obj = re.compile('\d{3}')  # 将正则表达式编译成为一个 正则表达式对象,规则要匹配的是3个数字
ret = obj.search('abc123eeee') # 正则表达式对象调用search,参数为待匹配的字符串
print(ret.group())  # 结果 : 123

import re
ret = re.finditer('\d', 'ds3sy4784a')   # finditer返回一个存放匹配结果的迭代器
print(ret)  # 
print(next(ret).group())  # 查看第一个结果
print(next(ret).group())  # 查看第二个结果
print([i.group() for i in ret])  # 查看剩余的左右结果

'''
先编译后使用

re模块的进阶 : 时间/空间
compile 节省你使用正则表达式解决问题的时间
编译 正则表达式 编译成 字节码
在多次使用的过程中 不会多次编译
ret = re.compile('\d+')   # 已经完成编译了
print(ret)

res = ret.findall('alex83taibai40egon25')
print(res) # 类型是“list”
res = ret.search('sjkhk172按实际花费928')
print(res.group())



finditer 节省你使用正则表达式解决问题的空间/内存
ret = re.finditer('\d+','alex83taibai40egon25')
#print(ret)这是一个迭代器
for i in ret:
     print(i.group())


findall 返回列表 找所有的匹配项
search  匹配就 返回一个变量,通过group取匹配到的第一个值,不匹配就返回None,group会报错
match   相当于search的正则表达式中加了一个'^'

spilt   返回列表,按照正则规则切割,默认匹配到的内容会被切掉
sub/subn 替换,按照正则规则去寻找要被替换掉的内容,subn返回元组,第二个值是替换的次数

compile  编译一个正则表达式,用这个结果去search match findall finditer 能够节省时间
finditer 返回一个迭代器,所有的结果都在这个迭代器中,需要通过循环+group的形式取值 能够节省内存
'''

应用

匹配标签

import re


ret = re.search("<(?P\w+)>\w+","

hello

"
) # 还可以在分组中利用?的形式给分组起名字 # 获取的匹配结果可以直接用group('名字')拿到对应的值 print(ret.group('tag_name')) # 结果 :h1 print(ret.group()) # 结果 :

hello

ret = re.search(r"<(\w+)>\w+","

hello

"
) # 如果不给组起名字,也可以用\序号来找到对应的组,表示要找的内容和前面的组内容一致 # 获取的匹配结果可以直接用group(序号)拿到对应的值 print(ret.group(1)) print(ret.group()) # 结果 :

hello

# 正则匹配所有所有tag
<[^>]+> # [^>]+ 指除了“>”外,但是至少有一个字符

# 匹配 open tag 
<[^/][^>]*> 
# 匹配 close tag
</[^>]+>

# 匹配 单标签
<[^>]+/>

Python re模块 (正则表达式用法剖析详解)_第9张图片

import re
s=""
ret=re.search("<[^>]+>",s).group()
print(ret) # 
# 匹配 双/单 引号
"[^"]*"  # 双/单 引号 中可以是没有任何内容

在这里插入图片描述

爬虫实例:爬取豆瓣排名前250的电影

import re
from urllib.request import urlopen

def getPage(url): # 获取网页的字符串
     response = urlopen(url)
     return response.read().decode('utf-8')

def parsePage(s):
     ret = com.finditer(s) # 从s这个网页源码中 找到所有符合com正则表达式规则的内容 并且以迭代器的形式返回
     for i in ret:
         yield {
             "id": i.group("id"),
             "title": i.group("title"),
             "rating_num": i.group("rating_num"),
             "comment_num": i.group("comment_num"),
         }

def main(num): # 0 25 50 #这个函数执行10次,每次爬取一页的内容
     url = 'https://movie.douban.com/top250?start=%s&filter=' % num #每次等于多少页
     response_html = getPage(url) # response_html就是这个url对应的html代码 就是 str
     ret = parsePage(response_html) # ret是一个生成器
     #print(ret)
     f = open("move_info7", "a", encoding="utf8")
     for obj in ret:
         print(obj)
         data = str(obj)
         f.write(data + "\n")
     f.close()


com = re.compile(
         '
.*?
.*?(?P\d+).*?(?P.*?)</span>'</span> <span class="token string">'.*?<span class="rating_num" .*?>(?P<rating_num>.*?)</span>.*?<span>(?P<comment_num>.*?)评价</span>'</span><span class="token punctuation">,</span> re<span class="token punctuation">.</span>S<span class="token punctuation">)</span> <span class="token comment">#.*? 的使用,遇到什么停止,加上 re.S模式;把要用的内容分组好</span> count <span class="token operator">=</span> <span class="token number">0</span> <span class="token keyword">for</span> i <span class="token keyword">in</span> <span class="token builtin">range</span><span class="token punctuation">(</span><span class="token number">10</span><span class="token punctuation">)</span><span class="token punctuation">:</span> main<span class="token punctuation">(</span>count<span class="token punctuation">)</span> count <span class="token operator">+=</span> <span class="token number">25</span> </code></pre> <blockquote> <p>对照标签</p> </blockquote> <p><a href="http://img.e-com-net.com/image/info8/95606c4a28f744d7b1b637782e7ca1bf.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/95606c4a28f744d7b1b637782e7ca1bf.jpg" alt="Python re模块 (正则表达式用法剖析详解)_第10张图片" width="650" height="398" style="border:1px solid black;"></a></p> <h4><font color="green">匹配整数</font></h4> <pre><code class="prism language-python"><span class="token keyword">import</span> re ret<span class="token operator">=</span>re<span class="token punctuation">.</span>findall<span class="token punctuation">(</span>r<span class="token string">"\d+"</span><span class="token punctuation">,</span><span class="token string">"1-2*(60+(-40.35/5)-(-4*3))"</span><span class="token punctuation">)</span> <span class="token keyword">print</span><span class="token punctuation">(</span>ret<span class="token punctuation">)</span> <span class="token comment"># ['1', '2', '60', '40', '35', '5', '4', '3']</span> ret<span class="token operator">=</span>re<span class="token punctuation">.</span>findall<span class="token punctuation">(</span>r<span class="token string">"-?\d+\.\d*|(-?\d+)"</span><span class="token punctuation">,</span><span class="token string">"1-2*(60+(-40.35/5)-(-4*3))"</span><span class="token punctuation">)</span> <span class="token keyword">print</span><span class="token punctuation">(</span>ret<span class="token punctuation">)</span> <span class="token comment"># ['1', '-2', '60', '', '5', '-4', '3']</span> ret<span class="token punctuation">.</span>remove<span class="token punctuation">(</span><span class="token string">""</span><span class="token punctuation">)</span> <span class="token keyword">print</span><span class="token punctuation">(</span>ret<span class="token punctuation">)</span> <span class="token comment"># ['1', '-2', '60', '5', '-4', '3']</span> </code></pre> <pre><code class="prism language-python">匹配一个整数:\d<span class="token operator">+</span> 匹配一个小数:\d<span class="token operator">+</span>\<span class="token punctuation">.</span>\d<span class="token operator">+</span> 匹配一个整数或者小数:\d<span class="token operator">+</span>\<span class="token punctuation">.</span>\d<span class="token operator">+</span> <span class="token operator">|</span> \d<span class="token operator">+</span> 或者 \d<span class="token operator">+</span><span class="token punctuation">(</span>\<span class="token punctuation">.</span>\d<span class="token operator">+</span><span class="token punctuation">)</span>? </code></pre> <h4><font color="green">数字匹配</font></h4> <pre><code class="prism language-python"><span class="token operator">>></span><span class="token operator">></span>匹配一段文本中的每行的邮箱 <span class="token comment"># 只允许英文字母、数字、下划线、英文句号、以及中划线组成</span> <span class="token comment"># 例:zhoujielun-001@gmail.com</span> <span class="token operator">^</span><span class="token punctuation">[</span>a<span class="token operator">-</span>zA<span class="token operator">-</span>Z0<span class="token operator">-</span>9_<span class="token operator">-</span><span class="token punctuation">]</span><span class="token operator">+</span>@<span class="token punctuation">[</span>a<span class="token operator">-</span>zA<span class="token operator">-</span>Z0<span class="token operator">-</span>9_<span class="token operator">-</span><span class="token punctuation">]</span><span class="token operator">+</span><span class="token punctuation">(</span>\<span class="token punctuation">.</span><span class="token punctuation">[</span>a<span class="token operator">-</span>zA<span class="token operator">-</span>Z0<span class="token operator">-</span>9_<span class="token operator">-</span><span class="token punctuation">]</span><span class="token operator">+</span><span class="token punctuation">)</span><span class="token operator">+</span>$ <span class="token comment"># 名称允许汉字、字母、数字,域名只允许英文域名</span> <span class="token comment"># 例:周杰伦001Abc@lenovo.com.cn</span> <span class="token operator">^</span><span class="token punctuation">[</span>A<span class="token operator">-</span>Za<span class="token operator">-</span>z0<span class="token operator">-</span><span class="token number">9</span>\u4e00<span class="token operator">-</span>\u9fa5<span class="token punctuation">]</span><span class="token operator">+</span>@<span class="token punctuation">[</span>a<span class="token operator">-</span>zA<span class="token operator">-</span>Z0<span class="token operator">-</span>9_<span class="token operator">-</span><span class="token punctuation">]</span><span class="token operator">+</span><span class="token punctuation">(</span>\<span class="token punctuation">.</span><span class="token punctuation">[</span>a<span class="token operator">-</span>zA<span class="token operator">-</span>Z0<span class="token operator">-</span>9_<span class="token operator">-</span><span class="token punctuation">]</span><span class="token operator">+</span><span class="token punctuation">)</span><span class="token operator">+</span>$ <span class="token comment"># 邮箱规则:</span> <span class="token comment"># @之前必须有内容且只能是字母(大小写)、数字、下划线(_)、减号(-)、点(.)</span> <span class="token comment"># @和最后一个点(.)之间必须有内容且只能是字母(大小写)、数字、点(.)、减号(-),</span> <span class="token comment"># --且两个点不能挨着</span> <span class="token comment"># 最后一个点(.)之后必须有内容且内容只能是字母(大小写)、数字且长度为大于等于2个字</span> <span class="token comment"># --节,小于等于6个字节</span> <span class="token punctuation">[</span><span class="token number">0</span><span class="token operator">-</span><span class="token number">9a</span><span class="token operator">-</span>zA<span class="token operator">-</span>Z<span class="token punctuation">]</span><span class="token punctuation">[</span>\w\<span class="token operator">-</span><span class="token punctuation">.</span><span class="token punctuation">]</span><span class="token operator">+</span>@<span class="token punctuation">[</span>a<span class="token operator">-</span>zA<span class="token operator">-</span>Z0<span class="token operator">-</span><span class="token number">9</span>\<span class="token operator">-</span><span class="token punctuation">]</span><span class="token operator">+</span><span class="token punctuation">(</span>\<span class="token punctuation">.</span><span class="token punctuation">[</span>a<span class="token operator">-</span>zA<span class="token operator">-</span>Z0<span class="token operator">-</span><span class="token number">9</span>\<span class="token operator">-</span><span class="token punctuation">]</span><span class="token operator">+</span><span class="token punctuation">)</span><span class="token operator">*</span>\<span class="token punctuation">.</span><span class="token punctuation">[</span>A<span class="token operator">-</span>Za<span class="token operator">-</span>z0<span class="token operator">-</span><span class="token number">9</span><span class="token punctuation">]</span><span class="token punctuation">{</span><span class="token number">2</span><span class="token punctuation">,</span><span class="token number">6</span><span class="token punctuation">}</span> <span class="token operator">>></span><span class="token operator">></span>匹配一段文本中的每行的时间字符串,比如:‘<span class="token number">1990</span><span class="token operator">-</span><span class="token number">07</span><span class="token operator">-</span><span class="token number">12</span>’; 分别取出<span class="token number">1</span>年的<span class="token number">12</span>个月(<span class="token operator">^</span><span class="token punctuation">(</span><span class="token number">0</span>?<span class="token punctuation">[</span><span class="token number">1</span><span class="token operator">-</span><span class="token number">9</span><span class="token punctuation">]</span><span class="token operator">|</span><span class="token number">1</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token operator">-</span><span class="token number">2</span><span class="token punctuation">]</span><span class="token punctuation">)</span>$)、 一个月的<span class="token number">31</span>天:<span class="token operator">^</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token number">0</span>?<span class="token punctuation">[</span><span class="token number">1</span><span class="token operator">-</span><span class="token number">9</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token operator">|</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token operator">|</span><span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token operator">-</span><span class="token number">9</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token operator">|</span><span class="token number">30</span><span class="token operator">|</span><span class="token number">31</span><span class="token punctuation">)</span>$ <span class="token operator">>></span><span class="token operator">></span>匹配qq号。<span class="token punctuation">(</span>腾讯QQ号从<span class="token number">10000</span>开始<span class="token punctuation">)</span> [<span class="token number">1</span><span class="token punctuation">,</span><span class="token number">9</span>]<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">9</span><span class="token punctuation">]</span><span class="token punctuation">{</span><span class="token number">4</span><span class="token punctuation">,</span><span class="token punctuation">}</span> <span class="token operator">>></span><span class="token operator">></span>匹配一个浮点数。 <span class="token operator">^</span><span class="token punctuation">(</span><span class="token operator">-</span>?\d<span class="token operator">+</span><span class="token punctuation">)</span><span class="token punctuation">(</span>\<span class="token punctuation">.</span>\d<span class="token operator">+</span><span class="token punctuation">)</span>?$ 或者 <span class="token operator">-</span>?\d<span class="token operator">+</span>\<span class="token punctuation">.</span>?\d<span class="token operator">*</span> <span class="token operator">>></span><span class="token operator">></span>匹配汉字。 <span class="token operator">^</span><span class="token punctuation">[</span>\u4e00<span class="token operator">-</span>\u9fa5<span class="token punctuation">]</span><span class="token punctuation">{</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token punctuation">}</span>$ <span class="token operator">>></span><span class="token operator">></span>匹配出所有整数 <span class="token operator">>></span><span class="token operator">></span> <span class="token number">1</span><span class="token operator">-</span><span class="token number">2</span><span class="token operator">*</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token number">60</span><span class="token operator">-</span><span class="token number">30</span><span class="token operator">+</span><span class="token punctuation">(</span><span class="token operator">-</span><span class="token number">40</span><span class="token operator">/</span><span class="token number">5</span><span class="token punctuation">)</span><span class="token operator">*</span><span class="token punctuation">(</span><span class="token number">9</span><span class="token operator">-</span><span class="token number">2</span><span class="token operator">*</span><span class="token number">5</span><span class="token operator">/</span><span class="token number">3</span><span class="token operator">+</span><span class="token number">7</span><span class="token operator">/</span><span class="token number">3</span><span class="token operator">*</span><span class="token number">99</span><span class="token operator">/</span><span class="token number">4</span><span class="token operator">*</span><span class="token number">2998</span><span class="token operator">+</span><span class="token number">10</span><span class="token operator">*</span><span class="token number">568</span><span class="token operator">/</span><span class="token number">14</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token operator">-</span><span class="token punctuation">(</span><span class="token operator">-</span><span class="token number">4</span><span class="token operator">*</span><span class="token number">3</span><span class="token punctuation">)</span><span class="token operator">/</span><span class="token punctuation">(</span><span class="token number">16</span><span class="token operator">-</span><span class="token number">3</span><span class="token operator">*</span><span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment"># 从上面算式中匹配出内层没有其他小括号的表达式</span> \<span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token operator">^</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">]</span><span class="token operator">+</span>\<span class="token punctuation">)</span> <span class="token operator">>></span><span class="token operator">></span>从类似<span class="token number">9</span><span class="token operator">-</span><span class="token number">1000</span><span class="token operator">/</span><span class="token number">3</span><span class="token operator">+</span><span class="token number">7</span><span class="token operator">/</span><span class="token number">3</span><span class="token operator">*</span><span class="token number">99</span><span class="token operator">/</span><span class="token number">4</span><span class="token operator">*</span><span class="token number">2998</span><span class="token operator">+</span><span class="token number">10</span><span class="token operator">*</span><span class="token number">568</span><span class="token operator">/</span><span class="token number">14</span>的表达式中匹配出从左到右第一个乘法或除法 \d<span class="token operator">+</span><span class="token punctuation">[</span><span class="token operator">*</span><span class="token operator">/</span><span class="token punctuation">]</span>\d<span class="token operator">+</span> </code></pre> <blockquote> <p>模拟一个计算器功能</p> </blockquote> <pre><code class="prism language-python"><span class="token keyword">import</span> re <span class="token keyword">def</span> <span class="token function">atmo_cal</span><span class="token punctuation">(</span>exp<span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token comment"># 原子计算器,最小单位不可再拆分了,处理乘除法,如:5*0.6;6/2</span> <span class="token keyword">if</span> <span class="token string">"*"</span> <span class="token keyword">in</span> exp<span class="token punctuation">:</span> a<span class="token punctuation">,</span> b <span class="token operator">=</span> exp<span class="token punctuation">.</span>split<span class="token punctuation">(</span><span class="token string">"*"</span><span class="token punctuation">)</span> <span class="token comment"># 最小了,只有两位</span> <span class="token keyword">return</span> <span class="token builtin">str</span><span class="token punctuation">(</span><span class="token builtin">float</span><span class="token punctuation">(</span>a<span class="token punctuation">)</span> <span class="token operator">*</span> <span class="token builtin">float</span><span class="token punctuation">(</span>b<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token keyword">elif</span> <span class="token string">"/"</span> <span class="token keyword">in</span> exp<span class="token punctuation">:</span> a<span class="token punctuation">,</span> b <span class="token operator">=</span> exp<span class="token punctuation">.</span>split<span class="token punctuation">(</span><span class="token string">"/"</span><span class="token punctuation">)</span> <span class="token keyword">return</span> <span class="token builtin">str</span><span class="token punctuation">(</span><span class="token builtin">float</span><span class="token punctuation">(</span>a<span class="token punctuation">)</span> <span class="token operator">/</span> <span class="token builtin">float</span><span class="token punctuation">(</span>b<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token keyword">def</span> <span class="token function">add_sub</span><span class="token punctuation">(</span>exp<span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token comment"># 计算加减法</span> ret <span class="token operator">=</span> re<span class="token punctuation">.</span>findall<span class="token punctuation">(</span><span class="token string">"[-+]?\d+(?:\.\d+)?"</span><span class="token punctuation">,</span> exp<span class="token punctuation">)</span> <span class="token comment"># 取消分组优先,得到一个列表</span> exp_sum <span class="token operator">=</span> <span class="token number">0</span> <span class="token keyword">for</span> i <span class="token keyword">in</span> ret<span class="token punctuation">:</span> exp_sum <span class="token operator">+=</span> <span class="token builtin">float</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span> <span class="token keyword">return</span> exp_sum <span class="token keyword">def</span> <span class="token function">mul_div</span><span class="token punctuation">(</span>exp<span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token comment"># 计算乘除法</span> <span class="token keyword">while</span> <span class="token boolean">True</span><span class="token punctuation">:</span> ret <span class="token operator">=</span> re<span class="token punctuation">.</span>search<span class="token punctuation">(</span><span class="token string">"\d+(?:\.\d+)?[/*]-?\d+(?:\.\d+)?"</span><span class="token punctuation">,</span> exp<span class="token punctuation">)</span> <span class="token comment"># 用的是search,所以从左往右匹配到第一项就返回结果</span> <span class="token keyword">if</span> ret<span class="token punctuation">:</span> atmo_exp <span class="token operator">=</span> ret<span class="token punctuation">.</span>group<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment"># 分组取出原子每一项</span> res <span class="token operator">=</span> atmo_cal<span class="token punctuation">(</span>atmo_exp<span class="token punctuation">)</span> <span class="token comment"># 调用原子计算器,打印结果为"-22.0"</span> <span class="token comment"># "2-1*-22+3-4/-5" "-22.0" 替换原式子中的位置即:"2--22.0-3-4/-5"</span> exp <span class="token operator">=</span> exp<span class="token punctuation">.</span>replace<span class="token punctuation">(</span>atmo_exp<span class="token punctuation">,</span> res<span class="token punctuation">)</span> <span class="token comment"># 参数位置 旧的,新的 将旧的替换成新的</span> <span class="token keyword">else</span><span class="token punctuation">:</span> <span class="token comment"># 2--22.0-3--0.8 乘除法都运算完毕了</span> <span class="token keyword">return</span> exp <span class="token keyword">def</span> <span class="token function">format</span><span class="token punctuation">(</span>exp<span class="token punctuation">)</span><span class="token punctuation">:</span> exp <span class="token operator">=</span> exp<span class="token punctuation">.</span>replace<span class="token punctuation">(</span><span class="token string">'--'</span><span class="token punctuation">,</span> <span class="token string">'+'</span><span class="token punctuation">)</span> exp <span class="token operator">=</span> exp<span class="token punctuation">.</span>replace<span class="token punctuation">(</span><span class="token string">'+-'</span><span class="token punctuation">,</span> <span class="token string">'-'</span><span class="token punctuation">)</span> exp <span class="token operator">=</span> exp<span class="token punctuation">.</span>replace<span class="token punctuation">(</span><span class="token string">'-+'</span><span class="token punctuation">,</span> <span class="token string">'-'</span><span class="token punctuation">)</span> exp <span class="token operator">=</span> exp<span class="token punctuation">.</span>replace<span class="token punctuation">(</span><span class="token string">'++'</span><span class="token punctuation">,</span> <span class="token string">'+'</span><span class="token punctuation">)</span> <span class="token keyword">return</span> exp <span class="token keyword">def</span> <span class="token function">cal</span><span class="token punctuation">(</span>exp<span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token comment"># 将乘法或者除法匹配出来;"2-1*-22-3-4/-5" 用来计算用的</span> exp <span class="token operator">=</span> mul_div<span class="token punctuation">(</span>exp<span class="token punctuation">)</span> <span class="token comment"># 调用乘除法函数</span> exp <span class="token operator">=</span> <span class="token builtin">format</span><span class="token punctuation">(</span>exp<span class="token punctuation">)</span> <span class="token comment"># 调用格式化函数后:2+22.0-3+0.8</span> exp_sum <span class="token operator">=</span> add_sub<span class="token punctuation">(</span>exp<span class="token punctuation">)</span> <span class="token comment"># 调用计算加法的函数 21.8</span> <span class="token keyword">return</span> exp_sum <span class="token comment"># 返回结果</span> <span class="token comment"># print(cal("2-1*-22-3-4/-5"))</span> <span class="token keyword">def</span> <span class="token function">main</span><span class="token punctuation">(</span>exp<span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token comment"># 主函数</span> exp <span class="token operator">=</span> exp<span class="token punctuation">.</span>replace<span class="token punctuation">(</span><span class="token string">" "</span><span class="token punctuation">,</span> <span class="token string">""</span><span class="token punctuation">)</span> <span class="token comment"># 去掉用户输入内容的空格</span> <span class="token keyword">while</span> <span class="token boolean">True</span><span class="token punctuation">:</span> ret <span class="token operator">=</span> re<span class="token punctuation">.</span>search<span class="token punctuation">(</span><span class="token string">"\([^()]+\)"</span><span class="token punctuation">,</span> exp<span class="token punctuation">)</span> <span class="token comment"># (-40/5)</span> <span class="token keyword">if</span> ret<span class="token punctuation">:</span> inner_bracket <span class="token operator">=</span> ret<span class="token punctuation">.</span>group<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment"># 这里可能得到各种运算</span> res <span class="token operator">=</span> <span class="token builtin">str</span><span class="token punctuation">(</span>cal<span class="token punctuation">(</span>inner_bracket<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment"># print(inner_bracket,type(res))</span> exp <span class="token operator">=</span> exp<span class="token punctuation">.</span>replace<span class="token punctuation">(</span>inner_bracket<span class="token punctuation">,</span> res<span class="token punctuation">)</span> <span class="token comment"># print(exp) 再格式化下 1-2*((60-30+-8.0*(9-2*5/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2))</span> exp <span class="token operator">=</span> <span class="token builtin">format</span><span class="token punctuation">(</span>exp<span class="token punctuation">)</span> <span class="token comment"># print(exp)</span> <span class="token keyword">else</span><span class="token punctuation">:</span> <span class="token keyword">break</span> <span class="token comment"># print(exp,type(exp)) ;1-2*-1388335.8476190479 <class 'str'></span> <span class="token keyword">return</span> cal<span class="token punctuation">(</span>exp<span class="token punctuation">)</span> s <span class="token operator">=</span> <span class="token string">'1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568/14 )) - (-4*3)/ (16-3*2) )'</span> ret <span class="token operator">=</span> main<span class="token punctuation">(</span>s<span class="token punctuation">)</span> <span class="token keyword">print</span><span class="token punctuation">(</span>ret<span class="token punctuation">,</span> <span class="token builtin">type</span><span class="token punctuation">(</span>ret<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token builtin">eval</span><span class="token punctuation">(</span>s<span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token builtin">type</span><span class="token punctuation">(</span><span class="token builtin">eval</span><span class="token punctuation">(</span>s<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment"># 用户可能再用到,所以像eval一样返回原来的格式</span> <span class="token comment"># 2776672.6952380957 <class 'float'></span> <span class="token comment"># 2776672.6952380957 <class 'float'></span> </code></pre> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1274491463031341056"></div> <script type="text/javascript" src="/views/front/js/chanyan.js"></script> <!-- 文章页-底部 动态广告位 --> <div class="youdao-fixed-ad" id="detail_ad_bottom"></div> </div> <div class="col-md-3"> <div class="row" id="ad"> <!-- 文章页-右侧1 动态广告位 --> <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_1"> </div> </div> <!-- 文章页-右侧2 动态广告位 --> <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_2"></div> </div> <!-- 文章页-右侧3 动态广告位 --> <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_3"></div> </div> </div> </div> </div> </div> </div> <div class="container"> <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(Python学习)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1892254409891573760.htm" title="Python学习笔记 - Python数据类型" target="_blank">Python学习笔记 - Python数据类型</a> <span class="text-muted">yunfan188</span> <a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/Python%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/1.htm">Python学习笔记</a><a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/Python%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B/1.htm">Python数据类型</a> <div>前言在Python语言中,所有的数据类型都是类,每一个变量都是类的“实例”。没有基本数据类型的概念,所以整数、浮点数和字符串也都是类。Python有6种标准数据类型:数字、字符串、列表、元组、集合和字典,而列表、元组、集合和字典可以保存多项数据,它们每一个都是一种数据结构,因此可以称这四种为“数据结构”类型。本文我们主要介绍数字和字符串类型。一、数字类型Python数字类型有4种:整数类型、浮点数</div> </li> <li><a href="/article/1892188695029673984.htm" title="Python librosa库:一款强大的音频处理工具" target="_blank">Python librosa库:一款强大的音频处理工具</a> <span class="text-muted">程序员喵哥</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E9%9F%B3%E8%A7%86%E9%A2%91/1.htm">音视频</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>更多Python学习内容:ipengtao.com在音频信号处理和音乐分析中,如何高效地加载、分析和转换音频数据是一个核心问题。librosa是一个专为音频分析设计的Python库,提供了丰富的工具来处理音频信号。无论是计算音频特征(如频谱、节拍)还是执行音频变换(如频率变换、时间拉伸),librosa都是一个功能强大且易于使用的选择。安装在开始使用librosa之前,需要先安装它。可以通过以下命</div> </li> <li><a href="/article/1892110885359513600.htm" title="2024年Python最新联邦学习实战-2-用FATE从零实现横向逻辑回归,面试阿里巴巴客服" target="_blank">2024年Python最新联邦学习实战-2-用FATE从零实现横向逻辑回归,面试阿里巴巴客服</a> <span class="text-muted">2401_84138785</span> <a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">程序员</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E9%80%BB%E8%BE%91%E5%9B%9E%E5%BD%92/1.htm">逻辑回归</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a> <div>学好Python不论是就业还是做副业赚钱都不错,但要学会Python还是要有一个学习规划。最后大家分享一份全套的Python学习资料,给那些想学习Python的小伙伴们一点帮助!一、Python所有方向的学习路线Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。二、学习软件工欲善其</div> </li> <li><a href="/article/1892054997571530752.htm" title="Python学习心得体会" target="_blank">Python学习心得体会</a> <span class="text-muted">yuetouwen</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>一、引言Python作为一种高级编程语言,以其简洁性、易读性和强大的功能在当今的编程领域中占据着重要地位。在学习Python的过程中,我不仅掌握了一种新的编程工具,更深入地理解了编程的思维方式和逻辑结构。二、语法基础与编程环境搭建Python的语法简洁明了,相较于其他编程语言,其代码更接近自然语言。例如,使用缩进来表示代码块,而不是像C或Java那样使用大括号。在学习初期,我快速掌握了变量的定义、</div> </li> <li><a href="/article/1892035204156026880.htm" title="【Python学习 / 6】面向对象编程(OOP)" target="_blank">【Python学习 / 6】面向对象编程(OOP)</a> <span class="text-muted">卜及中</span> <a class="tag" taget="_blank" href="/search/Python%E5%9F%BA%E7%A1%80/1.htm">Python基础</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>文章目录⭐前言⭐一、类和对象:面向对象编程基础1.类(Class)类的组成:例子:定义一个简单的`Dog`类代码解析:2.对象(Object)对象的创建:3.三大特性:封装、继承和多态3.1封装(Encapsulation)封装的实现方式:示例:封装的应用解释:3.2继承(Inheritance)继承的优点:3.3多态(Polymorphism)示例:多态解释:4.`self`参数示例:解释:5.</div> </li> <li><a href="/article/1891901898668175360.htm" title="为一位经验丰富的程序员量身定制Python学习路线 人工智能首选语言:python Python新技术" target="_blank">为一位经验丰富的程序员量身定制Python学习路线 人工智能首选语言:python Python新技术</a> <span class="text-muted">小黄人软件</span> <a class="tag" taget="_blank" href="/search/chatGPT/1.htm">chatGPT</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>人工智能首选语言:python必学。解释型语言(无编译这个环节),直接执行代码,面向对象,脚本语言没基础在这里学为一位经验丰富的程序员量身定制Python学习路线,主要应关注于深化已有的编程知识和技能,并探索Python特有的高级特性。以下是推荐的学习路线:基础复习:如果对Python基础不熟悉,先从Python的基础语法、数据类型、控制流程等开始复习。高级语言特性:深入理解装饰器、上下文管理器、</div> </li> <li><a href="/article/1891900885601153024.htm" title="python学习 列表 字典 集合 面对对象编程 闭包 装饰器 函数式编程 作用域 异常处理" target="_blank">python学习 列表 字典 集合 面对对象编程 闭包 装饰器 函数式编程 作用域 异常处理</a> <span class="text-muted">Scikit-learn</span> <a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>SIGIA_4Ppython学习列表字典集合面对对象编程闭包装饰器函数式编程作用域异常处理本文连接简介SIGIA_4P网址a.课程OKRObjectivesandKeyResults即目标与关键成果法目标,Objectives:掌握AI领域的Python开发成果1KR1linux目录结构[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-r864ykpN-16917885</div> </li> <li><a href="/article/1891891171597283328.htm" title="Python----数据结构----链表----双向链表" target="_blank">Python----数据结构----链表----双向链表</a> <span class="text-muted">一盏偏灯</span> <a class="tag" taget="_blank" href="/search/Python%E5%AD%A6%E4%B9%A0/1.htm">Python学习</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a><a class="tag" taget="_blank" href="/search/%E9%93%BE%E8%A1%A8/1.htm">链表</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>Python学习之路,点击有全套Python笔记双向链表一种更复杂的链表是“双向链表”或“双面链表”。每个节点有两个链接:一个指向前一个节点,当此节点为第一个节点时,指向空值;而另一个指向下一个节点,当此节点为最后一个节点时,指向空值。步骤:is_empty()链表是否为空length()链表长度travel()遍历链表add(item)链表头部添加append(item)链表尾部添加insert</div> </li> <li><a href="/article/1891761272622477312.htm" title="Python学习心得程序跳转语句" target="_blank">Python学习心得程序跳转语句</a> <span class="text-muted">lifegoesonwjl</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/github/1.htm">github</a><a class="tag" taget="_blank" href="/search/pycharm/1.htm">pycharm</a> <div>一、程序跳转语句break用于条跳(退)出循环结构,通常与if一起使用。1.while情形:语法结构:while表达式1:执行代码if表达式2:break执行流程:语句跳转break的运用:#累加和不大于20的i的值s=0i=1whilei:s+=iifs>20:print('累加和不大于20的i的值为:',i)breaki+=1注:break为非正常结束,当循环部分为while...else..</div> </li> <li><a href="/article/1891759635287830528.htm" title="Python学习心得-正则表达式" target="_blank">Python学习心得-正则表达式</a> <span class="text-muted">NKUer_there</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>#这是一个示例Python脚本。#按⌃R执行或将其替换为您的代码。#按双击⇧在所有地方搜索类、文件、工具窗口、操作和设置。#正则表达式学习心得importre#importre是必要的操作#正则表达式用以匹配文本regex1=r'\d\d\d-\d\d\d-\d\d\d\d'#或者等效为regex2=r'\d{3}-\d{3}-\d{4}'#利用re模块compile创建regex对象,即所谓的正</div> </li> <li><a href="/article/1891466467749195776.htm" title="Python学习(二)----turtle库的基本功能" target="_blank">Python学习(二)----turtle库的基本功能</a> <span class="text-muted">Tiny1420</span> <a class="tag" taget="_blank" href="/search/Python%E5%AD%A6%E4%B9%A0/1.htm">Python学习</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>importturtle#设置画布大小turtle.screensize(canvwidth=None,canvheight=None,bg=None)#参数分别为画布的宽(单位像素),高,背景颜色。turtle.setup(width=0.75,height=0.75,startx=None,starty=None)'''width,height:输入宽和高为整数时,表示像素;为小数时,表示占据</div> </li> <li><a href="/article/1891368690880933888.htm" title="Python学习教程:必须掌握的Cookie知识点都在这里了" target="_blank">Python学习教程:必须掌握的Cookie知识点都在这里了</a> <span class="text-muted">weixin_30387339</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/ViewUI/1.htm">ViewUI</a> <div>今天我们来全面了解一下Cookie(小饼干)相关的知识!篇幅有点长,在学习Python的伙伴或者有兴趣的你,可以耐心看哦!相信很多同学肯定听过Cookie这个东西,也大概了解其作用,但是其原理以及如何设置,可能没有做过web的同学并不是非常清楚,以前的Python学习教程中其实有跟大家提到过,那今天就带大家详细了解下Cookie相关的知识!一、诞生背景爬虫系列教程的第一篇:HTTP详解中我们便说过</div> </li> <li><a href="/article/1891366545892896768.htm" title="Python学习,cookie和session" target="_blank">Python学习,cookie和session</a> <span class="text-muted">sehun_sx</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E6%8C%96%E6%8E%98/1.htm">数据挖掘</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/python%E5%AD%A6%E4%B9%A0/1.htm">python学习</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a> <div>用户登录,未登录不能访问指定页面基于cookie实现保存在用户浏览器端的键值对,向服务端发请求时会自动携带deflogin(request):#设置cookiedata=redirect('...')data.set_cookie()#读取cookierequest.COOKIES.get('xx')returndatacookie的三个参数:key,value='',max_age=None应用</div> </li> <li><a href="/article/1891365911919652864.htm" title="Python学习之cookies及session用法" target="_blank">Python学习之cookies及session用法</a> <span class="text-muted">一个人旅行*-*</span> <a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/cookies/1.htm">cookies</a><a class="tag" taget="_blank" href="/search/session/1.htm">session</a> <div>当想利用Python在网页上发表评论的时候,需要一些账号密码登录的信息,这个时候用requests.get()请求的话,账号密码全部会显示在网址上,这显然不科学!这个时候需要用post请求,可以这么理解,get是明文显示,post是非明文显示。通常,get请求会应用于获取网页数据,比如我们之前学的requests.get()。post请求则应用于向网页提交数据,比如提交表单类型数据(像账号密码就是</div> </li> <li><a href="/article/1891360490878201856.htm" title="本地部署model scope魔搭大模型流程" target="_blank">本地部署model scope魔搭大模型流程</a> <span class="text-muted">CQller</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a><a class="tag" taget="_blank" href="/search/jupyter/1.htm">jupyter</a><a class="tag" taget="_blank" href="/search/pytorch/1.htm">pytorch</a> <div>一、安装python二、安装Gradio三、添加镜像加速四、运行字符串倒叙五、运行绘图六、安装常用软件包和库七、我目前使用的软件包和库简介八、文字生成图片AI模型九、文字回复AI模型一、安装python可参考安装步骤:python学习笔记-python安装与环境变量配置_python环境变量-CSDN博客二、安装Gradio在cmd执行以下命令。Gradio封装了功能丰富的前端用户界面,一会儿用来</div> </li> <li><a href="/article/1891352051170996224.htm" title="30.4:Python如何安装Pandas库? (课程共4100字)" target="_blank">30.4:Python如何安装Pandas库? (课程共4100字)</a> <span class="text-muted">小兔子平安</span> <a class="tag" taget="_blank" href="/search/Python%E5%AE%8C%E6%95%B4%E5%AD%A6%E4%B9%A0%E5%85%A8%E8%A7%A3%E7%AD%94/1.htm">Python完整学习全解答</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/pandas/1.htm">pandas</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>课程概述(课程共4100字)①安装Pandas库打开命令提示符或终端窗口,输入以下命令来安装Pandas:当安装完成后,可以使用以下命令来验证Pandas是否已正确安装:②数据处理和分析读写数据数据清洗和预处理数据分组和聚合数据可视化③Python学习的深入讨论Python的应用领域Python的优点和缺点学习Python的建议学习Python的挑战课程总结课程概述Python是一种功能强大的编程</div> </li> <li><a href="/article/1891227821175533568.htm" title="Python学习心得字符串的去重操作" target="_blank">Python学习心得字符串的去重操作</a> <span class="text-muted">lifegoesonwjl</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/pycharm/1.htm">pycharm</a> <div>一个字符串中可能包含许多相同的元素,为了保证字符串中的唯一性,下面介绍的是字符串的去重操作:第一种方式:利用for+if的结构进行去重这个程序是对字符串中的每个元素进行判断,如果不在新建的空字符串中就把该元素添加进来,否则就直接忽略过去。s='helloworldhelloworldhelloworld'new_s=''foritemins:ifitemnotinnew_s:new_s+=item</div> </li> <li><a href="/article/1891196425648271360.htm" title="Python自学攻略:AI时代的高效学习法 —— 如何用大模型快速上手编程" target="_blank">Python自学攻略:AI时代的高效学习法 —— 如何用大模型快速上手编程</a> <span class="text-muted">优化小秦</span> <a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>在AI技术爆发的今天,学习Python已不再是传统的“看书+敲代码”模式。借助大语言模型(如Deepseek、GPT、Claude、Kimi、豆包等),学习效率可以提升数倍。本文将结合实操路径、工具链和避坑指南,为你提供一套AI时代的Python速成方案。一、为什么AI能让Python学习效率飙升?实时纠错与解释传统学习:遇到报错需反复查资料,耗时且挫败感强AI辅助:直接将错误信息丢给大模型,1秒</div> </li> <li><a href="/article/1891124438259265536.htm" title="【python学习】深度解析 Python 的 .env配置与最佳实践:温格高的环境变量配置之道" target="_blank">【python学习】深度解析 Python 的 .env配置与最佳实践:温格高的环境变量配置之道</a> <span class="text-muted">NLP仙人</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>1.文章简介在开发和部署Python项目时,环境变量配置对于管理敏感信息如数据库连接字符串、API密钥至关重要。本文将以温格高(2023年环法冠军)的项目为例,详细介绍如何通过.env文件简化环境配置,并分享多环境管理、Docker集成等热门功能。我们还将覆盖一些小技巧和常见错误,帮助你避免开发中的踩坑。2.使用.env文件的好处温格高团队正在开发一个记录自行车赛事的应用,涉及多个开发环境和敏感信</div> </li> <li><a href="/article/1890533034898288640.htm" title="Python学习心得格式化字符串的三种方式" target="_blank">Python学习心得格式化字符串的三种方式</a> <span class="text-muted">lifegoesonwjl</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/pycharm/1.htm">pycharm</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a> <div>三种将格式化字符串的方法:我们知道字符串在与整数连接时,会出现报错的情形,但是将其都进行格式化操作后不会出现报错的情形。注:格式化字符串我们可以这样理解,就是将不是字符串的内容进行字符串化,这样可以自由的对他们进行连接。1.占位符:%s:字符串格式、%d:十进制整数格式、%f:浮点数格式占位符的运用:#使用占位符name='mdm'age=19score=98.5print('姓名:%s,年龄:%</div> </li> <li><a href="/article/1890488387790499840.htm" title="python学习环境" target="_blank">python学习环境</a> <span class="text-muted">HelloWorld!</span> <a class="tag" taget="_blank" href="/search/python%E4%BD%BF%E7%94%A8/1.htm">python使用</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>python学习环境python的安装Anaconda的安装Anaconda虚拟环境pythonIDE的选择pycharm项目的环境变量选择从这篇文章开始,记录python学习的过程。本篇从python学习的环境开始展开。python的安装我主要是在windows环境下进行python3的学习。我所了解到主要有两种常见的python安装方法。直接在python官方网站上下载python,然后进行安</div> </li> <li><a href="/article/1890467445387358208.htm" title="Python学习笔记 - 探索正则表达式re元字符" target="_blank">Python学习笔记 - 探索正则表达式re元字符</a> <span class="text-muted">Mr数据杨</span> <a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B%E5%9F%BA%E7%A1%80/1.htm">编程基础</a><a class="tag" taget="_blank" href="/search/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/1.htm">正则表达式</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B%E5%9F%BA%E7%A1%80/1.htm">编程基础</a><a class="tag" taget="_blank" href="/search/%E5%85%83%E5%AD%97%E7%AC%A6/1.htm">元字符</a> <div>在Python编程中,正则表达式(RegularExpressions,简称re)是一种强大的工具,用于匹配字符串中的特定模式。无论是在数据清洗、文本解析,还是在日常脚本编写中,正则表达式都可以极高的效率完成复杂的字符串操作任务。然而,正则表达式的语法略显复杂,尤其是其中的元字符(Metacharacters),初学者在使用时往往感到困惑。本教程旨在通过详细的概念解释、操作指导以及实际应用示例,帮</div> </li> <li><a href="/article/1890311598627680256.htm" title="前端自动化测试:TDD 和 BDD 哪个更好一些?" target="_blank">前端自动化测试:TDD 和 BDD 哪个更好一些?</a> <span class="text-muted">测试员小静</span> <a class="tag" taget="_blank" href="/search/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/1.htm">技术分享</a><a class="tag" taget="_blank" href="/search/%E6%B5%8B%E8%AF%95/1.htm">测试</a><a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E4%BA%BA%E7%94%9F/1.htm">程序人生</a><a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95/1.htm">软件测试</a><a class="tag" taget="_blank" href="/search/%E6%B5%8B%E8%AF%95%E5%B7%A5%E7%A8%8B%E5%B8%88/1.htm">测试工程师</a><a class="tag" taget="_blank" href="/search/ui/1.htm">ui</a><a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E4%BA%BA%E7%94%9F/1.htm">程序人生</a> <div>大家好,我是小静,今天整理了一份前端自动化测试手册,希望能对你有帮助!这里赠送一套软件测试相关资源:软件测试相关工具软件测试练习集深入自动化测试Python学习手册Python编码规范大厂面试题和简历模板关注我公众号:【程序员小濠】即可免费领取!交流群:175317069Vue应用测试项目环境搭建运行vuecreate[project-name]来创建一个新项目。选择"Manuallyselect</div> </li> <li><a href="/article/1890245027045634048.htm" title="Python Watchdog库:文件系统监控" target="_blank">Python Watchdog库:文件系统监控</a> <span class="text-muted">程序员喵哥</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>更多Python学习内容:ipengtao.comPythonWatchdog库是一款用于监控文件系统事件的强大工具。它可以检测文件和目录的创建、修改、删除等操作,并触发相应的事件处理器。Watchdog广泛应用于自动化脚本、实时数据处理、日志监控等场景。本文将详细介绍Watchdog库的安装、主要功能、基本操作、高级功能及其实践应用,并提供丰富的示例代码。安装Watchdog库可以通过pip进行</div> </li> <li><a href="/article/1890169752207290368.htm" title="【python】Flask的web服务" target="_blank">【python】Flask的web服务</a> <span class="text-muted">lifewange</span> <a class="tag" taget="_blank" href="/search/Python%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/1.htm">Python自动化测试</a><a class="tag" taget="_blank" href="/search/flask/1.htm">flask</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a> <div>PythonFlaskWeb框架入门_python学习者的博客-CSDN博客_flaskwebpythonflask几分钟实现web服务疑惑点:将get方法修改成post,页面请求不成功,报错403答案:最近学爬虫。发现httppost请求目标网站会出现405状态码,原因为Apache、IIS、Nginx等绝大多数web服务器,都不允许静态文件响应POST请求关于HTTP请求出现405状态码not</div> </li> <li><a href="/article/1889763188166160384.htm" title="Python docopt库:一款简化命令行参数解析工具" target="_blank">Python docopt库:一款简化命令行参数解析工具</a> <span class="text-muted">程序员喵哥</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a> <div>更多Python学习内容:ipengtao.com命令行接口(CLI)是现代软件开发中不可或缺的一部分,它使得开发者可以通过终端高效地与程序交互。然而,为CLI解析命令行参数常常是一项繁琐的任务。docopt是一个简洁且强大的Python库,旨在通过简单的文档字符串描述CLI的行为,自动完成命令行参数解析。它无需手动编写复杂的解析逻辑,只需描述程序的使用说明即可快速实现参数解析。安装要使用doco</div> </li> <li><a href="/article/1889641250743709696.htm" title="【Python学习-UI界面】PyQt5 小部件汇总" target="_blank">【Python学习-UI界面】PyQt5 小部件汇总</a> <span class="text-muted">寒山独见君~</span> <a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/ui/1.htm">ui</a><a class="tag" taget="_blank" href="/search/qt/1.htm">qt</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>序号组件说明详细介绍链接1QLabel用作占位符,用于显示不可编辑的文本、图像,或者动画GIF的电影。它也可以用作其他小部件的助记符键。2QLineEdit是最常用的输入字段。它提供了一个框,可以输入一行文本。要输入多行文本,需要使用QTextEdit对象。3QPushButton在PyQtAPI中,QPushButton类对象表示一个按钮,当点击时可以编程调用某个函数。4QRadioButton</div> </li> <li><a href="/article/1889331738392457216.htm" title="Python学习心得列表的特有操作" target="_blank">Python学习心得列表的特有操作</a> <span class="text-muted">lifegoesonwjl</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/pycharm/1.htm">pycharm</a><a class="tag" taget="_blank" href="/search/visual/1.htm">visual</a><a class="tag" taget="_blank" href="/search/studio/1.htm">studio</a><a class="tag" taget="_blank" href="/search/code/1.htm">code</a> <div>一、列表的特有操作方法:列表的方法描述说明lst.append(x)在列表lst最后增加一个元素lst.insert(index,x)在列表中第index位置上增加一个元素lst.clear()清楚列表lst中所有元素lst.pop(index)将列表lst中的第index位置的元素取出,并从列表中将其删除lst.romove(x)将列表lst中出现的元素x删除lst.reverse()将列表ls</div> </li> <li><a href="/article/1889087878391197696.htm" title="Python学习心得列表类型" target="_blank">Python学习心得列表类型</a> <span class="text-muted">lifegoesonwjl</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>一、列表定义:(1)指一系列按特定顺序的排列元素组成;(2)Python中内置的可变序列;(3)Python中使用[]定义列表,元素与元素之间使用英文逗号分隔开;(4)列表的元素可以是任意的数据类型;注:存储的可以为多个数据类型的值。二、列表的创建方式有两种:(1)使用[]直接创建列表:语法结构:列表名=[element1,element2,...,elementn](2)使用内置函数list()</div> </li> <li><a href="/article/1888677869865988096.htm" title="python学习笔记" target="_blank">python学习笔记</a> <span class="text-muted">pitch_dark</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>python注释注释注释在程序开发的过程起着非常重要的作用,往往在一个优秀的项目中,注释的行数不比代码少为什么需要注释方便自己一段时间后再回头看或修改代码多人开发同一个项目的时候,使别人能读懂你的代码单行注释#这是一个注释多行注释"""这里面可以注释多行代码"""Pycharm里快速注释多行代码ctrl+/python变量和数据类型变量什么是变量什么是变量,变量名,变量值变量:容器变量名:名字变量</div> </li> <li><a href="/article/96.htm" title="怎么样才能成为专业的程序员?" target="_blank">怎么样才能成为专业的程序员?</a> <span class="text-muted">cocos2d-x小菜</span> <a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B/1.htm">编程</a><a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a> <div>  如何要想成为一名专业的程序员?仅仅会写代码是不够的。从团队合作去解决问题到版本控制,你还得具备其他关键技能的工具包。当我们询问相关的专业开发人员,那些必备的关键技能都是什么的时候,下面是我们了解到的情况。   关于如何学习代码,各种声音很多,然后很多人就被误导为成为专业开发人员懂得一门编程语言就够了?!呵呵,就像其他工作一样,光会一个技能那是远远不够的。如果你想要成为</div> </li> <li><a href="/article/223.htm" title="java web开发 高并发处理" target="_blank">java web开发 高并发处理</a> <span class="text-muted">BreakingBad</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/%E5%B9%B6%E5%8F%91/1.htm">并发</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91/1.htm">开发</a><a class="tag" taget="_blank" href="/search/%E5%A4%84%E7%90%86/1.htm">处理</a><a class="tag" taget="_blank" href="/search/%E9%AB%98/1.htm">高</a> <div>java处理高并发高负载类网站中数据库的设计方法(java教程,java处理大量数据,java高负载数据) 一:高并发高负载类网站关注点之数据库 没错,首先是数据库,这是大多数应用所面临的首个SPOF。尤其是Web2.0的应用,数据库的响应是首先要解决的。 一般来说MySQL是最常用的,可能最初是一个mysql主机,当数据增加到100万以上,那么,MySQL的效能急剧下降。常用的优化措施是M-S(</div> </li> <li><a href="/article/350.htm" title="mysql批量更新" target="_blank">mysql批量更新</a> <span class="text-muted">ekian</span> <a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a> <div>mysql更新优化: 一版的更新的话都是采用update set的方式,但是如果需要批量更新的话,只能for循环的执行更新。或者采用executeBatch的方式,执行更新。无论哪种方式,性能都不见得多好。 三千多条的更新,需要3分多钟。 查询了批量更新的优化,有说replace into的方式,即: replace into tableName(id,status) values</div> </li> <li><a href="/article/477.htm" title="微软BI(3)" target="_blank">微软BI(3)</a> <span class="text-muted">18289753290</span> <a class="tag" taget="_blank" href="/search/%E5%BE%AE%E8%BD%AFBI+SSIS/1.htm">微软BI SSIS</a> <div>1) Q:该列违反了完整性约束错误;已获得 OLE DB 记录。源:“Microsoft SQL Server Native Client 11.0” Hresult: 0x80004005 说明:“不能将值 NULL 插入列 'FZCHID',表 'JRB_EnterpriseCredit.dbo.QYFZCH';列不允许有 Null 值。INSERT 失败。”。 A:一般这类问题的存在是 </div> </li> <li><a href="/article/604.htm" title="Java中的List" target="_blank">Java中的List</a> <span class="text-muted">g21121</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>        List是一个有序的 collection(也称为序列)。此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。         与 set 不同,列表通常允许重复</div> </li> <li><a href="/article/731.htm" title="读书笔记" target="_blank">读书笔记</a> <span class="text-muted">永夜-极光</span> <a class="tag" taget="_blank" href="/search/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/1.htm">读书笔记</a> <div>   1.  K是一家加工厂,需要采购原材料,有A,B,C,D 4家供应商,其中A给出的价格最低,性价比最高,那么假如你是这家企业的采购经理,你会如何决策?          传统决策: A:100%订单  B,C,D:0%     &nbs</div> </li> <li><a href="/article/858.htm" title="centos 安装 Codeblocks" target="_blank">centos 安装 Codeblocks</a> <span class="text-muted">随便小屋</span> <a class="tag" taget="_blank" href="/search/codeblocks/1.htm">codeblocks</a> <div>1.安装gcc,需要c和c++两部分,默认安装下,CentOS不安装编译器的,在终端输入以下命令即可yum install gccyum install gcc-c++   2.安装gtk2-devel,因为默认已经安装了正式产品需要的支持库,但是没有安装开发所需要的文档.yum install gtk2* 3. 安装wxGTK    yum search w</div> </li> <li><a href="/article/985.htm" title="23种设计模式的形象比喻" target="_blank">23种设计模式的形象比喻</a> <span class="text-muted">aijuans</span> <a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a> <div>1、ABSTRACT FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory   工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:</div> </li> <li><a href="/article/1112.htm" title="开发管理 CheckLists" target="_blank">开发管理 CheckLists</a> <span class="text-muted">aoyouzi</span> <a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E7%AE%A1%E7%90%86+CheckLists/1.htm">开发管理 CheckLists</a> <div>开发管理 CheckLists(23) -使项目组度过完整的生命周期 开发管理 CheckLists(22) -组织项目资源 开发管理 CheckLists(21) -控制项目的范围开发管理 CheckLists(20) -项目利益相关者责任开发管理 CheckLists(19) -选择合适的团队成员开发管理 CheckLists(18) -敏捷开发 Scrum Master 工作开发管理 C</div> </li> <li><a href="/article/1239.htm" title="js实现切换" target="_blank">js实现切换</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/%E6%A0%8F%E7%9B%AE%E5%88%87%E6%8D%A2/1.htm">栏目切换</a> <div>js主要功能之一就是实现页面的特效,窗体的切换可以减少页面的大小,被门户网站大量应用思路: 1,先将要显示的设置为display:bisible 否则设为none 2,设置栏目的id ,js获取栏目的id,如果id为Null就设置为显示 3,判断js获取的id名字;再设置是否显示   代码实现:   html代码: <di</div> </li> <li><a href="/article/1366.htm" title="周鸿祎在360新员工入职培训上的讲话" target="_blank">周鸿祎在360新员工入职培训上的讲话</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/%E6%84%9F%E6%82%9F/1.htm">感悟</a><a class="tag" taget="_blank" href="/search/%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86/1.htm">项目管理</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E7%94%9F/1.htm">人生</a><a class="tag" taget="_blank" href="/search/%E8%81%8C%E5%9C%BA/1.htm">职场</a> <div>        这篇文章也是最近偶尔看到的,考虑到原博客发布者可能将其删除等原因,也更方便个人查找,特将原文拷贝再发布的。“学东西是为自己的,不要整天以混的姿态来跟公司博弈,就算是混,我觉得你要是能在混的时间里,收获一些别的有利于人生发展的东西,也是不错的,看你怎么把握了”,看了之后,对这句话记忆犹新。  &</div> </li> <li><a href="/article/1493.htm" title="前端Web开发的页面效果" target="_blank">前端Web开发的页面效果</a> <span class="text-muted">Bill_chen</span> <a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/Microsoft/1.htm">Microsoft</a> <div>1.IE6下png图片的透明显示: <img src="图片地址" border="0" style="Filter.Alpha(Opacity)=数值(100),style=数值(3)"/> 或在<head></head>间加一段JS代码让透明png图片正常显示。 2.<li>标</div> </li> <li><a href="/article/1620.htm" title="【JVM五】老年代垃圾回收:并发标记清理GC(CMS GC)" target="_blank">【JVM五】老年代垃圾回收:并发标记清理GC(CMS GC)</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/%E5%9E%83%E5%9C%BE%E5%9B%9E%E6%94%B6/1.htm">垃圾回收</a> <div>  CMS概述 并发标记清理垃圾回收(Concurrent Mark and Sweep GC)算法的主要目标是在GC过程中,减少暂停用户线程的次数以及在不得不暂停用户线程的请夸功能,尽可能短的暂停用户线程的时间。这对于交互式应用,比如web应用来说,是非常重要的。   CMS垃圾回收针对新生代和老年代采用不同的策略。相比同吞吐量垃圾回收,它要复杂的多。吞吐量垃圾回收在执</div> </li> <li><a href="/article/1747.htm" title="Struts2技术总结" target="_blank">Struts2技术总结</a> <span class="text-muted">白糖_</span> <a class="tag" taget="_blank" href="/search/struts2/1.htm">struts2</a> <div>  必备jar文件 早在struts2.0.*的时候,struts2的必备jar包需要如下几个: commons-logging-*.jar   Apache旗下commons项目的log日志包 freemarker-*.jar          </div> </li> <li><a href="/article/1874.htm" title="Jquery easyui layout应用注意事项" target="_blank">Jquery easyui layout应用注意事项</a> <span class="text-muted">bozch</span> <a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a><a class="tag" taget="_blank" href="/search/%E6%B5%8F%E8%A7%88%E5%99%A8/1.htm">浏览器</a><a class="tag" taget="_blank" href="/search/easyui/1.htm">easyui</a><a class="tag" taget="_blank" href="/search/layout/1.htm">layout</a> <div>在jquery easyui中提供了easyui-layout布局,他的布局比较局限,类似java中GUI的border布局。下面对其使用注意事项作简要介绍:      如果在现有的工程中前台界面均应用了jquery easyui,那么在布局的时候最好应用jquery eaysui的layout布局,否则在表单页面(编辑、查看、添加等等)在不同的浏览器会出</div> </li> <li><a href="/article/2001.htm" title="java-拷贝特殊链表:有一个特殊的链表,其中每个节点不但有指向下一个节点的指针pNext,还有一个指向链表中任意节点的指针pRand,如何拷贝这个特殊链表?" target="_blank">java-拷贝特殊链表:有一个特殊的链表,其中每个节点不但有指向下一个节点的指针pNext,还有一个指向链表中任意节点的指针pRand,如何拷贝这个特殊链表?</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div> public class CopySpecialLinkedList { /** * 题目:有一个特殊的链表,其中每个节点不但有指向下一个节点的指针pNext,还有一个指向链表中任意节点的指针pRand,如何拷贝这个特殊链表? 拷贝pNext指针非常容易,所以题目的难点是如何拷贝pRand指针。 假设原来链表为A1 -> A2 ->... -> An,新拷贝</div> </li> <li><a href="/article/2128.htm" title="color" target="_blank">color</a> <span class="text-muted">Chen.H</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a> <div><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  "http://www.w3.org/TR/html4/loose.dtd">    <HTML>    <HEAD>&nbs</div> </li> <li><a href="/article/2255.htm" title="[信息与战争]移动通讯与网络" target="_blank">[信息与战争]移动通讯与网络</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a> <div>      两个坚持:手机的电池必须可以取下来                光纤不能够入户,只能够到楼宇       建议大家找这本书看看:<&</div> </li> <li><a href="/article/2382.htm" title="oracle flashback query(闪回查询)" target="_blank">oracle flashback query(闪回查询)</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/flashback+query/1.htm">flashback query</a><a class="tag" taget="_blank" href="/search/flashback+table/1.htm">flashback table</a> <div>在Oracle 10g中,Flash back家族分为以下成员: Flashback Database Flashback Drop Flashback Table Flashback Query(分Flashback Query,Flashback Version Query,Flashback Transaction Query) 下面介绍一下Flashback Drop 和Flas</div> </li> <li><a href="/article/2509.htm" title="zeus持久层DAO单元测试" target="_blank">zeus持久层DAO单元测试</a> <span class="text-muted">deng520159</span> <a class="tag" taget="_blank" href="/search/%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95/1.htm">单元测试</a> <div>zeus代码测试正紧张进行中,但由于工作比较忙,但速度比较慢.现在已经完成读写分离单元测试了,现在把几种情况单元测试的例子发出来,希望有人能进出意见,让它走下去. 本文是zeus的dao单元测试: 1.单元测试直接上代码   package com.dengliang.zeus.webdemo.test; import org.junit.Test; import o</div> </li> <li><a href="/article/2636.htm" title="C语言学习三printf函数和scanf函数学习" target="_blank">C语言学习三printf函数和scanf函数学习</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/c/1.htm">c</a><a class="tag" taget="_blank" href="/search/printf/1.htm">printf</a><a class="tag" taget="_blank" href="/search/scanf/1.htm">scanf</a><a class="tag" taget="_blank" href="/search/language/1.htm">language</a> <div>printf函数 /* 2013年3月10日20:42:32 地点:北京潘家园 功能: 目的: 测试%x %X %#x %#X的用法 */ # include <stdio.h> int main(void) { printf("哈哈!\n"); // \n表示换行 int i = 10; printf</div> </li> <li><a href="/article/2763.htm" title="那你为什么小时候不好好读书?" target="_blank">那你为什么小时候不好好读书?</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/life/1.htm">life</a> <div>dady, 我今天捡到了十块钱, 不过我还给那个人了 good girl! 那个人有没有和你讲thank you啊 没有啦....他拉我的耳朵我才把钱还给他的, 他哪里会和我讲thank you   爸爸, 如果地上有一张5块一张10块你拿哪一张呢.... 当然是拿十块的咯... 爸爸你很笨的, 你不会两张都拿   爸爸为什么上个月那个人来跟你讨钱, 你告诉他没</div> </li> <li><a href="/article/2890.htm" title="iptables开放端口" target="_blank">iptables开放端口</a> <span class="text-muted">Fanyucai</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/iptables/1.htm">iptables</a><a class="tag" taget="_blank" href="/search/%E7%AB%AF%E5%8F%A3/1.htm">端口</a> <div>1,找到配置文件 vi /etc/sysconfig/iptables   2,添加端口开放,增加一行,开放18081端口 -A INPUT -m state --state NEW -m tcp -p tcp --dport 18081 -j ACCEPT   3,保存 ESC :wq!   4,重启服务 service iptables </div> </li> <li><a href="/article/3017.htm" title="Ehcache(05)——缓存的查询" target="_blank">Ehcache(05)——缓存的查询</a> <span class="text-muted">234390216</span> <a class="tag" taget="_blank" href="/search/%E6%8E%92%E5%BA%8F/1.htm">排序</a><a class="tag" taget="_blank" href="/search/ehcache/1.htm">ehcache</a><a class="tag" taget="_blank" href="/search/%E7%BB%9F%E8%AE%A1/1.htm">统计</a><a class="tag" taget="_blank" href="/search/query/1.htm">query</a> <div>缓存的查询 目录 1.    使Cache可查询 1.1     基于Xml配置 1.2     基于代码的配置 2     指定可搜索的属性 2.1     可查询属性类型 2.2 &</div> </li> <li><a href="/article/3144.htm" title="通过hashset找到数组中重复的元素" target="_blank">通过hashset找到数组中重复的元素</a> <span class="text-muted">jackyrong</span> <a class="tag" taget="_blank" href="/search/hashset/1.htm">hashset</a> <div>  如何在hashset中快速找到重复的元素呢?方法很多,下面是其中一个办法: int[] array = {1,1,2,3,4,5,6,7,8,8}; Set<Integer> set = new HashSet<Integer>(); for(int i = 0</div> </li> <li><a href="/article/3271.htm" title="使用ajax和window.history.pushState无刷新改变页面内容和地址栏URL" target="_blank">使用ajax和window.history.pushState无刷新改变页面内容和地址栏URL</a> <span class="text-muted">lanrikey</span> <a class="tag" taget="_blank" href="/search/history/1.htm">history</a> <div>后退时关闭当前页面 <script type="text/javascript"> jQuery(document).ready(function ($) {         if (window.history && window.history.pushState) {</div> </li> <li><a href="/article/3398.htm" title="应用程序的通信成本" target="_blank">应用程序的通信成本</a> <span class="text-muted">netkiller.github.com</span> <a class="tag" taget="_blank" href="/search/%E8%99%9A%E6%8B%9F%E6%9C%BA/1.htm">虚拟机</a><a class="tag" taget="_blank" href="/search/%E5%BA%94%E7%94%A8%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">应用服务器</a><a class="tag" taget="_blank" href="/search/%E9%99%88%E6%99%AF%E5%B3%B0/1.htm">陈景峰</a><a class="tag" taget="_blank" href="/search/netkiller/1.htm">netkiller</a><a class="tag" taget="_blank" href="/search/neo/1.htm">neo</a> <div>应用程序的通信成本 什么是通信 一个程序中两个以上功能相互传递信号或数据叫做通信。 什么是成本 这是是指时间成本与空间成本。 时间就是传递数据所花费的时间。空间是指传递过程耗费容量大小。 都有哪些通信方式 全局变量 线程间通信 共享内存 共享文件 管道 Socket 硬件(串口,USB) 等等 全局变量 全局变量是成本最低通信方法,通过设置</div> </li> <li><a href="/article/3525.htm" title="一维数组与二维数组的声明与定义" target="_blank">一维数组与二维数组的声明与定义</a> <span class="text-muted">恋洁e生</span> <a class="tag" taget="_blank" href="/search/%E4%BA%8C%E7%BB%B4%E6%95%B0%E7%BB%84/1.htm">二维数组</a><a class="tag" taget="_blank" href="/search/%E4%B8%80%E7%BB%B4%E6%95%B0%E7%BB%84/1.htm">一维数组</a><a class="tag" taget="_blank" href="/search/%E5%AE%9A%E4%B9%89/1.htm">定义</a><a class="tag" taget="_blank" href="/search/%E5%A3%B0%E6%98%8E/1.htm">声明</a><a class="tag" taget="_blank" href="/search/%E5%88%9D%E5%A7%8B%E5%8C%96/1.htm">初始化</a> <div>/**  *  */ package test20111005; /**  * @author FlyingFire  * @date:2011-11-18 上午04:33:36  * @author :代码整理  * @introduce :一维数组与二维数组的初始化  *summary:  */ public c</div> </li> <li><a href="/article/3652.htm" title="Spring Mybatis独立事务配置" target="_blank">Spring Mybatis独立事务配置</a> <span class="text-muted">toknowme</span> <a class="tag" taget="_blank" href="/search/mybatis/1.htm">mybatis</a> <div>在项目中有很多地方会使用到独立事务,下面以获取主键为例   (1)修改配置文件spring-mybatis.xml  <!-- 开启事务支持 -->  <tx:annotation-driven transaction-manager="transactionManager" />   &n</div> </li> <li><a href="/article/3779.htm" title="更新Anadroid SDK Tooks之后,Eclipse提示No update were found" target="_blank">更新Anadroid SDK Tooks之后,Eclipse提示No update were found</a> <span class="text-muted">xp9802</span> <a class="tag" taget="_blank" href="/search/eclipse/1.htm">eclipse</a> <div>使用Android SDK Manager 更新了Anadroid SDK Tooks 之后, 打开eclipse提示 This Android SDK requires Android Developer Toolkit version 23.0.0 or above, 点击Check for Updates  检测一会后提示 No update were found  </div> </li> </ul> </div> </div> </div> <div> <div class="container"> <div class="indexes"> <strong>按字母分类:</strong> <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a> </div> </div> </div> <footer id="footer" class="mb30 mt30"> <div class="container"> <div class="footBglm"> <a target="_blank" href="/">首页</a> - <a target="_blank" href="/custom/about.htm">关于我们</a> - <a target="_blank" href="/search/Java/1.htm">站内搜索</a> - <a target="_blank" href="/sitemap.txt">Sitemap</a> - <a target="_blank" href="/custom/delete.htm">侵权投诉</a> </div> <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved. <!-- <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>--> </div> </div> </footer> <!-- 代码高亮 --> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script> <link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/> <script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script> </body> </html><script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>