1.字符串查找

strs = "I like python and java"
one = strs.find('n')
print(one)
two = strs.rfind('n')
print(two)
2.字符串去掉两端字符

strs = "abbacabb"
print(strs.strip("ab"))
strs2 = "abbacabcabb"
print(strs2.strip("ab"))
3.字符串列表处理

names = ["Andrea", "Aaslay", "Steven", "Job"]
lists = []
for name in names:
if name.count('a') >= 2:
lists.append(name)
print(lists)
4.装饰器

def outer():
def inner():
print("innner", end=" ")
print("outer", end=" ")
return inner
outer()
outer()()
5.函数传参问题

def atest(a, b, *args):
print(a)
print(b)
print(args)
print(type(args))
atest(11, 22, 33, 44, 55, 66, 77, 88, 99)
"""
11
22
(33, 44, 55, 66, 77, 88, 99)
<class 'tuple'>
"""
6.字典操作

tmp = dict.fromkeys(['a', 'b'], 4)
print(tmp)
7.枚举考察

lists = [1, 2, 3, 4]
tmp = 0
print([(i, j) for i, j in enumerate(lists)])
for i, j in enumerate(lists):
tmp += i * j
print(tmp)
8.列表相关方法考察

lists = [1, 1, 2, 3, 4, 5, 6]
lists.remove(1)
lists.extend([7, 8, 9])
print(lists)
9.正则表达式考察

import re
str1 = "Python's features"
str2 = re.match(r"(.*)on(.*?) .*", str1, re.M | re.I)
print(str2.group())
print(str2.group(1))
print(str2.group(2))
10.for range考察

for i in range(10, 1, -2):
print(i)
'''
10
8
6
4
2
'''
11.简述python作用域的划分

a = 1
def fun():
b = 2
def fun2():
c = 3
print(max)
"""
注:
python中if elif else while for try except等关键字不会引入新作用域
只在方法、类、模块中引入新作用域
"""
12.解释型语言和编译型语言区别

"""
Python是一种解释型语言,它在运行时逐行地将源代码翻译成机器语言并执行。
Python解释器会逐行解释和执行源代码,这使得Python具有动态性和灵活性。
Java是一种编译型语言,它在执行之前需要先将源代码编译成字节码(即 `.class` 文件),
然后由Java虚拟机(JVM)加载和执行字节码。这种编译与解释结合的方式使得Java具有跨平台性和较好的性能
"""
"""
`.pyc` 文件和 `.class` 文件在某种程度上是类似的,因为它们都是编译后的中间形式文件,
可以由相应的解释器加载和执行。
然而,Python和Java的编译与执行方式略有不同,这导致了两者被归类为不同的语言类型。
Python的解释型特性:Python被称为解释型语言,主要是因为Python解释器在执行时会逐行解释和执行源代码。
当Python解释器在第一次执行一个`.py`文件时,它会将源代码转换为字节码,并保存为`.pyc` 文件。
这个过程虽然包含了编译的步骤,但整体上仍被认为是解释型的,因为字节码是在执行时动态生成的,
而且Python解释器会直接加载和执行这些字节码,而不是生成本地的机器码。
Java的编译型特性:Java被称为编译型语言,因为Java源代码首先需要被编译成字节码(即 `.class` 文件),
然后由Java虚拟机(JVM)加载和执行这些字节码。
在这个过程中,Java编译器将源代码全部编译成字节码文件,而且字节码并不是在执行时才生成的,
因此整体上被认为是编译型的语言。
虽然 Python 在执行时也会进行某种形式的编译(生成 `.pyc` 文件),
但由于它的执行方式更接近于逐行解释执行,因此通常被称为解释型语言。
与之相反,Java 则更符合传统编译型语言的特征。
"""
13.get请求和post请求的不同


14.python中正则表达式如何提取数据
"""
在Python中,使用正则表达式进行匹配通常需要使用re模块。以下是一些常用的正则匹配规则及其含义:
普通字符
a:匹配字符 "a"
5:匹配数字 5
.:匹配除换行符以外的任意字符
字符类
[abc]:匹配字符 "a"、"b" 或 "c"
[^abc]:匹配除了 "a"、"b" 或 "c" 之外的任意字符
[a-z]:匹配任意小写字母
[A-Z]:匹配任意大写字母
[0-9]:匹配任意数字
预定义字符类
\d:匹配任意数字,相当于 [0-9]
\D:匹配任意非数字字符,相当于 [^0-9]
\w:匹配任意字母、数字或下划线字符,相当于 [a-zA-Z0-9_]
\W:匹配任意非字母、数字或下划线字符,相当于 [^a-zA-Z0-9_]
\s:匹配任意空白字符,包括空格、制表符、换行符等
\S:匹配任意非空白字符
重复
*:匹配前面的模式零次或多次
+:匹配前面的模式一次或多次
?:匹配前面的模式零次或一次
{n}:匹配前面的模式恰好n次
{n,}:匹配前面的模式至少n次
{n,m}:匹配前面的模式至少n次,至多m次
边界
^:匹配字符串的开头
$:匹配字符串的结尾
\b:匹配单词边界
分组与引用
(pattern):匹配 pattern 并捕获匹配的文本
(?:pattern):匹配 pattern 但不捕获匹配的文本
(?P<name>pattern):给分组命名
\1, \2:引用分组匹配的文本
"""
import json
import re
str1 = "0453-6935992"
pattern = "\d{4}-\d{7}"
res = re.match(pattern, str1)
print(res)
res2 = re.search(pattern, str1)
print(res2)
print(res.group())
print(type(res.group()))
pattern2 = "(\d{4})-(\d{7})"
res3 = re.match(pattern2, str1)
print(res3.groups())
print(res3.group(0))
print(res3.group(1))
res4 = re.findall(pattern2, str1)
print(res4)
dict_test = {"name": "${name_value}", "age": 15, "address": "${address_value}"}
dict_str = json.dumps(dict_test)
pattern3 = "\${(.*?)}"
res5 = re.findall(pattern3, dict_str)
print(res5)