日誌(2)

 

1. path1 = os.path.dirname(__file__)  php

2. print(path1)#獲取當前運行腳本的絕對路徑 html

3. path2 = os.path.dirname(os.path.dirname(__file__)) #  
4. print(path2)#獲取當前運行腳本的絕對路徑(去掉最後一個路徑) python

後面以此類推
拼接路徑
config_path=os.path.join(os.path.dirname(__file__),config_path)linux


問題2:程序員

extend()和expend的區別
list.append(object) 向列表中添加一個對象object
list.extend(sequence) 把一個序列seq的內容添加到列表中sql

 

問題3:數據庫

sql中的set和update語句編程

UPDATE Person
SET Address = 'Zhongshan 23', City = 'Nanjing'
WHERE LastName = 'Wilson'windows

其使用格式:
UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值多線程

sql 中的rollback,commit(?)
ROLLBACK 只能在一個事務處理內使用(在執行一條 START TRANSACTION 命令以後)
ROLLBACK 語句回退START TRANSACTION 以後的全部語句

哪些語句能夠回退? 事務處理用來管理 INSERT 、 UPDATE 和DELETE 語句
你不能回退 SELECT 語句。(這樣作也沒有什麼意義。)你不能回退 CREATE 或 DROP 操做。事務處理塊中可使用這兩條語句,但若是你執行回退,它們不會被撤銷。

源文檔 http://www.javashuo.com/article/p-cwbafvbq-ee.html

 

問題4:

dict() 函數用於建立一個字典。返回一個字典。

d = dict()
  d['key'] = 'value' #插入值

 

問題5:

python模塊之configparser
configparser用於處理特定格式的文件,其本質上是利用open來操做文件。
源文檔 https://www.cnblogs.com/huamingao/p/6081064.html

解析配置文件:

cfg = configparser.ConfigParser()
#這個read表示對某個文件用讀打開,
cfg.read(config_path,encoding = 'utf-8')

經常使用方法:

1 #返回指定結點下的全部鍵值對
ret = config.items('section1')
2 #options返回的是指定店鋪的配置文件中的鍵
keys = cfg.options(shop_id)
3 獲取指定節點下指定key的值
v = config.get('section1', 'k1')

 

問題6:

報錯:
invalid character in identifier報錯:

意思就是「標識符中的無效字符」,檢查下有沒有字符是中文的,把中文字符改爲英文字符再運行就OK啦。

 

問題7:

Python multiprocessing模塊

http://blog.csdn.net/dutsoft/article/details/54694798

多線程模塊
multiprocessing.dummy

#建立管理進程模塊:
• Process(用於建立進程模塊)
• Pool(用於建立管理進程池)
• Queue(用於進程通訊,資源共享)
• Value,Array(用於進程通訊,資源共享)
• Pipe(用於管道通訊)
• Manager(用於資源共享)

#同步子進程模塊:
• Condition
• Event
• Lock
• RLock
• Semaphore

 

問題8:

linux與windows的不一樣:
linux的字符界面不是windows 下的dos界面
1 linux嚴格區分大小寫
2 linux中全部內容以文件形式保存,包括硬件。*
3 linux不靠擴展名區分文件類型(有約定俗成的 擴展,可是隻是爲了給管理員看的)
4 windows下的程序不能直接在linux中安裝和運行的。

字符界面的優點
字符界面佔用系統資源少
字符界面減小了出錯、被攻擊的可能性。

 

問題9:

報錯:

xxxxx takes 1 positional argument but 2 were given
缺乏參數

 

問題10:

#Python 獲取日期
self.todaydate=datetime.date.today()
self.yesterday=self.todaydate-datetime.timedelta(days=1)
self.tomorrow=self.todaydate+datetime.timedelta(days=1)
self.before7day=self.todaydate-datetime.timedelta(days=7)

