python常見問題與解答

2021-07-11 09:51:15 字數 4086 閱讀 6273

1、python函式返回多個值

def getvaule(a,b):

c = a + b

d = a - b

e = a * b

return (e,d,e)

x,y,z = getvaule(5,10)

print 'x: ',x,'y: ',y,'z: ',z

2、list去重問題

(1)直觀方法

number = [5,6,3,4,5,3,1,2,3,2,1,3,1]

new_number=

for num in number:

if num not in new_number:

print new_number

(2)用set
number = [5,6,3,4,5,3,1,2,3,2,1,3,1]

new_number = list(set(number))

print new_number

但是,這樣的結果是沒有保持原來的順序,我們可以按照索引再次排序

number = [5,6,3,4,5,3,1,2,3,2,1,3,1]

new_number = list(set(number))

new_number.sort(number.index)

print new_number

3、replace代替字串replace() 方法把字串中的 old(舊字串) 替換成 new(新字串),如果指定第三個引數max,則替換不超過 max 次

str.replace(old, new[, max])

舉例:

str = "this is string example....wow!!! this is really string";

print str.replace("is", "was");

print str.replace("is", "was", 3);

輸出:
thwas was string example....wow!!! thwas was really string

thwas was string example....wow!!! thwas is really string

4、全域性變數

(注:應該盡量避免使用全域性變數。不同的模組都可以自由的訪問全域性變數,可能會導致全域性變數的不可預知性。對全域性變數,如果程式設計師甲修改了_a的值,程式設計師乙同時也要使用_a,這時可能導致程式中的錯誤。這種錯誤是很難發現和更正的。 

全域性變數降低了函式或模組之間的通用性,不同的函式或模組都要依賴於全域性變數。同樣,全域性變數降低了**的可讀性,閱讀者可能並不知道呼叫的某個變數是全域性變數。)

(1)宣告法

在檔案開頭宣告全域性變數variable,

在具體函式中使用該變數時,需要事先宣告 global variable,否則系統將該變數視為區域性變數。

constant = 0  #(將全域性變數大寫便於識別)

def modifyconstant() :

global constant

print constant

constant += 1

return

if __name__ == '__main__' :

modifyconstant()

print constant

(2)模組法(推薦)

把全域性變數定義在乙個單獨的模組中:

#gl.py

gl_1 = 'hello'

gl_2 = 'world'

在其它模組中使用

#a.py

import gl

def hello_world()

print gl.gl_1, gl.gl_2

#b.py

import gl

def fun1()start = time.time()

run_fun()

end = time.time()

print end-start

gl.gl_1 = 'hello' gl.gl_2 = 'world'

第二種方法,適用於不同檔案之間的變數共享,而且一定程度上避免了開頭所說的全域性變數的弊端,推薦!

5、操作日期和時間

import time

# 獲得當前時間時間戳

now = int(time.time()) # ->這是時間戳

# 轉換為其他日期格式,如:"%y-%m-%d %h:%m:%s"

timearray = time.localtime(now)

otherstyletime = time.strftime("%y-%m-%d %h:%m:%s", timearray)

print otherstyletime

start = time.time()

run_fun()

end = time.time()

print end-start

6、str.strip()

方法用於移除字串頭尾指定的字元(預設為空白字元)

所謂空白字元,一般來說包括:空格、回車、換行、水平製表符等

str = "0000000this is string example....wow!!!0000000"

print str.strip( '0' )

輸出:this is string example....wow!!!

str = "  0000000this is string example....wow!!!0000000  "

print str.strip()

輸出:
000000this is string example....wow!!!0000000

7、type:返回元素型別

print type('ads')

8、importerror: cannot import name iskeyword

命名了乙個keyword的檔案,與系統的衝突了,改名即可

9 全域性變數

記得寫成

global a

a = ?

10 list遍歷時刪除元素問題

方法一 不指定 刪除全部

for i in range(len(a)): 

print a.pop(0)

方法二 filter過濾返回新的list

l = [1,2,3,4]

l = filter(lambda x:x !=4, l)

print l

#[1,2,3]

方法三 for in

l = [1,2,3,4]

l = [ i for i in l if i !=4] #同樣產生乙個新序列,賦值給l

print l

方法四 建立新的list存放要刪除的元素

l = [1,2,3,4]

dellist =

for i in l:

if i == 4:

for i in dellist:

l.remove(i)

oracle常見問題與解答

1.對於sql,有幾種方法檢視執行計畫,每種方法有什麼區別,對於一條正在執行的sql,如何檢視真實的,正在使用的執行計畫?答 第一種方法 explain plan for 生成指定sql語句的執行計畫,並把執行計畫儲存到使用者指定的表中,供使用者查詢,但不作為真正執行時的執行計畫,因為並沒有儲存在l...

CUDA常見問題與解答

源 1.在sdk自帶的例子程式中,發現src檔案珜下有.cpp檔案和.cu檔案。這兩種檔案的關係和各自的作用是什麼呀?答 sdk自帶例子中的.cpp檔案主要是一些cpu端處理,或者是使用cpu計算對照組結果,在某些例子中也會在.cpp檔案中以函式的形式呼叫封裝成c或者c 函式的gpu端 cu檔案中通...

SEO服務常見問題與解答

1 什麼是seo服務?seo,即搜尋引擎優化 search engine optimization 通過圍繞關鍵字展開的技術進行的新型網路營銷方式。它的核心即提高關鍵字排名,其目的是增加 率。2 使用seo服務有什麼意義?3 為什麼選擇seo服務而不選擇其他關鍵字廣告?關鍵字廣告的服務有搜尋引擎服務...