#单元测试
import unittest
def get_formatted_name(first,laster):
a = first
" "
laster
-
return a
class
NamesTestCase(unittest.TestCase):
#继承测试类
-
'''测试name_function.py'''
-
def setUp(self):
-
'''这里填写公用的调用类,后面直接进行测试即可'''
-
def test_first_last_name(self):
#test打头自动运行
-
'''能否处理'''
formatted_name = get_formatted_name('zhang','san')
self.assertEqual(formatted_name,'zhang san')
#断言方法,进行输出值比对
unittest.main()
assertEqual(a, b)
核实a == b
assertNotEqual(a, b)
核实a != b
assertTrue(x)
核实x为True
assertFalse(x)
核实x为False
assertIn(item, list)
核实item在list中
assertNotIn(item, list)
核实item不在list中
#虚拟环境
mkdir learing_log
python3 -m venv ll_env #建立
source ll_env/bin/activate #启用环境
deactivate #关闭环境
#Django
pip install Django
#安装
django-admin.py startproject learning_log .
#创建新项目
ls learning_log #查看项目文件
settings.py #指定Django如何与你的系统交互以及如何管理项目
urls.py #django应该创建哪些网页响应请求
wsgi.py #帮助Django提供它创建的文件
python3 manage.py migrate #安装sqlite3
python3 manage.py runserver 0.0.0.0:8000
#启动程序
python3 manage.py startapp learning_logs #创建一个应用
models.py #定义套在应用程序中管理的数据
admin.py #
views.py #
#修改数据库安装版本
vim ll_env/lib/python3.6/site-packages/django/db/backends/sqlite3/base.py
class
Topic(models.Model):
text = models.CharField(max_length=200)
#最多存储200字符
date_added = models.DateTimeField(auto_now_add=True)
#记录日期和时间
-
def __str__(self):
-
return self.text #默认用哪个来返回信息
#应用,INSTALLED_PASS,新的要加最后面
learning_log/settings.py
python3 manage.py makemigrations learning_logs #和app建立数据关系,写出一个修改脚本
python3 manage.py migrate #执行这个修改脚本
python3 manage.py createsuperuser #创建超级用户,输入用户名,邮箱,2次密码
#模块
from random import choice
choice(name)
#随机返回name这个列表中的一个内容
from collections import
Counter
#计数器
name =
['xx','a','xx']
number =
Counter(name)
#返回字典,键值还有重复次数
number.most_commont()
#降序排列
number.most_commont()
#该数字前一个元素
name one #将2个计数器合起来
name - one #第一有的,而第二个没有的
name & one #交集
name | one #并集,类似合并,但数值不叠加,只选取较大值
from collections import
OrderedDict
#有序字典
quotes =
OrderedDict([
-
('Moe',
'A wise guy, huh?'),
-
('Larry',
'Ow!'),
-
('Curly',
'Nyuk nyuk!'),
-
])
def palindrome(word):
#双端队列,两边要一致,例子是回文
-
from collections import deque
dq = deque(word)
-
while len(dq)
>
1:
-
if dq.popleft()
!= dq.pop():
-
return
False
-
return
True
palindrome('aba')
#return word == word[::-1] #迅速判断回文
import itertools
for i in itertools.chain([1,2],['a','b'])
#只迭代单个
for i in itertools.cycle([1,2])
#循环迭代,一致重复
for i in itertools.accumulate([1,2,3])
#输出挨个的叠加值
def multiply(a, b):
-
return a * b
for item in itertools.accumulate([1,
2,
3,
4], multiply):
#可以调入函数,做乘机
#模块位置
import sys
for i in sys.path:
-
print(i)
#二进制读写
bdata = bytes(range(0,
256))
fout = open('bfile',
'wb')
fout.write(bdata)
fout.close()
#自动关闭
with open('relativity',
'wt')
as fout:
fout.write(poem)
#
fin.tell()
#文件目前读取位置到开头距离
fin.seek(255)
#跳转到某个位置
xx = fin.read()
#然后继续读后面的
seek(offset,origin)
如果origin等于0(默认为
0),从开头偏移offset个字节
如果origin等于1,从当前位置处偏移offset个字节
如果origin等于2,距离最后结尾处偏移offset个字节
fin.seek(-1,2)
#文件结尾前一个字节
fin.seek(254,
0)
#返回最后2个字节
fin.seek(1,
1)
#前进一个字节
python -m http.server #最简单web服务器
os.getpid()
#当前脚本的进程号
os.getuid()
#当前用户id
os.getgid()
#当前用户组id
import subprocess
ret = subprocess.getoutput('date')
#获取命令的输出
ret = subprocess.check_output(['date',
'-u'])
#接受一个命令和参数列表,返回字节类型标准输出
ret = subprocess.getstatusoutput('date')
#获取退出状态,返回元祖
ret = subprocess.call('date')
#只要退出状态
ret = subprocess.call('date -u', shell=True)
#执行shell命令
ret = subprocess.call(['date',
'-u'])
#传入参数列表,不调用shell
#简单打印
import multiprocessing
import os
def do_this(what):
whoami(what)
def whoami(what):
-
print("Process %s says: %s"
%
(os.getpid(), what))
if __name__ ==
"__main__":
whoami("I'm the main program")
-
for n in range(4):
p = multiprocessing.Process(target=do_this,
args=("I'm function %s"
% n,))
p.start()
#终止进程模拟
import multiprocessing
import time
import os
def whoami(name):
-
print("I'm %s, in process %s"
%
(name, os.getpid()))
def loopy(name):
whoami(name)
start =
1
stop =
1000000
-
for num in range(start, stop):
-
print("tNumber %s of %s. Honk!"
%
(num, stop))
time.sleep(1)
if __name__ ==
"__main__":
whoami("main")
p = multiprocessing.Process(target=loopy, args=("loopy",))
p.start()
time.sleep(5)
p.terminate()
import calendar
calendar.isleap(1900)
#检测是否是闰年
from datetime import date
halloween = date(2014,
10,
31)
halloween
halloween.day
halloween.month
halloween.year
halloween.isoformat()
#打印时间
from datetime import date
now = date.today()
#显示进日期,返回元祖
from datetime import timedelta
one_day = timedelta(days=1)
tomorrow = now one_day
tomorrow
now
17*one_day
yesterday = now - one_day
yesterday
from datetime import time #一天中的时间
noon = time(12,
0,
0)
noon
datetime.time(12,
0)
noon.hour
noon.minute
noon.second
noon.microsecond
def washer(dishes, output):
-
for dish in dishes:
-
print('Washing', dish,
'dish')
output.put(dish)
def dryer(input):
-
while
True:
dish = input.get()
-
print('Drying', dish,
'dish')
input.task_done()
dish_queue = mp.JoinableQueue()
dryer_proc = mp.Process(target=dryer, args=(dish_queue,))
dryer_proc.daemon =
True
dryer_proc.start()
dishes =
['salad',
'bread',
'entree',
'dessert']
washer(dishes, dish_queue)
dish_queue.join()
Python单元测试
2021-06-21 14:16:42
浏览数 (1)