共计 3685 个字符,预计需要花费 10 分钟才能阅读完成。
很多人问我我是零根底开始的小白,能学会 Python 嘛?
首先零根底是能学 python 的,很多编程大神入门之前都抉择先学习 Python,所以想学就大胆去学吧,没学之前谁不是零根底,就算是当初才下定决心学也不怕,学习 Python 什么时候都不算晚。
我本人学 python 之前,就是一个编程小白,没有任何根底,大学业余反正八竿子打不着,然而我当初作为一个 python 程序员,有着还不错的支出。我想你当初的状态和我刚开始是差不多,但你要置信本人的抉择,动摇本人的抉择。
这是为了下班摸鱼我用 Python 做的俄罗斯方块小游戏
源码分享
import os
import sys
import random
from modules import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
'''定义俄罗斯方块游戏类'''
class TetrisGame(QMainWindow):
def __init__(self, parent=None):
super(TetrisGame, self).__init__(parent)
# 是否暂停 ing
self.is_paused = False
# 是否开始 ing
self.is_started = False
self.initUI()
'''界面初始化'''
def initUI(self):
# icon
self.setWindowIcon(QIcon(os.path.join(os.getcwd(), 'resources/icon.jpg')))
# 块大小
self.grid_size = 22
# 游戏帧率
self.fps = 200
self.timer = QBasicTimer()
# 焦点
self.setFocusPolicy(Qt.StrongFocus)
# 程度布局
layout_horizontal = QHBoxLayout()
self.inner_board = InnerBoard()
self.external_board = ExternalBoard(self, self.grid_size, self.inner_board)
layout_horizontal.addWidget(self.external_board)
self.side_panel = SidePanel(self, self.grid_size, self.inner_board)
layout_horizontal.addWidget(self.side_panel)
self.status_bar = self.statusBar()
self.external_board.score_signal[str].connect(self.status_bar.showMessage)
self.start()
self.center()
self.setWindowTitle('Tetris —— 九歌')
self.show()
self.setFixedSize(self.external_board.width() + self.side_panel.width(), self.side_panel.height() + self.status_bar.height())
'''游戏界面挪动到屏幕两头'''
def center(self):
screen = QDesktopWidget().screenGeometry()
size = self.geometry()
self.move((screen.width() - size.width()) // 2, (screen.height() - size.height()) // 2)
'''更新界面'''
def updateWindow(self):
self.external_board.updateData()
self.side_panel.updateData()
self.update()
'''开始'''
def start(self):
if self.is_started:
return
self.is_started = True
self.inner_board.createNewTetris()
self.timer.start(self.fps, self)
'''暂停 / 不暂停'''
def pause(self):
if not self.is_started:
return
self.is_paused = not self.is_paused
if self.is_paused:
self.timer.stop()
self.external_board.score_signal.emit('Paused')
else:
self.timer.start(self.fps, self)
self.updateWindow()
'''计时器事件'''
def timerEvent(self, event):
if event.timerId() == self.timer.timerId():
removed_lines = self.inner_board.moveDown()
self.external_board.score += removed_lines
self.updateWindow()
else:
super(TetrisGame, self).timerEvent(event)
'''按键事件'''
def keyPressEvent(self, event):
if not self.is_started or self.inner_board.current_tetris == tetrisShape().shape_empty:
super(TetrisGame, self).keyPressEvent(event)
return
key = event.key()
# P 键暂停
if key == Qt.Key_P:
self.pause()
return
if self.is_paused:
return
# 向左
elif key == Qt.Key_Left:
self.inner_board.moveLeft()
# 向右
elif key == Qt.Key_Right:
self.inner_board.moveRight()
# 旋转
elif key == Qt.Key_Up:
self.inner_board.rotateAnticlockwise()
# 疾速坠落
elif key == Qt.Key_Space:
self.external_board.score += self.inner_board.dropDown()
else:
super(TetrisGame, self).keyPressEvent(event)
self.updateWindow()
'''run'''
if __name__ == '__main__':
app = QApplication([])
tetris = TetrisGame()
sys.exit(app.exec_())
也算是一个过来人了吧,当初看来当初我学 python 也是走了许多弯路,给大家分享一下我的教训吧。
肯定要多练!肯定要多练!肯定要多练!任何编程语言的学习都是建设在实际下面的,不练习,就像是花了半天工夫去学习开枪的实践,后果基本没有机会摸枪,你感觉你打得准吗?想要学好 Python 肯定要多去练习,没有熟练度的加成,你学的再多也只是夸夸其谈,一旦面对了真正的问题,你就会无从下手。
通过材料学习
Python 学习路线
Python 易学难精,不是久而久之就能深刻把握。我收藏的「学 Python 常识框架图」,系统地梳理了入门 Python 的必备知识点,倡议保留。
👉Python 所有方向的学习路线👈
Python 所有方向的技术点做的整顿,造成各个领域的知识点汇总,它的用途就在于,你能够依照下面的知识点去找对应的学习资源,保障本人学得较为全面。
👉Python 必备开发工具👈
工欲善其事必先利其器。学习 Python 罕用的开发软件都在这里了,给大家节俭了很多工夫。
👉Python 精品 PDF 电子书👈
浏览一些前辈整顿的书籍或者手写的笔记材料,这些笔记具体记录了他们对一些技术点的了解,这些了解是比拟独到,能够学到不一样的思路。
👉Python 学习视频👈
观看零根底学习视频,看视频学习是最快捷也是最有成果的形式,跟着视频中老师的思路,从根底到深刻,还是很容易入门的。
👉实战案例👈
光学实践是没用的,要学会跟着一起敲,要入手实操,能力将本人的所学使用到理论当中去,这时候能够搞点实战案例来学习。
👉Python 练习题👈
查看学习后果。
👉面试材料👈
咱们学习 Python 必然是为了找到高薪的工作,上面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试材料,并且有阿里大佬给出了权威的解答,刷完这一套面试材料置信大家都能找到称心的工作。
总结
材料我都为大家筹备好了,须要的搭档请扫下方 csdn 官网二维码收费支付。
心愿我的学习教训能够帮忙到你,多结交一个圈子内的人,不便当前守业,毕竟一辈子给人打工是没有止境的。