此模块为转载
https://blog.csdn.net/m0_64892604/article/details/128806043
一、创建虚拟环境
conda create --name env_name
conda create --name env_name python=3.6 # 创建指定python版本
conda create --name env_name python=3.6 pandas numpy scipy # 创建指定python版本下包含某些包
二、激活/使用/进入某个虚拟环境
conda activate env_name
三、退出当前环境
conda deactivate
四、复制某个虚拟环境
conda create --name new_env_name --clone old_env_name
五、删除某个环境
conda remove --name env_name --all
六、查看当前所有环境
conda info --envs 或者 conda env list
七、查看当前虚拟环境下的所有安装包
conda list 需进入该虚拟环境
conda list -n env_name
八、安装或卸载包(进入虚拟环境之后)
conda install requests
conda install xx=版本号 # 指定版本号
conda install xxx -i 源名称或链接 # 指定下载源
conda uninstall xxx
九、分享虚拟环境
conda env export > environment.yml # 导出当前虚拟环境
conda env create -f environment.yml # 创建保存的虚拟环境
十、源服务器管理
conda当前的源设置在$HOME/.condarc中,可通过文本查看器查看或者使用命令>conda config --show-sources查看。
conda config --show-sources #查看当前使用源
conda config --remove channels 源名称或链接 #删除指定源
conda config --add channels 源名称或链接 #添加指定源
例如:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
国内pip源
阿里云 http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣(douban) http://pypi.douban.com/simple/
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/
十一、升级
升级Anaconda需先升级conda
conda update conda
conda update anaconda
十二、卸载
rm -rf anaconda
十三、批量导出虚拟环境中的所有组件
conda list -e > requirements.txt # 导出
conda install --yes --file requirements.txt # 安装
十四、pip批量导出环境中的所有组件
pip freeze > requirements.txt
pip install -r requirements.txt
name = ‘王五’
print(name)
age = 23
print(age)
print(type(name))
print(‘’‘-------------’‘’)
print(type(age))
#标识符 :只能由字母,数字,下划线组成,数字不能作为开头,在python中是区分大小写的。
#关键字, 在命名时不能和关键字相同
#输出变量
#输出变量
print(‘python程序中输出’)
#输入
password = input(“请输入密码:”)
print(password)
password = input(“请输入密码:”)
print(‘您的密码是:%s’ %password)
t_id = input(“学号:”)
name = input(“姓名:”)
print(‘this student number: %s , name:%s’ %(t_id,name))
number = 1101
print(‘the number is : %d’ %number)
id,name,age = 1001,‘王五’,20
print(‘id: %d,姓名: %s,年龄:%d’ %(id,name,age))
ticket = 1
if ticket == 1:
print(‘has ticket’)
else :
print(“no ticket”)
score = 70
if score >=90 and score<=100:
print(‘A’)
elif score >=80 and score < 90:
print(‘B’)
elif score >=70 and score <80:
print(‘C’)
i = 0
while i< 5 :
print("now i is %d " %(i+1))
print(‘i=%d’ %i)
i+=1
#需求:将1,2,3,4 进行求和
sum = 0
for i in [1,2,3,4]:
sum+=i
print(‘sum=%d’ %sum)
for i in range(5):
print(i)
for i in range(6):
print(‘-------’)
if i ==3 :
break
print(i)
str = ‘hello’
str1 = ‘ll’
#lower: 将字母转换为小写 str.lower()
str = ‘hello’
for index ,value in enumerate(str):
print(index,value)
listm = [1,1.2,‘abc’,True]
#切片 ,使用切片前后数据类型不改变
print(listm[0:2]) # 左闭右开
#增删改查
#空列表
mylist = list()
#元素的添加
mylist.append(3)
#指定位置插入
mylist.insert(0,‘a’)
#列表合并
mylist1 = [‘c’,‘d’]
mylist.extend(mylist1)
#列表修改
mylist1[0] = 1
#删除指定的数据
mylist1.remove(‘d’)
#删除指定位置的数据
del mylist1[0]
#清空列表
mylist1.clear()
for vlaue in mylist1:
print(value)
3 in mylist1
3 not in mylist1
mytuple = (1,2,‘abc’,True)
mytuple = (1,2,[3,4])
1 ,两数相加
num1 = input(“请输入一个数字:”)
num2 = input(“请输入一个数据:”)
sum = int(num1)+int(num2)
print(‘和:%d’ %sum)
#乘法口诀表
for i in range(1,10):
for j in range(1,i+1):
print('{}*{}={} \t'.format(i,j,i*j) , end ='')
print()
import random
random.randint(0,9)
random.random()
mydict = {‘name’:‘wang’,‘age’:22,‘sex’:‘men’}
print(mydict[‘name’])
print(mydict.get(‘name’))
dict1 = {}
dict2 = dict()
print(dict1)
print(dict2)
dict1[‘userName’] = ‘wang’
dict2[“password”] = ‘zi’
dict1[‘userName’] = ‘jian’
mydict.pop(“sex”)
del mydict[‘age’]
mydict.clear()
‘age’ in mydict
mydict.values()
mydict.keys()
for key in mydict:
print(key)
print(mydict[key])
for key,value in mydict:
print(key, value)
myset = {1,2,4,‘abc’}
#定义空集合
myset2 = set()
mylist = [1,1,1,2,2,3,3,3]
myset3 = set(mylist)
print(myset3)
def show(num1):
‘’’
函数的功能:
参数 :
‘’’
print(num1)
help(show)
def show():
print(‘hello word’)
def show(name,age):
print(name,age)
def show():
str1 = ‘hello world’
return str1
def show(name,age):
str1 = ‘hello %s world %d’ %(name,age)
return str1
#1.两个函数名相同时,下面的函数会覆盖上面的函数
#2,函数名也不要和变量名相同
def sum_num (num1,num2):
result = num1+num2
return result
def sum_num (num1=1,num2=2):
result = num1+num2
return result
print(sum_num(1))
def sum_num3(*args):
print(type(args))
result = 0
for value in args: # 遍历元组
result += value
return result
re = sum_num3(2,3,4,5)
print(re)
def sum_num4 (**kargs):
print(type(kargs))
for key,value in kargs.items(): #遍历字典
print(key,value)
sum_num4(num1=1,num2=2)
num = 100
def show():
global num #修改全局变量通过 global 关键字
num =10
print(num)
show()
print(num)
#创建 和调用
result = (lambda a,b,c : a+b+c)(1,2,3)
print(result)
class Teacher(object):
#定义属性
country = ‘China’
#方法
def show(shef):
print(“Teacher”)
teacher = Teacher()
#获取对象属性
print(teacher.country)
#teacher.show()
#查看 类继承的父类
print(Teacher.base)
teacher.name = ‘zs’
teacher.age = 20
teacher.name = ‘ls’
print(teacher.name,teacher.age)
class Cat(object):
def eat(self):
print(‘%s eating’ %self.name)
c1 = Cat()
c1.name = ‘c1’
c1.eat()
class Teacher(object):
def init(self,name ,age):
self.name = name
self.age = age
def show(self):
print("teacher")
t1 = Teacher(‘zs’,20)
print(t1.name,t1.age)
t1.show()
#3. 子类可以继承父类的属性和方法
#单继承:子类只继承一个父类
#优点: 子类可以直接使用父类的属性和方法
class Person(object):
def init(self,name ,age):
self.name = name
self.age = age
def show(self):
print(self.name,self.age)
class Student(Person):
pass
stu = Student(‘zs’,20)
print(stu.name,stu.age)
stu.show()
class A (object):
def show(self):
print(“A”)
class B (object):
def show(self):
print(“B”)
class C (A,B):
pass
c = C()
c.show()
print(C.mro())
class Person(object):
def init(self,name ,age):
self.name = name
self.age = age
def show(self):
print(self.name,self.age)
class Student(Person):
def init(self,name,age,sex):
self.name = name
self.age = age
self.sex = sex
def show(self):
print('my name is %s age is %d sex is %s'% (self.name,self.age,self.sex))
pass
stu = Student(‘zs’,20,‘men’)
stu.show()
class Student(Person):
def init(self,name,age,sex):
# 公有属性
self.name = name
self.age = age
# 私有属性: 是以两个下划线定义的 __ ,只能在本类内部使用,在类外面不能使用
self.__sex = sex
def show(self):
print('my name is %s age is %d sex is %s'% (self.name,self.age,self.__sex))
stu = Student(‘zs’,20,‘men’)
stu.show()
#Animal
class Animal(object):
def run(self):
print(“Animal run”)
class Dog(Animal):
def run(self):
print(“Dog run”)
class Cat(Animal):
def run(self):
print(“Cat run”)
def run_two(animal):
animal.run()
animal.run()
dog = Dog()
cat = Cat()
run_two(dog)
run_two(cat)
try:
print(num)
except Exception as e:
print(‘有异常出现时执行里面的代码’)
print(e)
print(“不影响后面代码的执行”)
while True:
str1=input(‘number’)
try:
num = int(str1) +1
except Exception as e :
print(‘exception’)
print(‘%qconsole input again’)
else:
print(‘no error’)
finally:
print(‘finally’)
import first_module
print(first_module.g_num)
stu = first_module.Student(‘zs’,20)
stu.show_msg()
import first_module
from first_module import show
from first_module import Student
show()
Student(‘ZS’,20)
#1.打开文件
#2.对文件进行操作(读,写)
#3,关闭文件
#打开方式
#r: 只读,文件不存在程序会崩溃,出现文件不存在异常
#w:只写,只会讲原来的内容进行覆盖掉,如果文件不存在,会创建一个文件
#a: 追加写入
#b:标识二进制的形式 常用rb: 以二进制方式打开一个文件用于只读, wb: 以二进制方式打开一个文件用于只写
f = open(“./text.txt”,‘w’,encoding=‘utf-8’)
f.write(‘ABC’)
f.write(‘工程师’)
f.close()
from first_module import show as show_msg
show_msg()
def show():
print(‘hello student’)
show()
f = open(‘./text.txt’,‘r’,encoding=‘utf-8’)
content = f.read()
f.close()
f = open(‘./text.txt’,‘a’,encoding=‘utf-8’)
f.write(‘bcd’)
f.close()
f = open(‘./text.txt’,‘rb’)
content = f.read()
print(content,type(content))
result = content.decode(‘utf-8’)
print(result)
print(result.encode(‘utf-8’))
#关闭
f.close()
mylist = [1,4,2,5,6,3,9]
mylist.sort(reverse=True)
print(mylist)
def is_os(num):
if num%2==0:
return True
else :
return False
print(is_os(7))
#匿名函数
f = lambda num:True if num %2 ==0 else False
re = f(3)
print(re)
mylist =[{‘name’:‘zs’,‘age’:20},{‘name’:‘ls’,‘age’:10},{‘name’:‘ws’,‘age’:21}]
#mylist.sort(key = lambda item : item[‘age’],reverse=False)
#print(mylist)
#普通函数
def get_value(item):
return item[‘age’]
mylist.sort(key=get_value,reverse=True)
print(mylist)
oldfile = open(‘./source.txt’,‘rb’)
newfile = open(‘./target.txt’,‘wb’)
#文件操作
while True:
filedata = oldfile.read(1024) # 1024: 读取1024字节的数据
# 判断是否读取完成
if len(filedata) == 0:
break
newfile.write(filedata)
oldfile.close()
newfile.close()
class Book(object):
def init(self,name=‘jueji’,price= ‘39’,author =‘gjm’):
self.name = name
self.price = price
self.author =author
def you(self):
print(‘sutdy hard %s book’ %self.name)
def info(self):
print(‘bookname:%s ,jiage: %s , zuozhe: %s’ %(self.name,self.price,self.author))
class BookZi(Book):
pass
fu = Book(“shazi”,“100”,“gjm”)
fu.you()
fu.info()
zi = BookZi(‘ershazi’,“1000”,“gjm”)
zi.info()
import re
str1 = ‘abc 123 def’
print(re.match('^abc\s\d\d\d\sdef$',str1).group())
print(re.match('^abc\s\d{3}\sdef$',str1).group())
print(re.match('^abc\s.*\sdef$',str1).group())
print(re.match('^abc\s(.*)\sdef$',str1).group(1))
import re
str1 = ‘hello 7709 66 aa 77 student’
content = re.sub(‘(\d+)’,r’\1 789’ , str1)
print(content)
以下部分为转载
https://blog.csdn.net/evehaoeve/article/details/119093894
(?=pattern) (?!pattern) (?<=pattern) (? 刚开始学习正则表达式的时候看着最蒙逼的4个表达式, 小括号中带着问号, 一脸蒙逼不知道是写的
啥, 也没整明白效果是啥. 后来终于在不断的看文档和尝试, 总算是搞明白了
预查表达式
预查表达式主要功能是起到 判断作用 , 类似于编程中的 if 判断语句, 判断当前匹配字符的左右内容是
什么, 并且符合预查表达式内容的内容 不会被获取 .
在我们要匹配一些字符串的时候, 通常有些内容我们不需要匹配获取, 但是可以作为参考, 这个时候就
可以使用预查表达式了. 例: 获取所有 括号之间的内容不包含括号 , 所有 双引号之间的内容 等.
方向
预查表达式可以看到有两个方向, 正向 和 反向. 通俗来说就是 当前字符判断位置 的 右边 和 左边.
4种表达式中 < 用来描述向左(反向), 没有 < 表示向右(正向)
当然这种写法也是固定的, 比如你写个(?<<=)就报错了.
肯定 和 否定
肯定用 = 号描述, 否定用 ! 号描述
这两种含义最简单的理解就是 是 和 不是
bcd(?=123) 表示 获取 bcd 字符串并且该字符串右边一定是 123 字符串.
能匹配到bcd123
bcd(?!123) 表示 获取 bcd 字符串, 并且该字符串右边一定不是 123
所以匹配到的内容一定不是bcd123, 可以是bcdasd, bcdbcd, bcd123… 反正bcd右边不是123的
都行
各种刁钻的例子