Python全栈之正则表达式

目录
  • 1. 正则表达式_匹配单个字符
  • 2. 正则表达式_匹配多个字符
  • 3. 正则表达式_匹配分组
    • 小提示:
  • 4. 小练习
    • 答案:
  • 总结

1. 正则表达式_匹配单个字符

正则表达式在线测试http://tool.chinaz.com/regex

# ### 正则表达式 - 匹配单个字符
import re
"""lst = re.findall(正则表达式,字符串)"""
# (1) 预定义字符集
# \d 匹配数字
strvar = "sdjfklj234&*(&1"
lst = re.findall("\d",strvar)
print(lst)
# \D 匹配非数字
strvar = "YWERsdf78_&"
lst = re.findall("\D",strvar)
print(lst)
# \w 匹配字母或数字或下划线     (正则函数中,支持中文的匹配)
strvar = "sadf234_^&*%$^$%你好"
lst = re.findall("\w",strvar)
print(lst)
# \W 匹配非字母或数字或下划线
strvar = "sadf234_^&*%$^$%你好"
lst = re.findall("\W",strvar)
print(lst)
# \s 匹配任意的空白符 ( " "  \t  \n \r )
strvar = " 		 \r "
lst = re.findall("\s",strvar)
print(lst)
# \S 匹配任意非空白符
strvar = " 		 \r  123_*("
lst = re.findall("\S",strvar)
print(lst)
# \n 匹配一个换行符
strvar = """
今天国庆假期结束了,兄弟们满载	而归,玩的	很困,尽	快调	整.
"""
lst = re.findall(r"\n",strvar)
print(lst)
# \t 匹配一个制表符
lst = re.findall(r"\t",strvar)
print(lst)
# (2) 字符组 [] 匹配出字符组当中列举的字符(默认选一个)
# lst = re.findall("[123]","a1b2c3d4")
# print(lst)
print(re.findall('a[abc]b','aab abb acb adb')) # aab abb acb
print(re.findall('a[0123456789]b','a1b a2b a3b acb ayb')) # a1b  a2b a3b
# 优化写法 0123456789  => 0-9
print(re.findall('a[0-9]b','a1b a2b a3b acb ayb'))
print(re.findall('a[abcdefg]b','a1b a2b a3b acb ayb adb')) # acb adb
# 优化写法 abcdefg => a-g  表达所有的小写字母 a-z
print(re.findall('a[a-g]b','a1b a2b a3b acb ayb adb'))
print(re.findall('a[a-z]b','a1b a2b a3b acb ayb adb')) # acb adb ayb
print(re.findall('a[ABCDEFG]b','a1b a2b a3b  aAb aDb aYb')) # aAb aDb
# 优化写法 ABCDEFG => A-G  表达所有的大写字母 A-Z
print(re.findall('a[A-G]b','a1b a2b a3b  aAb aDb aYb')) # aAb aDb
print(re.findall('a[A-Z]b','a1b a2b a3b  aAb aDb aYb')) # aAb aDb aYb
# 注意点: 不能直接写A-z  中间ascii编码中包含了特殊的符号
print(re.findall('a[A-z]b','a1b a2b a3b acb ayb adb a[b'))
# 匹配所有的字母和数字
print(re.findall('a[a-zA-Z0-9]b','a1b a2b a3b acb ayb adb a[b'))
print(re.findall('a[0-9a-zA-Z]b','a-b aab aAb aWb aqba1b'))  #aab aAb aWb aqb a1b
print(re.findall('a[0-9][*#/]b','a1/b a2b a29b a56b a456b')) # a1/b
# ^ 在字符组开头的位置出现代表 除了...的意思
print(re.findall('a[^-+*/]b',"a%b ccaa*bda&bd")) #a%b a&b
# 匹配^-\等特殊字符时 ,需要前面加上\进行转义
strvar = "a^c a-c a\c"
lst = re.findall(r"a[\^\-\\]c",strvar)
print(lst)
print(lst[-1])
# 注意点:为了防止转义,在正则表达式中或者要匹配的字符串中,无脑加r实现匹配
strvar = r"a\b"
lst = re.findall(r"a\\b",strvar)
print(lst[0])

