A. 簡單的代碼表白
1、瀏覽器標簽法
這個先用不到代碼,但卻十分簡單實用的,首先早一步到辦公室,或者趁表白對象不注意的時候在她的電腦上安裝chrome瀏覽器,設置成默認的瀏覽器,把各項的同步功能打開就可以了。然後選擇一個合適的時機,在你的電腦上登錄賬號,然後標簽欄添加你想說的話,例如下圖這樣:
然後標簽就自動同步到表白對象的瀏覽器上了。
2、兩個按鍵組合成I LOVE U
這個簡單的功能是利用的網頁查找的功能,在網頁中復制下這段文字,
然後crtrl+f,在輸入框中輸入9,然後回車,看下效果:
3、python表白代碼
心型和圓形橢圓的代碼類似,都是由X,Y上的點構成的曲線,確定出一個表達式expression,然後就是兩個for循環(for y in range;for x in range),然後逐行逐列的開始就行了。
當然有點太單調,我們可以這樣操作一下,讓他動起來,像這樣
print('\n'.join([''.join([('Love'[(x-y) % len('Love')] if ((x0.05)2+(y0.1)2-1)3-(x0.05)2(y0.1)*3 <= 0 else ' ') for x in range(-30, 30)]) for y in range(30, -30, -1)]))
當然還能替換表情,這個代碼就不放了,需要的直接跟我要就行。
4、炫酷一點的
C語言詮釋愛——為TA寫下心中情,生成程序傳給TA,TA點開程序就懂你。
這個開始的時候會展示出表白對象的名字,接著就是最重要的煙花部分,為了讓煙花顯得更加真實,需要附加重力效果和空氣阻力效果,源代碼圖如下
如果需要源碼的留下郵鄉就可以了。
5、惡搞一點的
這個適合關系已經不錯的那種了,看看效果
源碼直接發
B. Python實現消消樂小游戲
pre{overflow-x: auto} 實現 消消樂的構成主要包括三部分:游戲主體、計分器、計時器,下面來看一下具體實現。
先來看一下游戲所需 Python 庫。
import os import sys import time import pygame import random
定義一些常量,比如:窗口寬高、網格行列數等,代碼如下:
WIDTH = 400 HEIGHT = 400 NUMGRID = 8 GRIDSIZE = 36 XMARGIN = (WIDTH - GRIDSIZE * NUMGRID) // 2 YMARGIN = (HEIGHT - GRIDSIZE * NUMGRID) // 2 ROOTDIR = os.getcwd() FPS = 30
接著創建一個主窗口,代碼如下:
pygame.init() screen = pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption('消消樂')
看一下效果:
再接著在窗口中畫一個 8 x 8 的網格,代碼如下:
screen.fill((255, 255, 220)) # 游戲界面的網格繪制 def drawGrids(self): for x in range(NUMGRID): for y in range(NUMGRID): rect = pygame.Rect((XMARGIN+x*GRIDSIZE, YMARGIN+y*GRIDSIZE, GRIDSIZE, GRIDSIZE)) self.drawBlock(rect, color=(255, 165, 0), size=1 # 畫矩形 block 框 def drawBlock(self, block, color=(255, 0, 0), size=2): pygame.draw.rect(self.screen, color, block, size)
看一下效果:
再接著在網格中隨機放入各種拼圖塊,代碼如下:
while True: self.all_gems = [] self.gems_group = pygame.sprite.Group() for x in range(NUMGRID): self.all_gems.append([]) for y in range(NUMGRID): gem = Puzzle(img_path=random.choice(self.gem_imgs), size=(GRIDSIZE, GRIDSIZE), position=[XMARGIN+x*GRIDSIZE, YMARGIN+y*GRIDSIZE-NUMGRID*GRIDSIZE], downlen=NUMGRID*GRIDSIZE) self.all_gems[x].append(gem) self.gems_group.add(gem) if self.isMatch()[0] == 0: break
看一下效果:
再接著加入計分器和計時器,代碼如下:
# 顯示得分 def drawScore(self): score_render = self.font.render('分數:'+str(self.score), 1, (85, 65, 0)) rect = score_render.get_rect() rect.left, rect.top = (55, 15) self.screen.blit(score_render, rect) # 顯示加分 def drawAddScore(self, add_score): score_render = self.font.render('+'+str(add_score), 1, (255, 100, 100)) rect = score_render.get_rect() rect.left, rect.top = (250, 250) self.screen.blit(score_render, rect) # 顯示剩餘時間 def showRemainingTime(self): remaining_time_render = self.font.render('倒計時: %ss' % str(self.remaining_time), 1, (85, 65, 0)) rect = remaining_time_render.get_rect() rect.left, rect.top = (WIDTH-190, 15) self.screen.blit(remaining_time_render, rect)
看一下效果:
當設置的游戲時間用盡時,我們可以生成一些提示信息,代碼如下:
while True: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() if event.type == pygame.KEYUP and event.key == pygame.K_r: flag = True if flag: break screen.fill((255, 255, 220)) text0 = '最終得分: %s' % score text1 = '按 R 鍵重新開始' y = 140 for idx, text in enumerate([text0, text1]): text_render = font.render(text, 1, (85, 65, 0)) rect = text_render.get_rect() if idx == 0: rect.left, rect.top = (100, y) elif idx == 1: rect.left, rect.top = (100, y) y += 60 screen.blit(text_render, rect) pygame.display.update()
看一下效果:
說完了游戲圖形化界面相關的部分,我們再看一下游戲的主要處理邏輯。
我們通過滑鼠來操縱拼圖塊,因此程序需要檢查有無拼圖塊被選中,代碼實現如下:
def checkSelected(self, position): for x in range(NUMGRID): for y in range(NUMGRID): if self.getGemByPos(x, y).rect.collidepoint(*position): return [x, y] return None
我們需要將滑鼠連續選擇的拼圖塊進行位置交換,代碼實現如下:
def swapGem(self, gem1_pos, gem2_pos): margin = gem1_pos[0] - gem2_pos[0] + gem1_pos[1] - gem2_pos[1] if abs(margin) != 1: return False gem1 = self.getGemByPos(*gem1_pos) gem2 = self.getGemByPos(*gem2_pos) if gem1_pos[0] - gem2_pos[0] == 1: gem1.direction = 'left' gem2.direction = 'right' elif gem1_pos[0] - gem2_pos[0] == -1: gem2.direction = 'left' gem1.direction = 'right' elif gem1_pos[1] - gem2_pos[1] == 1: gem1.direction = 'up' gem2.direction = 'down' elif gem1_pos[1] - gem2_pos[1] == -1: gem2.direction = 'up' gem1.direction = 'down' gem1.target_x = gem2.rect.left gem1.target_y = gem2.rect.top gem1.fixed = False gem2.target_x = gem1.rect.left gem2.target_y = gem1.rect.top gem2.fixed = False self.all_gems[gem2_pos[0]][gem2_pos[1]] = gem1 self.all_gems[gem1_pos[0]][gem1_pos[1]] = gem2 return True
每一次交換拼圖塊時,我們需要判斷是否有連續一樣的三個及以上拼圖塊,代碼實現如下:
def isMatch(self): for x in range(NUMGRID): for y in range(NUMGRID): if x + 2 -2: for each in [res_match[1], res_match[1]+1, res_match[1]+2]: gem = self.getGemByPos(*[each, start]) if start == res_match[2]: self.gems_group.remove(gem) self.all_gems[each][start] = None elif start >= 0: gem.target_y += GRIDSIZE gem.fixed = False gem.direction = 'down' self.all_gems[each][start+1] = gem else: gem = Puzzle(img_path=random.choice(self.gem_imgs), size=(GRIDSIZE, GRIDSIZE), position=[XMARGIN+each*GRIDSIZE, YMARGIN-GRIDSIZE], downlen=GRIDSIZE) self.gems_group.add(gem) self.all_gems[each][start+1] = gem start -= 1 elif res_match[0] == 2: start = res_match[2] while start > -4: if start == res_match[2]: for each in range(0, 3): gem = self.getGemByPos(*[res_match[1], start+each]) self.gems_group.remove(gem) self.all_gems[res_match[1]][start+each] = None elif start >= 0: gem = self.getGemByPos(*[res_match[1], start]) gem.target_y += GRIDSIZE * 3 gem.fixed = False gem.direction = 'down' self.all_gems[res_match[1]][start+3] = gem else: gem = Puzzle(img_path=random.choice(self.gem_imgs), size=(GRIDSIZE, GRIDSIZE), position=[XMARGIN+res_match[1]*GRIDSIZE, YMARGIN+start*GRIDSIZE], downlen=GRIDSIZE*3) self.gems_group.add(gem) self.all_gems[res_match[1]][start+3] = gem start -= 1
之後反復執行這個過程,直至耗盡游戲時間,游戲結束。
最後,我們動態看一下游戲效果。
總結
本文我們使用 Python 實現了一個簡單的消消樂游戲,有興趣的可以對游戲做進一步擴展,比如增加關卡等。
到此這篇關於Python實現消消樂小游戲的文章就介紹到這了,希望大家以後多多支持!
C. python語言,利用遞歸繪制彩色四階五邊形科赫雪花,並上傳代碼和科赫雪花效果圖
import random
import turtle
def random_color():
rgbl=[255,0,0]
random.shuffle(rgbl)
return tuple(rgbl)
def koch(size,n):
if n==0:
turtle.fd(size)
else:
for angle in [0,60,-120,60]:
cc = random_color()
turtle.pencolor(cc[0], cc[1], cc[2])
turtle.left(angle)
koch(size/3,n-1)
def main():
turtle.colormode(255)
turtle.setup(600,600)
turtle.penup()
turtle.goto(-200,100)
turtle.pendown()
turtle.pensize(2)
level=4 #4階科赫雪花,階數
koch(400,level)
turtle.right(120)
koch(400,level)
turtle.right(120)
koch(400,level)
turtle.hideturtle()
turtle.done()
main()
效果如圖:
D. 用python編程實現:輸入任意正整數,輸出它是幾位數。代碼和運行效果截圖
inp = input()
if inp.isdigit():
print(len(inp),'位數')
else:
print('輸入的不是正整數')
運行結果
E. 怎樣用python畫圖,為什麼代碼寫好運行時錯誤
python繪圖(可視化)的模塊非常多,下面我簡單介紹幾個不錯的繪圖庫,感興趣的朋友可以自己嘗試一下,實驗環境win7+python3.6+pycharm5.0,主要內容如下:
matplotlib
這是python中專門用於繪圖的一個模塊,功能強大,制圖種類繁多,使用也最廣泛,下面我簡單介紹一下這個模塊的安裝和使用:
1.首先,安裝matplotlib模塊,這個直接在cmd窗口輸入安裝命令「pip install matplotlib」就行,如下:
2.安裝完成後,我們就可以編寫代碼進行一下簡單測試了,代碼如下,一個稍微復雜的曲線圖:
程序運行效果如下,看著還是非常不錯的:
3.更多示例的話,可以參考一下官網教程,介紹的非常詳細,柱狀圖、散點圖、餅圖等都有,非常適合初學者學習入門:
seaborn
這是一個基於matplotlib的繪圖庫,是matplotlib的高級封裝,代碼量更少,使用起來也更方便,下面我簡單介紹一下這個模塊的安裝和使用:
1.首先,安裝seaborn模塊,這個也直接輸入安裝命令「pip install seaborn」就行,如下,很快就能安裝完成:
2.安裝完成後,我們就可以直接編寫代碼來測試一下這個模塊了,代碼如下,一個折線圖集合:
程序運行截圖如下,效果也非常不錯:
3.更多示例的話,也直接參考官網教程就行,介紹的非常詳細,很適合初學者入門學習:
pyecharts
這是echarts的一個python介面,藉助於echarts強大的可視化功能,python也可以快速構建、繪制各種各樣的圖表,下面我簡單介紹一下這個模塊的安裝和使用:
1.首先,安裝pyecharts模塊,這個也直接輸入命令「pip install pyecharts」就行,如下:
2.安裝完成後,我們就可以編寫代碼來進行下測試了,測試代碼如下,一個簡單的3D散點圖:
程序運行截圖如下(基於瀏覽器進行顯示),效果還是非常不錯的:
至此,我們就完成了利用python來進行繪圖(可視化)。總的來說,這3個繪圖模塊使用起來都非常不錯,對於大多數圖表繪制來說,完全可以滿足需求,當然,還有許多其他繪圖模塊,像ggplot等,也都非常不錯,網上也有相關教程,感興趣的話,可以搜一下,希望以上分享的內容能對你有所幫助吧,也歡迎大家評論、留言進行補充。
python畫圖有很多擴展可以用,比如matplotlib、turtle、pychart等等,看你需要什麼方面了,不同的需求需要用不同的工具。如果做界面還有pyqt、tkinter等等,做 游戲 還有pygame等等。
python報錯需要查看報錯信息,進行調試才能正常運行
F. Python用什麼軟體寫代碼
VS Code:這是一個免費、開源、跨平台的代碼編輯器,由微軟自主設計研發,界面風格和VS相似,但沒有VS那麼龐大臃腫,運行速度快、佔用內存少,支持常見的自動補全、代碼高亮、語法提示、GIT等功能,安裝Python插件後,可以直接編輯運行Python程序。對於Python入門開發者來說,是非常不錯的選擇。
Sublime Text:是一個非常不錯的代碼編輯器,基本功能和VS Code差不多,輕便靈活、運行速度快,文本編輯功能強大,常見的自動補全、語法檢查、語法提示功能都能很好支持,配置好本地Python解釋器路勁後,也是一個非常不錯的Python開發軟體。
Atom:也是一個免費、開源、跨平台的代碼編輯器,由GitHub專門為廣大程序員設計研發,基本功能和前2個編輯器差不多,支持常見的智能補全、代碼高亮、語法檢查等功能,安裝Python插件後,也可以直接編輯運行Python程序。
Vim:這是Linux環境下使用最多的文本編輯器,輕便靈活、插件擴展眾多,可以自定義配置環境,和各種編程語言都能混搭,而且效果很好,安裝Python之後,可以直接當作一個非常不錯的Python開發軟體來使用。
Visual Studio:目前使用最多的IDE環境,集成了非常多的開發環境,新的版本也開始支持Python開發,勾選Python之後,可以直接編輯、調試、運行Python程序,功能強大。
PyCharm:一個Python專用的開發軟體,在業界非常流行,也非常受歡迎,支持代碼重構、代碼分析、單元測試等高級功能,因此開發、調試、運行效率很高,本身自帶了許多工程模塊,可以快速構建flask、Django等web應用。
G. 新手學python,想用個簡單點的項目來學習python
如果你有一定的計算機編程知識基礎,那麼很容易學;再如果你對編程十分感興趣,那麼很容易學的。
1,找到合適的入門書籍,大致讀一次,循環啊判斷啊,常用類啊,搞懂(太難的跳過)
2,做些簡單習題,字元串比較,讀取日期之類 Python Cookbook不錯(太難太無趣的,再次跳過,保持興趣是最重要的,不會的以後可以再學)
3,加入Python討論群,態度友好笑眯眯(很重要,這樣高手才會耐心糾正你錯誤常識)。很多小問題,糾結許久,對方一句話點播思路,真的節約你很多時間。耐心指教我的好人,超級超級多謝。
4,解決自己電腦問題。比如下載美劇,零散下載了2,4,5,8集,而美劇共12集,怎樣找出漏下的那幾集?然後問題分解,1讀取全部下載文件名,2提取集的數字,3數字排序和(1--12)對比,找出漏下的。
對於python初學者來說,能找到一個好老師學習格外重要,這能決定你是不是可以做出好的項目,在python開發的路上越走越輕松,如果現在的你缺乏學習經驗,找不到老師指導你學習,看一下下面的代碼
5,時刻記住目的,不是為了當程序員,是為了解決問題。比如,想偷懶抓網頁內容,用urllib不行,用request也不行,才發現抓取內容涉及那麼多方面(cookie,header,SSL,url,javascript等等),當然可以聽人家勸,回去好好讀書,從頭讀。 或者,不求效率,只求解決,用ie打開網頁再另存為行不行?ie已經渲染過全部結果了。 問題變成:1--打開指定的10個網頁(一行代碼就行)。更復雜的想保存呢?利用已經存在的包,比如PAM30(我的是Python3),直接打開ie,用函數outHTML另存為文本,再用搜索函數(str搜索也行,re正則也行)找到數據。簡單吧?而且代碼超級短。
6,保持興趣,用最簡單的方式解決問題,什麼底層驅動,各種交換,留給大牛去寫吧。我們利用已經有的包完成。
7,耐心讀文檔,並且練習快速讀文檔。拿到新包,找到自己所需要的函數,是需要快速讀一次的。這個不難,讀函數名,大概能猜到是幹嘛的,然後看看返回值,能判斷是不是自己需要的。
8,寫幫助文件和學習筆記,並發布共享。教別人的時候,其實你已經自己再次思考一次了。 我覺得學程序就像學英文,把高頻率的詞(循環,判斷,常用包,常用函數)搞懂,就能拼裝成自己想要的軟體。 一定要保持興趣,太復雜的跳過,就像小學數學,小學英語,都是由簡入深。 網路很平面,無數國際大牛著作好書,關於Python,演算法,電腦,網路,或者程序員思路,或者商業思維(浪潮之巔是本好書)等等,還有國際名校的網路公開課(中英文字幕翻譯完畢,觀看不是難事),講計算機,網路,安全,或者安卓系統,什麼都有,只要能持續保持興趣,一點點學習下去,不是難事。 所有天才程序員,都曾是兒童,回到兒童思維來理解和學習。覺得什麼有趣,先學,不懂的,先放著,遇到問題再來學,效果更好。 唯一建議是,不要太貪心,耐心學好一門優雅的語言,再學其它。雖然Javascript做特效很炫,或提某問題時,有大牛建議,用Ruby來寫更好之類,不要改方向。就像老笑話:「要學習遞歸,必須首先理解遞歸。」然後死循環一直下去。堅持學好一門語言,再研究其他。 即使一門語言,跟網路,資料庫等等相關的部分,若都能學好,再學其他語言,是很快的事情。 另外就是,用學英文的耐心來學計算機,英文遇到不懂的詞,抄下,查詢。 python里,看到Http,查查定義,看到outHtml,查查定義,跟初學英語時候一樣,不要直接猜意思,因為精確描述性定義,跟含糊自然語有區別的。而新人瞎猜,很容易錯誤理解,wiki,google很有用。
H. Python如何進行GUI桌面開發有哪些不錯的庫可以推薦
Python進行GUI開發的庫其實很多,下面我簡單介紹幾個不錯橋和的庫,感興趣的朋友可以自己嘗試一下,實驗環境win10+python3.6+pycharm5.0,主要內容如下:
tkinter
這個就不用多說了,python自帶的GUI開發標准庫,對於開發小型簡單的應用來說,完全可以了,開源、跨平台,使用起來非常方便,下面我簡單測試一下,主要代碼如下:
點擊運行程序,效果如下,一個窗口一個Label標簽:
easygui
這個是基於tkinter的一個窗口GUI庫,可以快速創建窗口對話框,包括常見的登陸對話框、注冊對話框等,下面我簡單介紹一下這個庫的安裝和使用:
1.首先,安裝easygui,這個直接在cmd窗口輸入安裝命令「pipinstalleasygui」就行,如下:
2.安裝完成後,我們就可以直接編寫代碼進行測試了,主要代碼如下,非常簡單:
點擊運行這個程序,效果如下:
kivy
這是一個跨平台的GUI應用程序開發庫,可以用來開發安卓、蘋果應用,一套程序,可以處處運行,下面我簡單介紹一下這個庫的安裝和使用:
1.首先,安裝kivy,這個直接按官方教程安裝就行,如下:
2.安裝完成後,就可以直接編寫代碼進行測試了,主要代碼如下,非常簡單:
點擊運行程序,效果如下,這里你可以將其打包為手機應用,安裝到手機上:
wxpython
這也是一個免費、跨平台的PythonGUI開發庫,相比較前面的tkinter來說,功能更為強大,控制項也更多,下面我簡單介紹一下這個庫的安裝和使用:
1.首先,安裝wxpython,這個也直接在cmd窗口輸入命令「pipinstallwxpython」就行,如下:
2.安裝完成後,我們就可以直接編寫相關代碼進行測試了,主要代讓枯碼如下,非常簡單,一個簡單的文本編輯器:
點擊運行這個程序,效果如下:
pyqt
這個Qt的一個Python介面庫,藉助於Qt強大的用戶界面,Python也可以快速開發出GUI程序,組件更多,也更方便,只要你有一定的Qt基礎,很快就能掌握這個庫的使用,下面我簡單介紹一下這個庫的安裝和使用:
1.首先,安裝pyqt,這個直接在cmd窗口輸入安裝命令「pipinstallpyqt5」就行,如下,安裝需要稍微等待一會兒:
2.安裝完成後,我們就可以直接編寫代碼進行測試了,如下,一個簡坦消洞單的計算器:
點擊運行這個程序,效果如下:
至此,我們就介紹完了這5個PythonGUI庫。總的來說,這5個庫使用起來都非常不錯,如果你的應用界面比較簡單,功能要求不高,可以選擇tkinter和easygui,如果界面比較復雜,功能要求比較復雜,可以考慮使用wxpython或pyqt,當然,你也可以使用其他GUI庫,像pygame等,根據實際項目需求而定,網上也有相關資料和教程,感興趣的話,可以搜一下,希望以上分享的內容能對你有所幫助吧,也歡迎大家評論、留言。