當前位置:首頁 » 編程語言 » 經典python代碼

經典python代碼

發布時間: 2023-03-13 19:56:20

① 6 個值得玩味的 python 代碼

先選取了 6 個自己認為值得玩味的 python代碼,希望對正在學習 python 的你有所幫助。

1、類有兩個方法,一個是 new,一個是 init,有什麼區別,哪個會先執行呢?

運行結果如下:

再來看另一個例子

運行結果如下:

這里給出官方的解釋: init 作用是類實例進行初始化,第一個參數為 self,代表對象本身,可以沒有返回值。 new 則是返回一個新的類的實例,第一個參數是 cls 代表該類本身,必須有返回值。很明顯,類先實例化才能產能對象,顯然是 new 先執行,然後再 init ,實際上,只要 new 返回的是類本身的實例,它會自動調用 init 進行初始化。但是有例外,如果 new 返回的是其他類的實例,則它不會調用當前類的 init 。下面我們分別輸出下對象 a 和對象 b 的類型:

可以看出,a 是 test 類的一個對象,而 b 就是 object 的對象。

2、map 函數返回的對象

map()函數第一個參數是 fun,第二個參數是一般是 list,第三個參數可以寫 list,也可以不寫,作用就是對列表中 list 的每個元素順序調用函數 fun 。

有沒有發現,第二次輸出 b 中的元素時,發現變成空了。原因是 map() 函數返回的是一個迭代器,並用對返回結果使用了 yield,這樣做的目的在於節省內存。 舉個例子:

執行結果為:

這里如果不用 yield,那麼在列表中的元素非常大時,將會全部裝入內存,這是非常浪費內存的,同時也會降低效率。

3、正則表達式中 compile 是否多此一舉?

比如現在有個需求,對於文本 中國 ,用正則匹配出標簽裡面的「中國」,其中 class 的類名是不確定的。有兩種方法,代碼如下:

這里為什麼要用 compile 多寫兩行代碼呢? 原因是 compile 將正則表達式編譯成一個對象,加快速度,並重復使用。

4、[[1,2],[3,4],[5,6]]一行代碼展開該列表,得出[1,2,3,4,5,6]

5、一行代碼將字元串 "->" 插入到 "abcdefg"中每個字元的中間

這里也建議多使用 os.path.join() 來拼接操作系統的文件路徑。

6、zip 函數

zip() 函數在運算時,會以一個或多個序列(可迭代對象)做為參數,返回一個元組的列表。同時將這些序列中並排的元素配對。zip() 參數可以接受任何類型的序列,同時也可以有兩個以上的參數;當傳入參數的長度不同時,zip 能自動以最短序列長度為准進行截取,獲得元組。

② python編程例子有哪些

python編程經典例子:

1、畫愛心表白、圖形都是由一系列的點(X,Y)構成的曲線,由於X,Y滿足一定的關系,所以就可以建立模型,建立表達式expression,當滿足時,兩個for循環(for X in range;for Y in range)就會每行每列的列印。

(2)經典python代碼擴展閱讀:

Python的設計目標之一是讓代碼具備高度的可閱讀性。它設計時盡量使用其它語言經常使用的標點符號和英文單字,讓代碼看起來整潔美觀。它不像其他的靜態語言如C、Pascal那樣需要重復書寫聲明語句,也不像它們的語法那樣經常有特殊情況和意外。

Python開發者有意讓違反了縮進規則的程序不能通過編譯,以此來強製程序員養成良好的編程習慣。並且Python語言利用縮進表示語句塊的開始和退出,而非使用花括弧或者某種關鍵字。增加縮進表示語句塊的開始,而減少縮進則表示語句塊的退出,縮進成為了語法的一部分。

③ Python高難度代碼例子、Python最復雜代碼例子

#IT教育# #IT# #程序員# #人工智慧#

最近學習pytorch,看到下面的Python高難度代碼例子和Python最復雜代碼例子:

from google.colab import output as colab_output
from base64 import b64decode
from io import BytesIO
from pyb import AudioSegment

