『壹』 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)
#收尾工作
這是一個簡易版貪吃蛇的代碼,雖然結構簡單,但是該有的功能都是完整的,可玩性也不錯
『叄』 煙花代碼編程python(玫瑰花代碼編程python)
放煙花的代碼#-*-coding:utf-8-*-importmath,random,=[]maxFireworks=8height,width=600,600classfirework(object):def__init__(self,color,speed,width,height):=uuid.uuid1()self.radius=random.randint(2,4)~4像素self.color=colorself.speed=speed.5-3.5秒self.status=0,status=0;爆炸後,status=1;當status100時,煙花的生命期終止self.nParticle=random.randint(20,30)self.center=[random.randint(0,width-1),random.randint(0,height-1)]self.oneParticle=[](100%狀態時)self.rotTheta=random.uniform(0,2*math.pi):x=a*cos(theta),y=b*sin(theta)=[a,b]
python炫酷煙花表白源代碼是多少?學完本教程後,你也能做出這樣的煙花秀。
如上圖示,我們這里通過讓畫面上一個粒子分裂為X數量的粒子來模擬爆炸效果。粒子會發生"膨脹」,意思是它們會以恆速移動且相互之間的角度相等。這樣就能讓我們以一個向外膨脹的圓圈形式模擬出煙花綻放的畫面。
經過一定時間後,粒子會進入"自由落體」階段,也就是由於重力因素它們開始墜落到地面,仿若綻放後熄滅的煙花。
基本知識:用Python和Tkinter設計煙花。
這里不再一股腦把數學知識全丟出來,我們邊寫代碼邊說理論。首先,確保你安裝和導入了Tkinter,它是Python的標准GUI庫,廣泛應用於各種各樣的項目和程序開發,在Python中使用Tkinter可以快速的創建GUI應用程序。
importtkinterastk
fromPILimportImage,ImageTk
fromtimeimporttime,sleep
fromrandomimportchoice,uniform,randint
frommathimportsin,cos,radians
除了Tkinter之外,為了能讓界面有漂亮的背景,我們也導入PIL用於圖像處理,以及導入其它一些包,比如time,random和math。它們能讓我們更容易的控制煙花粒子的運動軌跡。
Tkinter應用的基本設置如下:
root=tk.Tk()
為了能初始化Tkinter,我們必須創建一個Tk()根部件(rootwidget),它是一個窗口,帶有標題欄和由窗口管理器提供的其它裝飾物。該根部件必須在我們創建其它小部件之前就創建完畢,而且只能有一個根部件。
w=tk.Label(root,text="HelloTkinter!")
這一行代碼包含了Label部件。該Label調用中的第一個參數就是父窗口的名字,即我們這里用的"根」。關鍵字參數"text」指明顯示的文字內容。你也可以調用其它小部件:Button,Canvas等等。
w.pack()
root.mainloop()
接下來的這兩行代碼很重要。這里的打包方法是告訴Tkinter調整窗口大小以適應所用的小部件。窗口直到我們進入Tkinter事件循環,被root.mainloop()調用時才會出現。在我們關閉窗口前,腳本會一直在停留在事件循環。
將煙花綻放轉譯成代碼
現在我們設計一個對象,表示煙花事件中的每個粒子。每個粒子都會有一些重要的屬性,支配了它的外觀和移動狀況:大小,顏色,位置,速度等等。
2022跨年煙花代碼|用Python送你一場跨年煙花秀2021已經接近尾聲了,2022即將到來,本文我們用Python送你一場跨年煙花秀。
我們用到的Python模塊包括:tkinter、PIL、time、random、math,如果第三方模塊沒有裝的話,pipinstall一下即可,下面看一下代碼實現。
導庫
煙花顏色
定義煙花類
燃放煙花
啟動
看一下效果:
2022年跨年煙花代碼可復制
煙花代碼如下:
packagelove;
importjava.applet.Applet;
importjava.awt.Color;
importjava.awt.Graphics;
importjava.net.URL;
importjava.util.Random;
煙花
@authorenjoy
@SuppressWarnings("serial")
publicintspeed,variability,Max_Number,Max_Energy,Max_Patch,
Max_Length,G;
publicStringsound;
privateintwidth,height;
privateThreadthread=null;
privateBeaClassDemobcd[];
publicvoidinit()???????????
inti;
this.setSize(1900,900);
width=getSize().width-1;
height=getSize().height-1;
speed=1;???????????????????????//煙花綻放的速度
variability=10;
Max_Number=980;???????????????????//可發出煙花的最大數目
Max_Energy=width+50;
Max_Patch=90;???????????????????//最大的斑點數
Max_Length=90;???????????????????//斑點的最大距離
G=150;???????????????????????????//向地面彎曲的力度
bcd=newBeaClassDemo[Max_Number];
for(i=0;iMax_Number;i++)
bcd[i]=newBeaClassDemo(width,height,G);
}
publicvoidstart(){
if(thread==null){
thread=newThread(this);
thread.start();
}
}
@SuppressWarnings("deprecation")
publicvoidstop(){
if(thread!=null){
thread.stop();
thread=null;
}
}
@SuppressWarnings({"unused","static-access"})
publicvoidrun(){
inti;
intE=(int)(Math.random()*Max_Energy*3/4)+Max_Energy/4+1;
intP=(int)(Math.random()*Max_Patch*3/4)???//煙花的斑點數
+Max_Patch/4+1;
intL=(int)(Math.random()*Max_Length*3/4)???//煙花可發射出的距離
+Max_Length/4+1;
longS=(long)(Math.random()*10000);
booleansleep;
Graphicsg=getGraphics();
URLu=null;
while(true){
try{
thread.sleep(1000/speed);
catch(InterruptedExceptionx){
sleep=true;
for(i=0;iMax_Number;i++)
sleep=sleepbcd[i].sleep;
if(sleepMath.random()*100variability){
E=(int)(Math.random()*Max_Energy*3/4)+Max_Energy/4
+1;
P=(int)(Math.random()*Max_Patch*3/4)+Max_Patch/4
+1;
L=(int)(Math.random()*Max_Length*3/4)+Max_Length/4
+1;
S=(long)(Math.random()*10000);
for(i=0;iMax_Number;i++){
if(bcd[i].sleepMath.random()*Max_Number*L1)
bcd[i].init(E,P,L,S);
bcd[i].start();
bcd[i].show(g);
publicvoidpaint(Graphicsg)?????????
g.setColor(Color.black);
g.fillRect(0,0,width+1,height+1);
classBeaClassDemo
publicbooleansleep=true;
privateintenergy,patch,length,width,height,G,Xx,Xy,Ex[],Ey[],x,
y,Red,Blue,Green,t;
privateRandomrandom;
publicBeaClassDemo(inta,intb,intg)????
width=a;
height=b;
G=g;
publicvoidinit(inte,intp,intl,longseed)?
inti;
energy=e;
patch=p;
length=l;
//創建一個帶種子的隨機數生成器
random=newRandom(seed);
Ex=newint[patch];
Ey=newint[patch];
Red=(int)(random.nextDouble()*128)+128;
Blue=(int)(random.nextDouble()*128)+128;
Green=(int)(random.nextDouble()*128)+128;
Xx=(int)(Math.random()*width/2)+width/4;
Xy=(int)(Math.random()*height/2)+height/4;
for(i=0;ipatch;i++){
Ex[i]=(int)(Math.random()*energy)-energy/2;
Ey[i]=(int)(Math.random()*energy*7/8)-energy/8;
publicvoidstart
t=0;
sleep=false;
publicvoidshow(Graphicsg)???
if(!sleep)??????????????????
if(tlength)
inti,c;
doubles;
Colorcolor;
c=(int)(random.nextDouble()*64)-32+Red;
if(c=0c256)
Red=c;
c=(int)(random.nextDouble()*64)-32+Blue;
if(c=0c256)
Blue=c;
c=(int)(random.nextDouble()*64)-32+Green;
if(c=0c256)
Green=c;
color=newColor(Red,Blue,Green);
for(i=0;ipatch;i++)
s=(double)t/100;
x=(int)(Ex[i]*s);
y=(int)(Ey[i]*s-G*s*s);
g.setColor(color);
g.drawLine(Xx+x,Xy-y,Xx+x,Xy-y);
if(t=length/2)
intj;
for(j=0;j2;j++)
s=(double)((t-length/2)*2+j)/100;
x=(int)(Ex[i]*s);
y=(int)(Ey[i]*s-G*s*s);
g.setColor(Color.black);
g.drawLine(Xx+x,Xy-y,Xx+x,Xy-y);
常用的編程語言。
編程語言一:C語言
C語言是世界上最流行、使用最廣泛的高級程序設計語言之一。在操作系統和系統使用程序以及需要對硬體進行操作的場合,用C語言明顯優於其它高級語言,許多大型應用軟體都是用C語言編寫的。
編程語言二:java
Java是一種可以撰寫跨平台應用軟體的面向對象的程序設計語言,是由SunMicrosystems公司於1995年5月推出的Java程序設計語言和Java平台(即JavaSE,JavaEE,JavaME)的總稱。
編程語言三:c++
C++這個詞在中國大陸的程序員圈子中通常被讀做「C加加」,而西方的程序員通常讀做「Cplusplus","CPP」。它是一種使用非常廣泛的計算機編程語言。C++是一種靜態數據類型檢查的、支持多重編程範式的通用程序設計語言。
『肆』 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都代表一些處理函數,也就是幾行代碼,而不是數據。通常來講,變數一般代表數據,但是這里代表了指令。
『伍』 30個 Python 常用代碼案例,建議收藏!
今天分享30個Python常用代碼案例,收藏方便學習與應用。
案例一:冒泡排序
案例二:計算x的n次方
案例三:計算多個數的和
案例四:計算階乘
案例五:列出目錄文件與目錄名
案例六:將list中所有字元串轉為小寫
案例七:輸出指定路徑下的文件與文件夾路徑
案例八:輸出某個路徑及其子目錄下所有文件路徑
案例九:查找並輸出特定後綴的文件
案例十:顛倒字典鍵值對
案例十一:列印九九乘法表
案例十二:替換列表元素
案例十三:列印每個名字
案例十四:合並與去重
案例十五:生成驗證碼
案例十六:計算平方根
案例十七:判斷字元串是否全由數字組成
案例十八:判斷數字奇偶性
案例十九:判斷閏年
案例二十:找出最大值
案例二十一:生成斐波那契數列
案例二十二:十進制轉其他進制
案例二十三:最大公約數
案例二十四:最小公倍數
案例二十五:簡單計算器
案例二十六:生成日歷
案例二十七:文件操作
案例二十八:字元串操作
案例二十九:計算每月天數
案例三十:獲取昨天日期
分享一套Python視頻教程,非常適合初學者與Python愛好者深入了解語言。