2. 正则表达式_匹配多个字符

# ### 正则表达式 - 匹配多个字符
# (1) 量词
import re
'''1) ? 匹配0个或者1个a '''
print(re.findall('a?b','abbzab abb aab'))   #  ab b  ab ab b ab
'''2) + 匹配1个或者多个a '''
print(re.findall('a+b','b ab aaaaaab abb')) # ab aaaaaab ab
'''3) * 匹配0个或者多个a '''
print(re.findall('a*b','b ab aaaaaab abbbbbbb')) # b ab aaaaaab ab b b b b b b
'''4) {m,n} 匹配m个至n个a '''
# 1 <= a <= 3
print(re.findall('a{1,3}b','aaab ab aab abbb aaz aabb')) #aaab ab aab ab aab
# {2}  代表必须匹配2个a
print(re.findall('a{2}b','aaab ab aab abbb aaz aabb')) # aab aab aab
# {2,} 代表至少匹配2个a
print(re.findall('a{2,}b','aaab ab aab abbb aaz aabb')) # aaab aab aab
# (2) 贪婪匹配 和 非贪婪匹配
"""
贪婪匹配  : 默认向更多次匹配  (回溯算法)
非贪婪匹配: 默认向更少次匹配  (配合?号使用)
回溯算法 : 从左向右进行匹配,直到找到最后一个,再也没有了,回头,返回上一个找到的内容
. 除了\n,匹配所有字符
非贪婪写法: 量词 + ?
"""
# 贪婪匹配(模式)
strvar = "刘能和刘老根和刘罗锅111子222子"
lst = re.findall("刘.",strvar)
print(lst) # lst = re.findall("刘.?",strvar)
lst = re.findall("刘.?",strvar)
print(lst) # lst = re.findall("刘.?",strvar)
lst = re.findall("刘.+",strvar)
print(lst) # ['刘能和刘老根和刘罗锅111子222子']
lst = re.findall("刘.*",strvar)
print(lst) # ['刘能和刘老根和刘罗锅111子222子']
lst = re.findall("刘.{1,20}",strvar)
print(lst) # ['刘能和刘老根和刘罗锅111子222子']
lst = re.findall("刘.*子",strvar)
print(lst)
# 非贪婪匹配(模式)
lst = re.findall("刘.??",strvar)
print(lst) # ['刘', '刘', '刘']
lst = re.findall("刘.+?",strvar)
print(lst) # 刘能 刘老 刘罗
lst = re.findall("刘.*?",strvar)
print(lst) # ['刘', '刘', '刘']
lst = re.findall("刘.{1,20}?",strvar)
print(lst) # ['刘能', '刘老', '刘罗']
lst = re.findall("刘.*?子",strvar)
print(lst)
# (3) 边界符
"""
\b 本身是转义字符 退格,退到光标上一位
\b 在正则中还有边界符的意思
"word"
卡主左边界:\bw
卡主右边界:d\b
"""
strvar = "word old fuck"
# 右边界
lst = re.findall(r"d\b",strvar) # ['d', 'd']
lst = re.findall(r".*d\b",strvar) # ['word old']
lst = re.findall(r".*?d\b",strvar) # ['word old']
print(lst)
# 左边界
lst = re.findall(r"\bw",strvar)
lst = re.findall(r"\bw.*",strvar)
lst = re.findall(r"\bw.*?",strvar)
lst = re.findall(r"\bw.*? ",strvar) # 空格在正则表达式中,不能随意加,是参与匹配的.
lst = re.findall(r"\bw\S*",strvar)
print(lst)
# (4) ^ $的使用
"""
^ 写在在字符串的开头,表达必须以某个字符开头
$ 写在在字符串的结尾,表达必须以某个字符结尾
当使用了^ $ 代表要把该字符串看成一个整体
"""
strvar = "大哥大嫂大爷"
print(re.findall('大.',strvar))  # ['大哥', '大嫂', '大爷']
print(re.findall('^大.',strvar)) # ['大哥']
print(re.findall('大.$',strvar)) # ['大爷']
print(re.findall('^大.$',strvar))# []
print(re.findall('^大.*?$',strvar))   # ['大哥大嫂大爷']
print(re.findall('^大.*?大$',strvar)) # []
print(re.findall('^大.*?爷$',strvar)) # ['大哥大嫂大爷']
print(re.findall('^g.*? ' , 'giveme 1gfive gay')) # giveme
print(re.findall('five$' , 'aassfive')) # [five]
print(re.findall('^giveme$' , 'giveme')) # ['giveme']
print(re.findall('^giveme$' , 'giveme giveme')) # []
print(re.findall('giveme' , 'giveme giveme')) # ['giveme', 'giveme']
print(re.findall("^g.*e",'giveme 1gfive gay')) # ['giveme 1gfive']