RECORD = """
const sleep = time => new Promise(resolve => setTimeout(resolve, time))
const b2text = blob => new Promise(resolve => {
const reader = new FileReader()
reader.onloadend = e => resolve(e.srcElement.result)
reader.readAsDataURL(blob)
})
var record = time => new Promise(async resolve => {
stream = await navigator.mediaDevices.getUserMedia({ audio: true })
recorder = new MediaRecorder(stream)
chunks = []
recorder.ondataavailable = e => chunks.push(e.data)
recorder.start()
await sleep(time)
recorder.onstop = async ()=>{
blob = new Blob(chunks)
text = await b2text(blob)
resolve(text)
}
recorder.stop()
})
"""

def record(seconds=1):
display(ipd.javascript(RECORD))
print(f"Recording started for {seconds} seconds.")
s = colab_output.eval_js("record(%d)" % (seconds * 1000))
print("Recording ended.")
b = b64decode(s.split(",")[1])

fileformat = "wav"
filename = f"_audio.{fileformat}"
AudioSegment.from_file(BytesIO(b)).export(filename, format=fileformat)
return torchaudio.load(filename)

waveform, sample_rate = record()
print(f"Predicted: {predict(waveform)}.")
ipd.Audio(waveform.numpy(), rate=sample_rate)

js 的Promise函數對象編程,字元串javascript函數對象,IPython解釋js對象,解釋結果和python代碼結合,IPython Shell顯示非字元串數據,python音頻使用IPython簡單調用。

復雜Python模塊下的多知識點結合代碼,是Python高難度代碼的體現。

Js的Promise理解為動態函數,比C++的類成員函數和全局函數這類靜態形式的函數處理靈活,不過初學者理解起來麻煩。代碼里sleep和b2text都代表一些處理函數,也就是幾行代碼,而不是數據。通常來講,變數一般代表數據,但是這里代表了指令。

④ Python中的9個代碼小實例!

1、串聯比較

2、串聯函數調用

3、復制列表

4、字典獲取元素值

5、 按值排序字典

6、 For Else

7、列表轉換為逗號分隔的字元串

8、合並字典

9、尋找列表中最大和最小元素的索引

若有不明白的地方,請移步Python視頻教程繼續學習!!

⑤ 10個極簡python代碼,拿走即用

Hello,大家好,我是程序汪小成~

雖然python是一個易入門的語言,但是很多人依然還是會問到底怎麼樣學 Python 才最快,答案當然是實戰各種小項目, 只有自己去想與寫,才記得住規則 。本文寫的是 10 個極簡任務,初學者可以嘗試著自己實現;本文同樣也是 10段代碼,Python 開發者也可以看看是不是有沒想到的用法。

以下方法可以檢查給定列表是不是存在重復元素,它會使用 set() 函數來移除所有重復元素。

給定具體的大小,定義一個函數以按照這個大小切割列表。

這個方法可以將布爾型的值去掉,例如(False,None,0,「」),它使用 filter() 函數。

我們常用 For 循環來遍歷某個列表,同樣我們也能枚舉列表的索引與值。

如下代碼段可以將打包好的成對列表解開成兩組不同的元組。

該方法將通過遞歸的方式將列表的嵌套展開為單個列表。

該方法將返回第一個列表的元素,且不在第二個列表內。如果同時要反饋第二個列表獨有的元素,還需要加一句 set_b.difference(set_a)。

如下代碼塊可以用來計算執行特定代碼所花費的時間。

演算法會打亂列表元素的順序,它主要會通過 Fisher-Yates 演算法對新列表進行排序:

不需要額外的操作就能交換兩個變數的值。

以上,是我簡單列舉的十個python極簡代碼,拿走即用,希望對你有所幫助!

⑥ python有趣的編程代碼

classPoint:
row=0
col=0
def__init__(self,row,col):
self.row=row
self.col=col

def(self):
returnPoint(row=self.row,col=self.col)


#初始框架
importpygame
importrandom

#初始化
pygame.init()
W=800
H=600

ROW=30
COL=40

