很多人问我我是零根底开始的小白,能学会 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 官网二维码收费支付。
心愿我的学习教训能够帮忙到你,多结交一个圈子内的人,不便当前守业,毕竟一辈子给人打工是没有止境的。