1. 程式人生 > >第14次全天課筆記 20181028 集合、時間、類

第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)

 

 

物件:

狀態---例項變數、類變數

行為---例項方法、類方法