size=(W,H)
window=pygame.display.set_mode(size)
pygame.display.set_caption('貪吃蛇')

bg_color=(255,255,255)
snake_color=(200,200,200)

head=Point(row=int(ROW/2),col=int(COL/2))
head_color=(0,128,128)

snakes=[
Point(row=head.row,col=head.col+1),
Point(row=head.row,col=head.col+2),
Point(row=head.row,col=head.col+3)
]

#生成食物
defgen_food():
while1:
pos=Point(row=random.randint(0,ROW-1),col=random.randint(0,COL-1))

#
is_coll=False

#是否跟蛇碰上了
ifhead.row==pos.rowandhead.col==pos.col:
is_coll=True

#蛇身子
forsnakeinsnakes:
ifsnake.row==pos.rowandsnake.col==pos.col:
is_coll=True
break

ifnotis_coll:
break

returnpos


#定義坐標


food=gen_food()
food_color=(255,255,0)direct='left'#left,right,up,down

#
defrect(point,color):
cell_width=W/COL
cell_height=H/ROW

left=point.col*cell_width
top=point.row*cell_height

pygame.draw.rect(
window,color,
(left,top,cell_width,cell_height)
)
pass

#游戲循環
quit=True
clock=pygame.time.Clock()
whilequit:
#處理事件
foreventinpygame.event.get():
ifevent.type==pygame.QUIT:
quit=False
elifevent.type==pygame.KEYDOWN:
ifevent.key==273orevent.key==119:
ifdirect=='left'ordirect=='right':
direct='up'
elifevent.key==274orevent.key==115:
ifdirect=='left'ordirect=='right':
direct='down'
elifevent.key==276orevent.key==97:
ifdirect=='up'ordirect=='down':
direct='left'
elifevent.key==275orevent.key==100:
ifdirect=='up'ordirect=='down':
direct='right'

#吃東西
eat=(head.row==food.rowandhead.col==food.col)

#重新產生食物
ifeat:
food=gen_food()

#處理身子
#1.把原來的頭,插入到snakes的頭上
snakes.insert(0,head.())
#2.把snakes的最後一個刪掉
ifnoteat:
snakes.pop()

#移動
ifdirect=='left':
head.col-=1
elifdirect=='right':
head.col+=1
elifdirect=='up':
head.row-=1
elifdirect=='down':
head.row+=1

#檢測
dead=False
#1.撞牆
ifhead.col<0orhead.row<0orhead.col>=COLorhead.row>=ROW:
dead=True

#2.撞自己
forsnakeinsnakes:
ifhead.col==snake.colandhead.row==snake.row:
dead=True
break

ifdead:
print('死了')
quit=False

#渲染——畫出來
#背景
pygame.draw.rect(window,bg_color,(0,0,W,H))

#蛇頭
forsnakeinsnakes:
rect(snake,snake_color)
rect(head,head_color)
rect(food,food_color)

#
pygame.display.flip()

#設置幀頻(速度)
clock.tick(8)

#收尾工作

這是一個簡易版貪吃蛇的代碼,雖然結構簡單,但是該有的功能都是完整的,可玩性也不錯

熱點內容
動態規劃01背包演算法 發布:2024-11-05 22:17:40 瀏覽:849
nasm編譯器如何安裝 發布:2024-11-05 22:01:13 瀏覽:180
登錄密碼在微信的哪裡 發布:2024-11-05 22:00:29 瀏覽:739
c防止反編譯工具 發布:2024-11-05 21:56:14 瀏覽:247
安卓虛擬機怎麼用 發布:2024-11-05 21:52:48 瀏覽:344
php時間搜索 發布:2024-11-05 20:58:36 瀏覽:479
燕山大學編譯原理期末考試題 發布:2024-11-05 20:13:54 瀏覽:528
華為電腦出現臨時伺服器 發布:2024-11-05 20:05:08 瀏覽:408
斗戰神免費挖礦腳本 發布:2024-11-05 19:53:25 瀏覽:665
網吧伺服器分別是什麼 發布:2024-11-05 19:45:32 瀏覽:392