self.todaytime=datetime.datetime.now().strftime('%Y-%m-%dT00:00:00')
self.yesterdaytime=self.yesterday.strftime('%Y-%m-%dT00:00:00')
self.tomorrowtime=self.tomorrow.strftime('%Y-%m-%dT00:00:00')

 注意:

將日期類型當作參數的時候,要根據參數類型修改,有時候參數多是字符串,要將日期類型改成str類型的(判斷日期相等的時候也可能須要)。

 

問題11:

傳入參數個數報錯,多是由於寫方法的時候沒有加入self。

SQL SELECT 日期函數的時候須要一字符串的方式傳入。

爬取的數據在寫入數據庫的時候要注意是不是None類型,數據庫字段多是notnull類型。

 

問題12:

怎麼聲明編碼

源文檔 <http://blog.csdn.net/wangbenzhang/article/details/76448784>

Python編程時,常常須要跳過第一行讀取文件內容。

源文檔 <http://blog.csdn.net/vernice/article/details/46501885>

 

問題13:

python如何生成鏈表
見牛客網的習題

mergeHead = ListNode(90)#建立一個鏈表結點
pHead1.val #pHead1結點的值
pHead.next表示該結點的下一個結點

 

問題14

Python 字典如何獲取字典中最大值對應的鍵

1. 利用min(dict, key=dict.get)
>>> d = {1:1, 2:0, 3:2}
{1: 1, 2: 0, 3: 2}
>>> min(d, key=d.get)
2
2. 利用lambda函數
>>> min(d.items(), key=lambda x: x[1]) 
(2, 0)
>>> min(d, key=lambda x: d[x])
2
3. collections模塊中的Counter方法返回列表中每一個元素出現的次數,返回的結果是一個字典,元素做爲鍵,次數做爲值。
tmp = collections.Counter(numbers)
defget_max(data):
count=Counter(data)
m=max(count,key=count.get)
returnm

  

問題15

1 Case具備兩種格式。簡單Case函數和Case搜索函數。 
--簡單Case函數 
CASE sex 
         WHEN '1' THEN '男' 
         WHEN '2' THEN '女' 
ELSE '其餘' END 
--Case搜索函數 
CASE WHEN sex = '1' THEN '男' 
         WHEN sex = '2' THEN '女' 
ELSE '其餘' END 

源文檔 <http://www.javashuo.com/article/p-whxphpdd-er.html>


2 表中有A B C三列,用SQL語句實現:當A列大於B列時選擇A列不然選擇B列,當B列大於C列時選擇B列不然選擇C列。

select (case when a>b then a else b end), 
(case when b>c then b esle c end) 
from table_name

 

問題16:

1 Cmd ipconfig查詢個人ip信息

2 寫代碼要遵循開發封閉原則,雖然在這個原則是用的面向對象開發,可是也適用於函數式編程,

簡單來講,它規定已經實現的功能代碼不容許被修改,但能夠被擴展。

源文檔 <http://python.jobbole.com/86632/>

 

問題17:

1 python的值傳遞和引用傳遞區別

源文檔 <http://www.dataguru.cn/thread-489552-1-1.html>

 

2 深刻理解python中函數傳遞參數是值傳遞仍是引用傳遞

源文檔 <http://www.jb51.net/article/127667.htm>

Python不容許程序員選擇採用傳值仍是傳 引用。Python參數傳遞採用的確定是「傳對象引用」的方式。實際上,這種方式至關於傳值和傳引用的一種綜合。若是函數收到的是一個可變對象(好比字典 或者列表)的引用,就能修改對象的原始值——至關於經過「傳引用」來傳遞對象。若是函數收到的是一個不可變對象(好比數字、字符或者元組)的引用,就不能 直接修改原始對象——至關於經過「傳值」來傳遞對象。


3 python中self的含義
• self在定義時須要定義,可是在調用時會自動傳入。
• self的名字並非規定死的,可是最好仍是按照約定是用self
• self老是指調用時的類的實例。

源文檔 <https://www.cnblogs.com/jessonluo/p/4717140.html>

相關文章
相關標籤/搜索