3. 正则表达式_匹配分组

# ### 匹配分组 ()表达整体
import re
# (1)分组
print(re.findall('.*?_good','wusir_good alex_good secret男_good'))
print(re.findall('(.*?)_good','wusir_good alex_good secret男_good'))
# (?:) 代表不优先显示分组里面的内容,只是显示正常匹配到的内容
print(re.findall('(?:.*?)_good','wusir_good alex_good secret男_good'))
# (2) | 代表或 , a|b 匹配字符a 或者 匹配字符b .
strvar = "abceab"
lst = re.findall("a|b",strvar)
print(lst)
# 注意点:把不容易匹配到的内容放到前面,把容易匹配到的内容放到后面
strvar = "abcdeabc234f"
lst = re.findall("abcd|abc",strvar)
print(lst)
# (3) 练习
"""
.  可以匹配任意的字符,除了\n
\. 对.进行转义,表达.这个字符本身.
"""
# 匹配小数
strvar = "3....  ....4  .3 ...3   1.3  9.89  10"
lst = re.findall(r"\d+\.\d+",strvar)
print(lst)
# 匹配小数和整数
lst = re.findall(r"\d+\.\d+|\d+",strvar)
print(lst)
# 使用分组改造
'''findall优先显示括号里的内容,需要加上?:取消哦优先显示,按照匹配到的内容显示'''
lst = re.findall(r"\d+(?:\.\d+)?",strvar)
print(lst)
# 匹配135或171的手机号
strvar = "13566668888 17366669999 17135178392"
lst = re.findall(r"(?:135|171)\d{8}",strvar)
print(lst)
# 优化,只能匹配出一个手机号
strvar = "13566668888"
lst = re.findall(r"^(?:135|171)\d{8}$",strvar)
print(lst)
obj = re.search(r"^(135|171)\d{8}$",strvar)
print(obj)
print(obj.group())
print(obj.groups())
# 匹配www.baidu.com 或者 www.oldboy.com
"""
findall : 从左到右,匹配出所有的内容,返回到列表
		  问题是,匹配到的字符串和分组的内容不能同时显示;
search  : 从左到右,匹配到一组内容就直接返回,返回的是对象
		  优点是,可以让匹配到的内容和分组里的内容同时显示;
		  匹配不到内容时,返回的是None
obj.group() : 获取匹配到的内容
obj.groups(): 获取分组里面的内容
"""
# findall
strvar = "www.baidu.com  www.oldboy.com  www.wangwen.com"
lst = re.findall(r"(?:www)\.(?:baidu|oldboy)\.(?:com)",strvar)
print(lst)
# search
strvar = "www.baidu.com  www.oldboy.com  www.wangwen.com"
obj = re.search(r"(www)\.(baidu|oldboy)\.(com)",strvar)
print(obj)
# 获取匹配到的内容
print(obj.group())
# 获取分组里面的内容 (推荐)
print(obj.groups())
# 方法二,可以直接通过下标1来获取分组里面的第一个内容;
print(obj.group(1))
print(obj.group(2))
print(obj.group(3))
# search 练习 : 计算"5*6-7/3"结果  匹配 5*6 或者 7/3
strvar =  "5*6-7/3"
# strvar = "www.baidu.com  www.oldboy.com  www.wangwen.com"
obj = re.search(r"\d+[*/]\d+",strvar)
res1 = obj.group()
print(res1 , type(res1)) # 5*6 <class 'str'>
# 计算结果
a,b = res1.split("*")
res2 = int(a) * int(b)
print(res2)
# 把30替换回原来的字符串中
strvar = strvar.replace(res1,str(res2))
print(strvar)
# 以此类推 ...

