第14次全天課筆記 20181028 集合、時間、類
第14次全天課筆記
習題1把一個檔案中的所有數字刪除
filtered_content=""
with open("e:\\a.txt","r",encoding="utf-8") as fp:
content=fp.read()
for i in content:
if i >="0" and i <= "9":
continue
else:
filtered_content+=i
with open("e:\\a.txt","w",encoding="utf-8") as fp:
fp.write(filtered_content)
with open("e:\\a.txt","r",encoding="utf-8") as fp:
print(fp.read())
習題2把一個多級目錄中所有檔案的字母刪除
import os.path
file_path=[]
for root,dirs,files in os.walk("e:\\letter"):
for f in files:
file_path.append(os.path.join(root,f))
print(file_path)
for file in file_path:
filter_content = ""
with open(file) as fp:
content = fp.read()
for letter in content:
if (letter >="a" and letter <="z") \
or (letter >="A" and letter <="Z"):
continue
else:
filter_content+=letter
with open(file,"w") as fp:
fp.write(filter_content)
import letter.a
print(letter.a.x)
from letter import a
print(a.x)
from letter.a import x
print(x)
__init__ 裡面寫東西,import 之後,可以直接使用
如果使用from X import *,只匯入X裡面的 __all__ 定義的
對於包引入也是一樣的,如果__init__ 的裡面寫上__all__ = ["a"],那麼引入這個包的時候,之引入__all__ 裡面的模組。
簡歷如何寫
工作:
1 功能測試框架
2 bug預防
3 探索式測試策略
4 流程優化
5 積極主動(催著別人幹活、多幹一些專案的事兒)
都要做自動化(程式設計、框架、寫指令碼、寫工具、寫平臺)
研究人家的工具,引入別人的工具。
6 學習開發的架構,設計的思想、分析問題的方法。
(你們公司的產品的技術架構是什麼?)
7 深入瞭解業務。(你能當半個產品經理就好)
8 效能測試
9 安全
簡歷:
1 工作的大概專案,你幹了什麼,亮點
2 測試框架
3 bug預防體系
4 分享的能力
5 流程優化的能力
6 質量:漏測
7 技術:
指令碼
框架:github(8個)專案xxx行程式碼。
效能做一個專案(在公司內部找個老師,幹一個就行)
集合
>>> s=set()
>>> s
set()
>>> type(s)
<class 'set'>
>>> s.add("a") #增加元素
>>> s
{'a'}
>>> s.add("b")
>>> s
{'b', 'a'}
>>> s.add("c")
>>> s
{'b', 'c', 'a'}
>>> s.add("c")
>>> s
{'b', 'c', 'a'} #無序的
>>> a[0]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined
>>> s
{'b', 'c', 'a'}
>>> s.update("klf") #拆分成單個字元
>>> s
{'l', 'a', 'f', 'k', 'b', 'c'}
>>> s.add("klf")
>>> s
{'l', 'a', 'f', 'klf', 'k', 'b', 'c'}
>>>
>>> for i in s: #遍歷集合
... print(i)
>>> for index,i in enumerate(a):print(index,i) #列舉
>>> s.remove("l") #刪除元素
>>> a=set([1,2,3])
>>> a
{1, 2, 3}
>>> a=set("abc")
>>> a
{'b', 'a', 'c'}
>>> a=set((1,2,3))
>>> a
{1, 2, 3}
>>> a=set({1:2,2:3})
>>> a
{1, 2}
>>> a=set({1:2,2:3}.values())
>>> a
{2, 3}
>>> a=set({1:2,2:3}.items())
>>> a
{(1, 2), (2, 3)}
>>> a=set("abcd")
>>> b=set("cdef")
>>> a&b
{'d', 'c'}
>>> a|b
{'b', 'd', 'f', 'c', 'e', 'a'}
>>> list(a)
['b', 'a', 'd', 'c']
>>> set(list(a))
{'b', 'a', 'd', 'c'}
>>> tuple(a)
('b', 'a', 'd', 'c')
>>> a
{'b', 'a', 'd', 'c'}
>>> b=set("ab")
>>> b
{'b', 'a'}
>>> a.issuperset(b)
True
>>> b.issubset(a)
True
>>> a=frozenset([1,2,3])
>>> a
frozenset({1, 2, 3})
第9章 時間
>>> import time
>>> time.localtime()
time.struct_time(tm_year=2018, tm_mon=10, tm_mday=28, tm_hour=15, tm_min=13, tm_
sec=4, tm_wday=6, tm_yday=301, tm_isdst=0)
>>> time.localtime().tm_year
2018
>>> str(time.localtime().tm_year)+"年"+str(time.localtime()[1])+"月"
'2018年10月'
>>> time.time() #時間戳
1540711148.3928528
>>> time.localtime(1540711148.3928528) #將時間戳轉成時間元組
time.struct_time(tm_year=2018, tm_mon=10, tm_mday=28, tm_hour=15, tm_min=19, tm_
sec=8, tm_wday=6, tm_yday=301, tm_isdst=0)
格林威治時間
>>> time.gmtime()
time.struct_time(tm_year=2018, tm_mon=10, tm_mday=28, tm_hour=7, tm_min=21, tm_s
ec=34, tm_wday=6, tm_yday=301, tm_isdst=0)
>>> time.mktime(time.gmtime()) #將時間元組轉為時間戳
1540682630.0
>>> time.sleep(3) 等待3秒
格式化時間 time.strftime
strTime = time.strftime("%Y-%m-%d %H:%M:%S", formatTime)
使用中文
import locale
locale.setlocale(locale.LC_CTYPE, 'chinese')
strTime=time.strftime("%Y年-%m月-%d日 %H:%M:%S",
time.localtime())
將時間變為時間元組 strptime
import time
stime = "2015-08-24 13:01:30"
#通過strptime()函式將stime轉化成strcut_time形式
formattime = time.strptime(stime,"%Y-%m-%d %H:%M:%S")
print (formattime)
Datetime
>>> import datetime
>>> datetime.date.today()
datetime.date(2018, 10, 28)
>>> t = datetime.date.today()
>>> print(t)
2018-10-28
日期加上一個時間間隔
#coding=utf-8
from datetime import *
#獲取今天的日期
today = date.today()
print (today)
#在今天的日期上再加10天
print (today + timedelta(days = 10))
日期替換
today = date.today()
#替換形成一個新的日期
future = today.replace(day = 15) #year、month等都可以替換
替換時分秒
from datetime import *
tm = tm = datetime.now()
print (tm)
tm1 = tm.replace(hour = 12, minute = 10,second=30)
print (tm1)
Timedelta類--兩日期的時間相減
程式碼示例:
#coding=utf-8
import datetime
#求兩個日期間的天數差
d1 = (datetime.datetime(2015, 7, 5))
d2 = (datetime.datetime(2015, 8, 26))
print ((d2 - d1).days)
兩個時間相減時,就會返回一個datetime.timedelta時間物件,代表兩個時間之間的時間差。
timedelta.total_seconds()函式
timedelta類中,該方法用於獲取總共的秒數。
程式碼示例:
#coding=utf-8
import datetime
#計算給定時間間隔的總秒數
seconds = datetime.timedelta(hours=1, seconds=30).total_seconds()
print (seconds)
面向物件
定義一個類
class Person():
def set_name(self,name):
self.name=name
def get_name(self):
print(self.name)
p = Person()
p.set_name("xuefeifei")
p.get_name()
每個物件不存類方法,self,呼叫類記憶體中儲存的方法
class Employee(object):
#所有員工基類
empCount= 0
def __init__(self, name, salary) :
#類的建構函式
self.name = name
self.salary = salary
self.empCount += 2
def displayCount1(self) :
#類方法
print ("total employee ",Employee.empCount)
def displayCount2(self) :
#類方法
print ("total employee ",self.empCount)
def displayEmployee(self) :
print ("name :",self.name , ", salary :", self.salary)
e=Employee("xuefeifei","12k")
e.displayCount1()
e.displayCount2()
print(Employee.empCount)
物件:
狀態---例項變數、類變數
行為---例項方法、類方法