哪些专业需要学python-电气专业需要自学Python吗?

可以学啊,技多不压身

学会了也能帮助你解决很多事情

简单说说python怎么学吧

我把Python学习分成了三个阶段

第一个阶段:Python的基础知识

初学者需要对Python的基础知识做一个全方位的了解,要清楚什么是条件选择,循环的作用,List集合和Dict字典集合;什么是函数,如何进行异常处理,什么是文件和目录,文件的读取和写入;如何写Python模块,如何在另外一个程序里面去引入模块;熟悉常见的标准库,比如:时间日期,随机数,正则表达式等;要学会使用面向对象的思维来进行编程;总而言之,阶段一主要是打基础,需要掌握一些基本的Python语句,但是正在的开发核心是Web端的开发,所以就有了后面的阶段二和阶段三。

第二个阶段:MVC的Web框架

Web框架很多,这里建议大家学习Django框架,因为Django是一个企业级的框架,目前企业应用的最多;阶段二除了涉及到Django框架之外,还涉及到很多前端的知识,包括HTML、CSS、JavaScript、jQuery等等;

在阶段二除了前后端,还包含数据库,所有的开发如果没有后端的数据是没有意义的,所以需要数据库来存储数据。

如果想真正理解MVC这种设计模型(在Django里面叫MVT)真正运行的过程是什么,当对Mysql数据库的增删改查熟悉之后,就可以使用Pymysql这个模块来操作后台的mysql数据库了。在和数据库交互的时候有两个模式,模式一:原生的SQL,模式二:ORM;原生的SQL语句简单了解即可,后面写程序主要是通过ORM,所以ORM也是必须要掌握的内容。

当阶段二完成后,一些常见的或者不是特别复杂的Web应用程序就可以独立完成了,但是写出来的程序是前后端没有分离的,如果你想对开发的认知提高一个层次,第三个阶段就显得尤为重要,Web应用程序的前后端的框架是一定要分离开的。

第三个阶段:前后端分离的Web框架

最后一个阶段除了涉及到后端的Django框架之外,还必须要掌握前端的框架,比如:VUE 或者React等等;要知道json这样的文本格式是怎么回事;Ajax的异步请求应该如何写,前后端分离后,前端就是通过Ajax和后端交互;

后端部分在之前的阶段二对Django做了基本的了解,在阶段三就需要知道FBV和CBV,在阶段二写的所有的VUE都是基于函数的,在阶段三写的VUE一定要基于类。在后端一个非常重要的设计模型REST Framework,一定要学会使用REST Framework这种设计模型为前端提供API;在阶段三建议还要学习一个数据库mongoDB,来更好的完成数据库调用。

三个阶段都掌握后,从事开发相关的工作,月薪不会低于10k,当然了,你也可以从事人工智能相关的行业

那就需要你多专研算法了

我这里有很多学习过程中积累的干货资料

/>

/>

/>

有需要的参考下图找我来拿

/>

function Gobang () {

this.over = false; // 是否结束

this.player = true; // true:我 false:电脑

this.allChesses = []; // 所有棋子

this.existChesses = [] // 已经落下的棋子

this.winsCount = 0; // 赢法总数

this.wins = []; // 所有赢法统计

this.myWins = []; //我的赢法统计

this.computerWins = []; //电脑赢法统计

}

//初始化

Gobang.prototype.init = function(opts) {

// 生成canvas棋盘

this.createCanvas(opts);

//棋盘初始化

this.boardInit();

// 鼠标移动聚焦功能实现

this.mouseMove();

//算法初始化

this.algorithmInit();

//落子功能实现

this.dorpChess();

}

//生成canvas

Gobang.prototype.createCanvas = function(opts) {

var opts = opts || {};

if (opts.width && opts.width%30 !== 0) throw new RangeError(opts.width+'不是30的倍数');

this.col = (opts.width && opts.width/30) || 15; // 棋盘列

var oCanvas = document.createElement('canvas');

oCanvas.width = oCanvas.height = opts.width || 450;

this.canvas = oCanvas;

document.querySelector(opts.container || 'body').appendChild(this.canvas);

this.ctx = oCanvas.getContext('2d');

}

//棋盘初始化

Gobang.prototype.boardInit = function(opts){

this.drawBoard();

}

// 画棋盘

Gobang.prototype.drawBoard = function(){

this.ctx.strokeStyle = "#bfbfbf";

for (var i = 0; i < this.col; i++) {

this.ctx.moveTo(15+ 30*i, 15);

this.ctx.lineTo(15+ 30*i, this.col*30-15);

this.ctx.stroke();

this.ctx.moveTo(15, 15+ 30*i);

this.ctx.lineTo(this.col*30-15, 15+ 30*i);

this.ctx.stroke();

}

}

// 画棋子

Gobang.prototype.drawChess = function(x, y, player){

var x = 15 + x * 30,

y = 15 + y * 30;

this.ctx.beginPath();

this.ctx.arc(x, y, 13, 0, Math.PI*2);

var grd = this.ctx.createRadialGradient(x + 2, y - 2, 13 , x + 2, y - 2, 0);

if (player) { //我 == 黑棋

grd.addColorStop(0, '#0a0a0a');

grd.addColorStop(1, '#636766');

}else{ //电脑 == 白棋

grd.addColorStop(0, '#d1d1d1');

grd.addColorStop(1, '#f9f9f9');

}

this.ctx.fillStyle = grd;

this.ctx.fill()

}

// 鼠标移动时触发聚焦效果, 需要前面的聚焦效果消失, 所有需要重绘canvas

Gobang.prototype.mouseMove = function(){

var that = this;

this.canvas.addEventListener('mousemove', function (e) {

that.ctx.clearRect(0, 0, that.col*30, that.col*30);

var x = Math.floor((e.offsetX)/30),

y = Math.floor((e.offsetY)/30);

//重绘棋盘

that.drawBoard();

//移动聚焦效果

that.focusChess(x, y);

//重绘已经下好的棋子

that.redrawedChess()

});

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值