小提示:

1. 刘.??  最后一个问号是非贪婪模式,不是量词
word old fuck   w、d、o、d、f、k是边界
lst = re.findall(r"d\b",strvar) # ['d','d']
lst = refindall(r".*d\b",strvar) # ['word old'] 贪婪匹配,匹配到old之后
会继续向后匹配,匹配不到的话,返回前面已经匹配到的内容
print(lst)
注意: wordoldfuck 这样不行没有边界,r"d\b" 前面无脑加r,因为\b本身有退格的含义,加r让退格实现,从而使正则的边界的效果生效

4. 小练习

# 1、匹配整数或者小数(包括正数和负数)
# 2、匹配年月日日期 格式 2018-12-31
# 3、匹配qq号 5-12 首字符没有0
# 4、11位的电话号码
# 5、长度为8-10位的用户密码 : 包含数字字母下划线
# 6、匹配验证码:4位数字字母组成的
# 7、匹配邮箱地址 邮箱规则 123463922@qq.com  123@abc.com.cn
# @之前必须有内容且只能是字母,数字,下划线(_),减号(-),点(.)
# @符号后面是字母,数字,减号(-),保留121@qq.com.cn 的可能
# 最后一个点(.)之后必须有内容,字母,数字且长度为大于等于2个字节,小于等于6个字节
# 8、从类似
# <a>wahaha</a>
# <b>banana</b>
# <h1>qqxing</h1>
# <h1>q</h1>
# 这样的字符串中,
# 1)匹配出 wahaha,banana,qqxing 内容。
# 2)匹配出 a,b,h1这样的内容
# 9、'1-2*((60-30+(-40/5)*(9-2*5/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2))'
# 从上面算式中匹配出最内层小括号以及小括号内的表达式
# 10正则小程序:
"""
	给你字符串 '1-2*((60-30+(-40/5)*(9-2*5/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2))' 计算最后结果.
"""

答案:

# 1、匹配整数或者小数(包括正数和负数)
[+-]?\d+(\.\d+)?
# 2、匹配年月日日期 格式 2018-12-31
([12]\d{3})-(0?[1-9]|1[0-2])-(0?[1-9]|[12]\d|3[01])      # 0?[1-9]|1\d|2\d|3[01]   => 0?[1-9]|[12]\d|3[01]
# 3、匹配qq号 5-12 首字符没有0
[1-9]\d{4,11}
# 4、11位的电话号码
1[356789]\d{9}
# 5、长度为8-10位的用户密码 : 包含数字字母下划线
\w{8,10}
if "数字" in strvar and "字母" in strvar and "_" in strvar:
	return ok
else :
	return "格式不对"
# 6、匹配验证码:4位数字字母组成的
[0-9a-zA-Z]{4}
# 7、匹配邮箱地址 邮箱规则 123463922@qq.com  123@abc.com.cn
# @之前必须有内容且只能是字母,数字,下划线(_),减号(-),点(.)
[\w\-\.]+
# @符号后面是字母,数字,减号(-),保留121@qq.com.cn 的可能
@[a-zA-Z\d\-]+(\.[a-zA-Z\d\-]+)?
# 最后一个点(.)之后必须有内容,字母,数字且长度为大于等于2个字节,小于等于6个字节
\.[a-zA-Z\d]{2,6}
#综合:
[\w\-\.]+@[a-zA-Z\d\-]+(\.[a-zA-Z\d\-]+)?\.[a-zA-Z\d]{2,6}
# 8、从类似
# <a>wahaha</a>
# <b>banana</b>
# <h1>qqxing</h1>
# <h1>q</h1>
# 这样的字符串中,
# 1)匹配出 wahaha,banana,qqxing 内容。
<.*?>(.*?)<.*?>
# 2)匹配出 a,b,h1这样的内容
<(.*?)>.*?<.*?>
# 9、'1-2*((60-30+(-40/5)*(9-2*5/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2))'
# 从上面算式中匹配出最内层小括号的表达式
import re
strvar = '1-2*((60-30+(-40/5)*(9-2*5/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2))'
obj = re.search(r"\([^\(\)]+\)",strvar)
print(obj.group())
# 10正则小程序:
"""
	给你字符串 '1-2*((60-30+(-40/5)*(9-2*5/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2))' 计算最后结果.
"""
import re
strvar = '1-2*((60-30+-8*(9-2*5/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2))'
# 外面有括号,里面再也没有括号的的表达式就是最里层表达式;
# obj = re.search(r"\([^\(\)]+\)",strvar)
# print(obj.group())
# strvar = '1-2*(-5-6/-2*2)+(40 -  7)'
# 去除多余的符号
def operate_sign(strvar):
	strvar = strvar.replace("--","+")
	strvar = strvar.replace("++","+")
	strvar = strvar.replace("-+","-")
	strvar = strvar.replace("+-","-")
	return strvar
