一、关于编辑器
python开发:pycharm(收费),vscode(免费),sublintext,
go开发:goland(收费),vscode,国产的
java:idea(收费),eclipse(免费),MyEclipse(收费)
android:androidstudio(免费),eclipse+adt
前端:webstorm(收费)
php:phpstorm(收费)
数据库开发:data
jetbrains公司出的全家桶,一个注册码,可以都用
androidstudio:谷歌买了jetbrains公司授权,在它基础上,做了它
二、解释型和编译型
开发环境:windows开发,但是有些东西在windows上装不上,可以用虚拟机换成乌班图安装,也可以远程连接linux,远程连linux内的docker开发
编程语言:
c:c代码写完,编译(不同平台),跨平台运行,linux上源码安装软件,自行编译,运行
java:一处编码,处处运行,java是编译型还是解释型?编译型,编译过程---把java源代码编译成字节码文件 .class
---不能直接运行在操作系统之上----》jvm(java虚拟机),jvm运行至少要300m内存
jdk
jre
jvm
javase javame javaee
go:编译型,跨平台编译(windows平台可以编译出mac平台的可执行文件),所有go代码打成一个可执行文件
python: 强类型动态语言
js:只能在浏览器中运行,nodejs
php:web开发
学习python未来从事的方向
1 python后端开发:做网站,前端可以是app,小程序的python后端
2 自动化运维:收集服务器软硬件信息(cmdb),jumpserver(堡垒机),sql审批,监控,日志收集,处理
devops:ci/di
3 自动化测试:selenium,appnium,pytest
4 数据分析:
5 爬虫:
6 量化交易
7 人工智能,图像处理
8 安全方向:端口扫描,弱口令扫描,sql注入,csrf攻击,xss攻击(利用python成为顶级黑客)
9 网络方向
10 物联网方向
三、数据类型
1 一切皆对象
一切皆对象的好处是不同类型的变量之间可以直接赋值,本质是修改了只想的内存地址
type和object的关系
- type是object的类
- type继承了object
- type也是type自己的类
2 深浅拷贝
等号直接赋值:是直接指向被拷贝对象的内存地址,id相同
浅拷贝:把被拷贝对象的内存地址复制一份,id不相同,但是内部的可变类型id相同
深拷贝:把拷贝对象内的所有内存地址都复制一份,做到值相同,但是内部可变类型id都不同
3 可变类型和不可变类型
可变类型:字典,列表,集合
不可变类型: 数字,字符串,元组
python3.5之后字典变成有序字典且优化了存储结构
参考:https://www.cnblogs.com/xiaoyuanqujing/articles/12008689.html
函数传参机制:值传递、引用传递
- 值传递
- 被调用形参作为函数的局部变量处理,不会影响外部变量
- 引用传递
- 调用的参数是参数本身,会影响外部变量
python根据可变类型和不可变类型的区别不能用一种机制一概而论,python的可变类型是引用传递,不可变类型是值传递。
四、闭包函数
定义:
- 定义在函数内部
- 对外部作用域有引用
函数是一等公民:函数可以赋值给一个变量
面向对象编程:OOP