本文目錄一覽:
初學Python可以做哪些小項目
初學Python的第一階段你需要掌握Python基礎編程語法、建立起編程思維和面向對象思想,掌握理論知識的同時,你就得結合著做一些小的實戰項目。
一般在初期適合做的小項目給你舉幾個例子:
1、猜拳遊戲
2、文件相關操作及
3、文件批量改名
4、學生管理系統(文件版)
5、飛機大戰
最全面的12種Python學習方式
Python 是世界上最受歡迎的編程語言之一,它受到了全世界各地的開發者和創客的歡迎。大多數 Linux 和 MacOS 計算機都預裝了某個版本的 Python,現在甚至一些 Windows 計算機供應商也開始安裝 Python 了。
也許你尚未學會它,想學習但又不知道在哪裡入門。這裡的 12 個資源將幫助你入門並熟練掌握 Python。
課程、書籍、文章和文檔
1、Python 軟件基金會提供了出色的信息和文檔,可幫助你邁上編碼之旅。請務必查看 Python 入門指南。它將幫助你得到最新版本的 Python,並提供有關編輯器和開發環境的有用提示。該組織還有可以來進一步指導你的優秀文檔。
2、我的 Python 旅程始於海龜模塊。我首先在 Bryson Payne 的《教你的孩子編碼》中找到了關於 Python 和海龜的內容。這本書是一個很好的資源,購買這本書可以讓你看到幾十個示例程序,這將激發你的編程好奇心。Payne 博士還在 Udemy 上以相同的名稱開設了一門便宜的課程。
3、Payne 博士的書激起了我的好奇心,我渴望了解更多。這時我發現了 Al Sweigart 的《用 Python 自動化無聊的東西》。你可以購買這本書,也可以使用它的在線版本,它與印刷版完全相同且可根據知識共享許可免費獲得和分享。Al 的這本書讓我學習到了 Python 的基礎知識、函數、列表、字典和如何操作字符串等等。這是一本很棒的書,我已經購買了許多本捐贈給了當地圖書館。Al 還提供 Udemy 課程;使用他的網站上的優惠券代碼,只需 10 美元即可參加。
4、Eric Matthes 撰寫了《Python 速成》,這是由 No Starch Press 出版的 Python 的逐步介紹(如同上面的兩本書)。Matthes 還有一個很棒的伴侶網站,其中包括了如何在你的計算機上設置 Python 以及一個用以簡化學習曲線的速查表。
5、Python for Everybody 是另一個很棒的 Python 學習資源。該網站可以免費訪問 Charles Severance 的 Coursera 和 edX 認證課程的資料。該網站分為入門、課程和素材等部分,其中 17 個課程按從安裝到數據可視化的主題進行分類組織。Severance(@drchuck on Twitter),是密歇根大學信息學院的臨床教授。
6、Seth Kenlon,我們 Opensource.com 的 Python 大師,撰寫了大量關於 Python 的文章。Seth 有很多很棒的文章,包括「用 JSON 保存和加載 Python 數據」,「用 Python 學習面向對象編程」,「在 Python 遊戲中用 Pygame 放置平台」,等等。
在設備上使用 Python
7、最近我對 Circuit Playground Express 非常感興趣,這是一個運行 CircuitPython 的設備,CircuitPython 是為微控制器設計的 Python 編程語言的子集。我發現 Circuit Playground Express 和 CircuitPython 是向學生介紹 Python(以及一般編程)的好方法。它的製造商 Adafruit 有一個很好的系列教程,可以讓你快速掌握 CircuitPython。
8、BBC:Microbit 是另一種入門 Python 的好方法。你可以學習如何使用 MicroPython 對其進行編程,這是另一種用於編程微控制器的 Python 實現。
9、學習 Python 的文章如果沒有提到樹莓派單板計算機那是不完整的。一旦你有了舒適而強大的樹莓派,你就可以在 Opensource.com 上找到成噸的使用它的靈感,包括「7 個值得探索的樹莓派項目」,「在樹莓派上復活 Amiga」,和「如何使用樹莓派作為 VPN 服務器」。
10、許多學校為學生提供了 iOS 設備以支持他們的教育。在嘗試幫助這些學校的老師和學生學習用 Python 編寫代碼時,我發現了 Trinket.io。Trinket 允許你在瀏覽器中編寫和執行 Python 3 代碼。 Trinket 的 Python 入門教程將向你展示如何在 iOS 設備上使用 Python。
播客
11、我喜歡在開車的時候聽播客,我在 Kelly Paredes 和 Sean Tibor 的 Teaching Python 播客上找到了大量的信息。他們的內容很適合教育領域。
12、如果你正在尋找一些更通用的東西,我推薦 Michael Kennedy 的 Talk Python to Me 播客。它提供了有關 Python 及相關技術的最佳信息。
你學習 Python 最喜歡的資源是什麼?請在評論中分享。
計算機編程可能是一個有趣的愛好,正如我以前在 Apple II 計算機上編程時所學到的……
有哪些python寫的遊戲
python編程遊戲有哪些?下面給大家介紹幾款由Python開發的遊戲:
1. Github上面有個項目Free Python Games,裏面集合了不少的Python開發的小遊戲,能玩,也適合新手用來練練手,另外 PyGame 這個網站裏面裏面集合了很多Python開發的小遊戲。
2. Python版本的 Flapy Bird 簡化版,但是感覺更加難玩了。當然你也可以嘗試用Python開發原版的 Flapy Bird,涵蓋了顏色圖像等:Flappy Block – 1.0
3. 小時候經常在手機上玩的一個遊戲,也是一款經典的街機遊戲,這款遊戲進化之後其實就是一個打乒乓的小遊戲,這裡同樣有一個進化版本,圖形設計的更加好看:Ping Pong
相關推薦:《Python基礎教程》
4. 以前初高中在學校很無聊的時候跟同桌或者前後桌玩的遊戲,你還記得么
5. 同樣一款小時候在小霸王上玩的遊戲:Junk Jungle
6. 除此之外,一款比較有名基於Pyhton的戰爭的遊戲:Home – TaleWorlds Entertainment
7. 一款看起來非常有趣的3D遊戲:Galcon
8. 據說是能與Pyhton搭上邊最有名的一款遊戲,但好像他的客戶端是用的C++,我試了一下很炸裂:EVE Online – One community. Countless journeys
python小遊戲
idea +python3.8+pygame
pre spellcheck=”false” class=”md-fences md-end-block ty-contain-cm modeLoaded” lang=”python” cid=”n5″ mdtype=”fences” style=”box-sizing: border-box; overflow: visible; font-family: var(–monospace); font-size: 0.9em; display: block; break-inside: avoid; text-align: left; white-space: normal; background-image: inherit; background-position: inherit; background-size: inherit; background-repeat: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(231, 234, 237); border-radius: 3px; padding: 8px 4px 6px; margin-bottom: 15px; margin-top: 15px; width: inherit; color: rgb(51, 51, 51); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;”import random
rang1 = int(input(“請設置本局遊戲的最小值:”))
rang2 = int(input(“請設置本局遊戲的最大值:”))
num = random.randint(rang1,rang2)
guess = “guess”
print(“數字猜謎遊戲!”)
i = 0
while guess != num:
i += 1
guess = int(input(“請輸入你猜的數字:”))
if guess == num:
print(“恭喜,你猜對了!”)
elif guess num:
print(“你猜的數小了…”)
else:
print(“你猜的數大了…”)
print(“你總共猜了%d” %i + “次”,end = ”)
print(“,快和你朋友較量一下…”)/pre
成果圖
[圖片上傳失敗…(image-6ef72d-1619168958721)]
pre spellcheck=”false” class=”md-fences md-end-block ty-contain-cm modeLoaded” lang=”python” cid=”n10″ mdtype=”fences” style=”box-sizing: border-box; overflow: visible; font-family: var(–monospace); font-size: 0.9em; display: block; break-inside: avoid; text-align: left; white-space: normal; background-image: inherit; background-position: inherit; background-size: inherit; background-repeat: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(231, 234, 237); border-radius: 3px; padding: 8px 4px 6px; margin-bottom: 15px; margin-top: 15px; width: inherit; color: rgb(51, 51, 51); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;”import pygame
import random
from pygame.locals import *
WIDTH = 1200
HEIGHT = 600
class Peas:
def init (self):
self.image = pygame.image.load(“./res/peas.gif”)
self.image_rect = self.image.get_rect()
self.image_rect.top = 285
self.image_rect.left = 30
self.is_move_up = False
self.is_move_down = False
self.is_shout = False
def display(self):
“””顯示豌豆的方法”””
screen.blit(self.image, self.image_rect)
def move_up(self):
“””豌豆向上移動”””
if self.image_rect.top 30:
self.image_rect.move_ip(0, -10)
else:
for z in Zombie.zombie_list:
if self.image_rect.colliderect(z.image_rect):
pygame.quit()
exit()
def move_down(self):
“””豌豆向下移動”””
if self.image_rect.bottom HEIGHT – 10:
self.image_rect.move_ip(0, 10)
else:
for z in Zombie.zombie_list:
if self.image_rect.colliderect(z.image_rect):
pygame.quit()
exit()
def shout_bullet(self):
“””發射炮彈方法”””
bullet = Bullet(self)
Bullet.bullet_list.append(bullet)
class Bullet:
bullet_list = []
interval = 0
def init (self, peas):
self.image = pygame.image.load(“./res/bullet.gif”)
self.image_rect = self.image.get_rect()
self.image_rect.top = peas.image_rect.top
self.image_rect.left = peas.image_rect.right
def display(self):
“””顯示炮彈的方法”””
screen.blit(self.image, self.image_rect)
def move(self):
“””移動炮彈”””
self.image_rect.move_ip(8, 0)
if self.image_rect.right WIDTH – 20:
Bullet.bullet_list.remove(self)
else:
for z in Zombie.zombie_list[:]:
if self.image_rect.colliderect(z.image_rect):
Zombie.zombie_list.remove(z)
Bullet.bullet_list.remove(self)
break
class Zombie:
zombie_list = []
interval = 0
def init (self):
self.image = pygame.image.load(“./res/zombie.gif”)
self.image = pygame.transform.scale(self.image, (70, 70))
self.image_rect = self.image.get_rect()
self.image_rect.top = random.randint(10, HEIGHT-70)
self.image_rect.left = WIDTH
def display(self):
“””顯示炮彈的方法”””
screen.blit(self.image, self.image_rect)
def move(self):
“””移動殭屍”””
self.image_rect.move_ip(-2, 0)
if self.image_rect.left 0:
Zombie.zombie_list.remove(self)
else:
if self.image_rect.colliderect(peas.image_rect):
pygame.quit()
exit()
for b in Bullet.bullet_list[:]:
if self.image_rect.colliderect(b.image_rect):
Bullet.bullet_list.remove(b)
Zombie.zombie_list.remove(self)
break
def key_control():
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
exit()
if event.type == KEYDOWN:
if event.key == K_UP:
peas.is_move_up = True
peas.is_move_down = False
elif event.key == K_DOWN:
peas.is_move_up = False
peas.is_move_down = True
elif event.key == K_SPACE:
peas.is_shout = True
if event.type == KEYUP:
if event.key == K_UP:
peas.is_move_up = False
elif event.key == K_DOWN:
peas.is_move_down = False
elif event.key == K_SPACE:
peas.is_shout = False
if name == ‘ main ‘:
pygame.init()
screen = pygame.display.set_mode((WIDTH, HEIGHT))
background_image = pygame.image.load(“./res/background.png”)
scale_background_image = pygame.transform.scale(background_image, (WIDTH, HEIGHT))
scale_background_image_rect = scale_background_image.get_rect()
clock = pygame.time.Clock()
peas = Peas()
while True:
screen.fill((0,0,0))
screen.blit(scale_background_image, scale_background_image_rect)
peas.display()
key_control()
if peas.is_move_up:
peas.move_up()
if peas.is_move_down:
peas.move_down()
Bullet.interval += 1
if peas.is_shout and Bullet.interval = 15:
Bullet.interval = 0
peas.shout_bullet()
Zombie.interval += 1
if Zombie.interval = 15:
Zombie.interval = 0
Zombie.zombie_list.append(Zombie())
for bullet in Bullet.bullet_list:
bullet.display()
bullet.move()
for zombie in Zombie.zombie_list:
zombie.display()
zombie.move()
pygame.display.update()
clock.tick(60)/pre
成果[圖片上傳失敗…(image-983fba-1619168958718)]
如何自學 Python
其實python非常適合初學者入門。相比較其他不少主流編程語言,有更好的可讀性,因此上手相對容易。自帶的各種模塊加上豐富的第三方模塊,免去了很多「重複造輪子」的工作,可以更快地寫出東西。
我是真正零基礎開始學Python的,從一開始的一竅不通,到3個月後成功搭建了一個動態網站(沒有用任何框架)。相比於計算機大牛,我更加知道一個小白將會遇到什麼坑,遇到哪些難點。我把我的學習過程寫在下面,並附上在每個階段的學習資料,希望對零基礎的Python學習
想學習編程但不知如何開始的朋友。回答這類問題的人往往只是列出書單資源然後給出一個大致的方向。有些朋友一開始就扎入了理論學習的汪洋大海,從苦讀類似《算法導論》開始,能夠堅持讀下來的寥寥無幾,學習的積極性也被不斷的挫敗感消磨的所剩無幾。可以加Python技術直播裙【三零四零五零七九九】 群里大佬生動的講解可以讓你思路更清晰,互動直播,遇到問題裏面有大佬解答指導!
一直以來,編程對我而言是一種「黑魔法」般的存在。今年阿里月餅門,當很多人都參與到是非之爭的時候,我更加着迷於程序員區區幾行代碼的腳本所展現出的威力,對於外行而言,這是超乎他們想像之外的某種能力——為什麼我守在電腦面前盯着秒針然後拚命點擊鼠標都不一定能搶到的禮物,程序員只需要提前花5分鐘寫3行代碼就輕鬆搞定?
所以,我的心底深處一直都想變成這樣的一位魔法師。今年的8月,剛好工作上想要開發一個基於微信的英語學習網站,藉此機會,我決定好好學習一下編程。在此之前,我所有關於程序的知識僅僅來源於兩部分,一是本科時期的C語言必修課,現在已經忘的一乾二淨,不過好歹我從中明白編程是怎麼回事;第二部分是大概兩年前由於工作關係學的一些Python,不過只是皮毛,現在忘的七七八八。
簡單說,我的目標是建立一個網站,不過這個網站是動態的,也就是說它能識別誰登陸,然後對不同的人顯示不同的內容。而當時的現實是,我完全不明白網頁是如何顯示出來的?譬如每個人登陸知乎的時候看到的是定製化的頁面,後台是如何基於每個ID來組織出不同的頁面的?所有我們看到的問題,回答,參與的評論在背後的服務器上是以一種什麼樣的形式存在的?又比如為什麼有些頁面只能在微信端打開,在電腦上就會出錯?(不知道你有沒有發現這一點)
當時我的心中充滿了無數個類似的問號?當然如果你也是小白,一定有着同樣的疑問。
好處是一開始就明確了學習的目的:Web建站。所以我的學習方案基本就是通過做項目學習,哪裡不懂就解決哪裡,邊做邊學習,不斷推進。另外,由於知道很多成功的網站在用Python做服務器開發,比如知乎,所以我就自然選擇了Python。
於是我就開始了我充滿着挫敗感和成就感的編程之路……
從8月到12月的四個月里,除去本來的工作,為了學習質量,我會保證平均每天4個小時的學習時間,周末也不例外。另外,所有的文檔,問答都盡量看英文的,這可以幫你剩下大量的時間。12月13日,我做的網站上線了,3天時間大概有5000人訪問了這個網站,我有時在後台看着日誌,不免有些心潮噴涌,我想把自己的經驗寫下來,希望對於那些有心學習編程但無從下手的朋友提供一些幫助和鼓勵。
現在回頭看,我認為這一段時間的造輪子是提升編程能力最快的時候。比如為了寫ORM,就必須去花很多時間學習SQL,去了解Python裏面的metaclass,而如果用一個現成的框架,我很有可能偷懶不去關注某些細節。而不出問題還好,一旦出問題,我就只能跪。另外,造輪子迫使我在開始的時候就構思整個框架,因為我必須儘可能的考慮到所有的情況,於是就會不斷的強迫自己完善知識體系,和別人的代碼作對比從而改進自己的,這個過程充滿了無盡的挫敗感,但是得來的成就和快樂也是無可比擬的。
關於自學python
個人最大3點經驗
1. 找一本淺顯易懂,例程比較好的教程,從頭到尾看下去。
不要看很多本,專註於一本。把裏面的例程都手打一遍,搞懂為什麼。我當時看的是《簡明python教程》,不過這本書不是非常適合零基礎初學者。
2. 去找一個實際項目練手。
我當時是因為要做一個網站,不得已要學python。這種條件下的效果比你平時學一門新語言要好很多。所以最好是要有真實的項目做。可以找幾個同學一起做個網站之類。注意,真實項目不一定非要是商業項目,你寫一個只是自己會用的博客網站也是真實項目,關鍵是要核心功能完整。
3.最好能找到一個已經會python的人。問他一點學習規劃的建議(上知乎也是個途徑),然後在遇到卡殼的地方找他指點。
這樣會事半功倍。但是,要學會搜索,學會如何更好地提問。沒人願意幫你寫作業或是回答「一搜便知」的問題。
然而,別人的經驗未必能完全複製。比如我沒有說的是,在自學python之前,我已在學校系統學習過其他的編程語言。
對於完全沒有編程經驗的初學者,在學習python的時候,面對的不僅僅是python這門語言,還需要面臨「編程」的一些普遍問題,比如:
· 從零開始,不知道從何入手,找了本編程教材發現第二章開始就看不懂了
· 缺少計算機基礎知識,被一些教程略過的「常識性」問題卡住
· 遇到問題不知道怎麼尋找解決方案
· 看懂語法之後不知道拿來做什麼,學完一陣子就又忘了
· 缺少數據結構、設計模式等編程基礎知識,只能寫出小的程序片段
所以除了前面說的3點經驗,
給編程初學者的額外建議
1、首先要有信心。雖然可能你看了幾個小時也沒在屏幕上打出一個三角形,或者壓根兒就沒能把程序運行起來。但相信我,幾乎所有程序員一開始都是這麼折騰過來的。
2、選擇合適的教程。有些書很經典,但未必適合你,可能你寫了上萬行代碼之後再看它會比較好。
3、寫代碼,然後寫更多的代碼。光看教程,編不出程序。從書上的例程開始寫,再寫小程序片段,然後寫完整的項目。
4、除了學習編程語言,也兼顧補一點計算機基礎,和英語。
5、不但要學寫代碼,還要學會看代碼,更要會調試代碼。讀懂你自己程序的報錯信息。再去找些github上的程序,讀懂別人的代碼。
6、學會查官方文檔,用好搜索引擎和開發者社區。
求python遊戲編程入門
推薦這個博客,寫的很好,是基於python2開發的,不過大部分代碼python3也可以用。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/152921.html