# 计算表达式的值
def calc_res(strvar):
	if "/" in strvar:
		a,b = strvar.split("/")
		return float(a) / float(b)
	elif "*" in strvar:
		a,b = strvar.split("*")
		return float(a) * float(b)
# 匹配计算出对应的表达式
def calc_exp(strvar):
	print(strvar , "strvar ... ") # (-5-6/-2*2)
	# ### part1 只计算乘除
	while True:
		# 1.写一条正则匹配出乘除
		obj = re.search(r"\d+(\.\d+)?[*/][+-]?\d+(\.\d+)?",strvar)
		if obj:
			# 2.匹配出乘除表达式
			res1 = obj.group()
			print(res1 , "res1 ... ") # 6/-2 res1 ...
			# 2.计算当前表达式的结果
			res2 = calc_res(res1)
			print(res2 , "res2 .. ")  # -3.0 res2 ..
			# 3.用结果替换原乘除表达式
			strvar = strvar.replace(res1,str(res2))
			print(strvar , "strvar ... 1111") # (-5--3.0*2) strvar ... 1111
		else:
			break
	# ### part2 只计算加减
	# 把表达式当中多余的符号做一个替换
	strvar = operate_sign(strvar)
	print(strvar,"2222")
	# 计算这个表达式+-结果
	lst = re.findall("[+-]?\d+(?:\.\d+)?",strvar)
	# print(lst)
	# 计算累加和
	total = 0
	for i in lst:
		total += float(i)
	return total
# 去除括号
def remove_bracket(strvar):
	while True:
		obj = re.search(r"\([^\(\)]+\)",strvar)
		# print(obj)
		if obj:
			# 匹配括号里面的表达式
			res1 = obj.group()
			print(res1 , "res1 ... ... ..  ") # (-5-6/-2*2) res1 ... ... ..
			# 计算括号里面的表达式
			res2 = calc_exp(res1)
			print(res2,"res2 ... remove_bracket") # 1.0
			# 用计算的结果替换原来的括号
			strvar = strvar.replace(res1,str(res2))
		else:
			return strvar
		# print(strvar," strvar ... remove_bracket")
# 主函数统一调用
def main(strvar):
	# 0.先去掉字符串当中出现的空格
	# 1.通过正则匹配到最里层小括号
	# 2.计算括号里面的数值
	# 3.拿算好的数值替换原来的小括号
	# 4.循环在去匹配下一个小括号,依次类推 ...
	# 先去掉字符串当中出现的空格
	strvar = strvar.replace(" ","")
	print(strvar)
	# 移除表达式中的所有括号
	res = remove_bracket(strvar)
	print(res , "res   main ...")
	# 计算最后一次没有括号的那个表达式的结果
	return calc_exp(res)
res = main(strvar)
print(res)
# print(eval(strvar))

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • python 正则表达式的使用

    目录 1.正则表达式 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.3 量词 1.3.1 量词的使用 1.3.2 贪婪量词和懒惰量词 1.4 分组 1.4.1 分组的使用 1.4.2 分组命名 1.4.3 反向引用分组 1.4.4 非捕获分组 1.5 re模块 1.5.1 search()和match()函数 1.5.2 findall

  • Python 正则表达式大全(推荐)

    目录 1 前言 2 基本语法 2.1 match函数 2.2 search 函数 2.3 sub 函数 3 特殊类语法 3.1 字符类 3.2 特殊字符类 3.3 重复匹配 3.4 非贪婪重复 3.5 圆括号分组 3.6 反向引用 3.7 锚点 3.8 带括号的特殊语法 1 前言 正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符"))操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个"规则字符串&quo

  • python正则表达式最详解

    目录 一.正则表达式–元字符 1. 数量词 2. 字符匹配 3. 边界匹配 4. 组 5. 匹配模式参数 二.方法 re.findall re.match group匹配对象 re.search re.compile 三.检索和替换 re.sub 替换字符串 总结 一.正则表达式–元字符 re 模块使 Python 语言拥有全部的正则表达式功能 1. 数量词 # 提取大小写字母混合的单词 import re a = 'Excel 12345Word23456PPT12Lr' r = re.fin

  • 一篇文章带你入门Python正则表达式

    目录 Python3 正则表达式 1.match函数 2.search函数 search和match的区别 3. sub函数 4.compile函数 5.findall 6.finditer 7.split 总结 Python3 正则表达式 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配.本文主要阐述re包中的主要函数. 在阐述re包中的函数之前,我们首先看议案正则表达式的模式,即使用特殊的语法来表示一个正则表达式. 1.match函数 re.match 尝试从

  • python正则表达式查找和替换内容的实例详解

    1.编写Python正则表达式字符串s. 2.使用re.compile将正则表达式编译成正则对象Patternp. 3.正则对象p调用p.search或p.findall或p.finditer查找内容. 4.正则对象p调用p.sub或p.subn替换内容. 实例 import re s = "正则表达式" p = re.compile(s) # 查找 mf1 = p.search("检测内容") mf2 = p.findall("检测内容") m

  • python正则表达式函数match()和search()的区别

    match()函数只检测RE是不是在string的开始位置匹配, search()会扫描整个string查找匹配, 也就是说match()只有在0位置匹配成功的话才有返回,如果不是开始位置匹配成功的话,match()就返回none 例如: #! /usr/bin/env python # -*- coding=utf-8 -*- import re text= 'pythontab' m= re.match(r"\w+", text) if m: print m.group(0) el

  • Python 正则表达式详解

    目录 1.正则表达式是什么 2.1用正则表达式 2.2匹配原理 2.3常用函数 总结 1.正则表达式是什么 很简单就是一种字符串匹配,eg: 比如你在注册账户时我们需要对用户的用户名判断是否合法,这时候就需要对用户输入的检索,或者给你5-11位的数字你确定他是否为qq号. 2.1用正则表达式 import re 2.2匹配原理 import re msg = '董小姐桥边姑娘南方小姐' pattern = re.compile('董小姐') result = pattern.match(msg)

  • Python全栈之正则表达式

    目录 1. 正则表达式_匹配单个字符 2. 正则表达式_匹配多个字符 3. 正则表达式_匹配分组 小提示: 4. 小练习 答案: 总结 1. 正则表达式_匹配单个字符 正则表达式在线测试: http://tool.chinaz.com/regex # ### 正则表达式 - 匹配单个字符 import re """lst = re.findall(正则表达式,字符串)""" # (1) 预定义字符集 # \d 匹配数字 strvar = &quo

  • python全栈要学什么 python全栈学习路线

    IT行业,技术要比学历.年龄.从业经验更为重要,技术水平直接决定就业薪资,想要学好python,首先要先了解精通Python语言基础.Python web开发.Python爬虫.Python数据分析这四大方面. 全栈即指的是全栈工程师,指掌握多种技能,并能利用多种技能独立完成产品的人.就是与这项技能有关的都会,都能够独立的完成. 全栈只是个概念,也分很多种类.真正的全栈工程师涵盖了web开发.DBA .爬虫 .测试.运维,要学的内容那是相当的巨量.就web开发方向而言需要学习的内容:前端知识 包

  • python全栈知识点总结

    全栈即指的是全栈工程师,指掌握多种技能,并能利用多种技能独立完成产品的人.就是与这项技能有关的都会,都能够独立的完成. 全栈只是个概念,也分很多种类.真正的全栈工程师涵盖了web开发.DBA .爬虫 .测试.运维,要学的内容那是相当的巨量.就web开发方向而言需要学习的内容:前端知识 包括HTML5 CSS3 JS Jquery Ajax,后端至少需要能够熟练使用Django和tornado,当然会flask更好. 扩展资料: 全栈工程师的厉害之处并不是他掌握很多知识,可以一个人干多份工作.而是

  • python全栈开发语法总结

    太多的小伙伴正在学习Python,就说自己以后要做全栈开发,大家知道这是做什么的吗?我们现在所知道的知识点,哪些是以后你要从事这个全栈所需要的呢?从名字上我们可以获知,"全"一样是掌握全部内容,没错,这里就是要自己掌握全部编程技能,足够独立开发的人,因此全栈士不如也说叫"全战士",如果想做,那就看下面能用到的语法吧. 1.中文编码-UTF8字符集 #!/usr/bin/env python # coding:utf8 2.数值 a = 1 b = 2.1 print

  • Python全栈之学习JS(2)

    目录 1. js对象 1.1 object对象 1.2 json对象 2. js字符串函数 3. js数组相关方法 4. js数学对象相关方法 5. BOM对象 5.1 定时器 5.2 获取年月日时分秒 5.3 Navigator 5.4 历史对象 6. BOM对象location 7. 小提示 ceshi.html: 总结 1. js对象 1.1 object对象 <!DOCTYPE html> <html lang="en"> <head> &l

  • Python全栈之学习JS(1)

    目录 1. js的数据类型 1.1 js引入方式 1.2 注释变量 1.3 数据类型 2. js类型转换_运算符 2.1 强制转换_Number 2.2 强制转换_String 2.3 强制转换_Boolean 2.4 自动类型转换_Number_Boolean_String三者之间转换 2.5 js运算符 3. js流程控制 3.1 分支结构 3.2 分支结构_switch_case 3.3 循环结构 4. js函数 4.1 函数 4.2 函数的调用 总结 1. js的数据类型 1.1 js引

  • Python全栈之学习MySQL(2)

    目录 1. mysql_where子句_聚合函数 2. mysql_其他子句语法 3. mysql_子查询 4. exists关键字 5. 练习所需表数据 6. 小练习 (1)表结构: (2)黏贴如下sql,直接建表 (3)练习题目 总结 1. mysql_where子句_聚合函数 # ### part 单表查询 """ select ... from ... where ... group by ... having ... order by ... limit ... &

  • Python全栈之列表数据类型详解

    前言 列表(list)同字符串一样都是有序的,因为他们都可以通过切片和索引进行数据访问,且列表是可变的. 创建列表的几种方法 第一种 name_list = ['Python', 'PHP', 'JAVA'] 第二种 name_list = list(['Python', 'PHP', 'JAVA']) 创建一个空列表 >>> li = list() >>> type(li) <class 'list'> 把一个字符串转换成一个列表 >>>

  • Python全栈之递归函数

    目录 1. 递归函数 2. 递归练习 3. 小练习 总结 1. 递归函数 # ### 递归函数 """ 递归函数 : 自己调用自己的函数 , 叫做递归函数 递 : 去 归 : 回 一去一回叫做递归 """ def digui(n): print(n,"<==1==>") if n > 0: digui(n-1) print(n,"<==2==>") digui(5) "

  • Python全栈之面向对象基础

    目录 1. 面向对象oop了解 2. 对象的相关操作 小提示: 3. 类的相关操作 4. 类对象的删除操作 小提示: 5. 小练习 小提示: 答案: 总结 1. 面向对象oop了解 # ### oop 面向对象的程序开发 # (1) 类的定义 # 1 class Car: pass # 2 推荐 class Car(): pass # 3. class Car(object): pass # (2)类的实例化 class Car(): pass obj = Car() print(obj) #

随机推荐