‘壹’ python学哪个好
Python有Python2和Python3,很多人都会纠结选择哪个版本进行学习?这两个版本是不兼容的,而且差异比较大,需要多方面具体分析来决定。
从基本设计上来说,Python3的目的就是没有代码兼容的包袱情况下进行改进了Python,相对于Python2来说,Python3有很多的改进,更加容易理解,也更加合理。
而且从应用的角度上来说,pypy、web框架、科学计算包、scrapy等常用模块都是支持Python3的,但是部分比较陈旧的库已经没有人进行维护,也就没有支持Python3.
当我们进行日常使用的情况之下,可以直接写Python2\3兼容的代码,相对于来说,Python2对于旧库的支持更多一些,至少在学界还是比较流行的。
‘贰’ python3有什么比较好的语法分析器
Pycharm, Eclipse,Ipython,其实自带的IDLE shell也可以设置的
‘叁’ 推荐好用的Python编辑器
推荐一:PyCharm
PyCharm 是 JetBrains 开发的 Python IDE。PyCharm用于一般IDE具备的功能,比如, 调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制……另外,PyCharm还提供了一些很好的功能用于Django开发,同时支持Google App Engine,更酷的是,PyCharm支持IronPython。
推荐二:Vim
曾有人开玩笑说,如果生成一段随机字符串,有人回答给他一个Vim 编辑器就可以了。Vim 虽然使用门槛高,但是一旦你学会了,写代码的效率杠杠的,Vim是高级文本编辑器,旨在提供实际的Unix 编辑器’Vi’功能,支持更多更完善的特性集。Vim不需要花费太多的学习时间,一旦你需要一个无缝的编程体验,那么就会把 Vim 集成到你的工作流中。这是黑客最喜欢的编辑器之一。
推荐三:Eclipse with PyDev
Eclipse 曾今是非常流行的 IDE,而且已经有了很久的历史。虽然现在慢慢地被 jetbrains 家族替代了,但是瘦死的骆驼比马大,Eclipse with Pydev 允许开发者创建有用和交互式的 Web 应用。PyDev 是 Eclipse 开发 Python 的 IDE,支持 Python,Jython和 IronPython 的开发。
推荐四:Sublime Text
Sublime Text 是开发者中最流行的编辑器之一,多功能,支持多种语言,而且在开发者社区非常受欢迎。Sublime 有自己的包管理器,开发者可以使用TA来安装组件,插件和额外的样式,所有这些都能提升你的编码体验。虽然作为收费软件,良心的是你不需要付费也能正常使用,只不过是不是给你弹出一个购买的窗口,有钱了还是要支持一下正版软件。
推荐五:Visual Studio Code
Visual Studio Code (VSCode)为MS所开发的code editing tool,免费且开源,并支持Windows,Mac OS,Linux。VSCode像是精简版的Visual Studio,升级版的Sublime。VSCode由于其非常的轻量,因此使用过程中非常的流畅,对于用户不同的需要,可以自行下载需要的扩展(Extensions)来安装。对于配置Python开发环境来说,相比于Sublime,配置起来更加容易。VSCode配置完后的环境是可以直接进行可视化的Debug,再也不用打各种print或者用pdb调试命令了,回归到Visual Studio里F10和F11。
推荐六: Atom
Atom是由 GitHub 的程序员们打造的称为“属于21世纪”的代码编辑器。它开源免费跨平台(支持 Windows、Mac、Linux 三大桌面平台),并且整合 GIT 并提供类似 SublimeText 的包管理功能,作为一个现代的代码编辑器,Atom 支持各种编程语言的代码高亮(HTML / CSS / Javascript / PHP / Python / C / C++ / Objective C / Java / JSON / Perl / coffeescript / Go / Sass / YAML / Markdown 等等)、 与大多数其他编辑器相比,Atom的语言支持已经算是覆盖非常全面了。另外,它的代码补全功能(也叫Snippets) 也非常好用,你只需输入几个字符即可展开成各种常用代码,可以极大提高编程效率。
推荐七: Emacs
GNU Emacs 是可扩展,自定义的文本编辑器,甚至是更多的功能。Emacs 的核心是 Emacs Lisp 解析器,但是支持文本编辑。如果你已经使用过 Vim,可以尝试一下 Emacs。
推荐八:Spyder
Spyder (前身是 Pydee) 是一个强大的交互式 Python 语言开发环境,提供高级的代码编辑、交互测试、调试等特性,支持包括 Windows、Linux 和 OS X 系统。Spyder是Anaconda科学计算工具中默认的开发工具,做数据分析、搞机器学习的人喜欢这个工具。
9. Thonny
Thonny是基于python内置图形库tkinter开发出来的支持多平台(windows,Mac,Linux)的python IDE,支持语法着色、代码自动补全、debug等功能,如果你正在寻找一种“轻量级”的python IDE,那么可以试一试Thonny。
10. Wing
Wingware 的 Python IDE 兼容 Python 2.x 和 3.x,可以结合 Django, matplotlib, Zope, Plone, App Engine, PyQt, PySide, wxPython, PyGTK, Tkinter, mod_wsgi, pygame, Maya, MotionBuilder, NUKE, Blender 和其他 Python 框架使用。Wing 支持测试驱动开发,集成了单元测试,nose 和 Django 框架的执行和调试功能。Wing IDE 启动和运行的速度都非常快,支持 Windows, Linux, OS X 和 Python versi。
‘肆’ python做数据分析 用哪个好
推荐Rice大学的那门python课,Rice大学的课程总共有3门,现在貌似拆解成6门了;每门课8周时间,按照由浅入深的顺序来的。第一门课是Python基础,介绍了Python的基础语法;第二门课是计算基础,介绍了一些稍微复杂一点的语法和数据处理;第三门课是算法思考,介绍了一些常用的算法;并且还用到了numpy, matlabplot库等。
‘伍’ 有没有好的 python 混淆器 推荐一个
代码混淆,其实很简单。原理就是查找、替换而已。市面上有很多混淆工具,最好是在混淆工具的基础上,自己再写一下,二次混淆。算法也不难。如果需要全局混淆,以及自动混淆,那么就复杂一些了,需要再加上词法分析和语法分析。
如何使用:
1,首先得安装Python。
2,把这个下面这个 confuse.py 文件,复制目标文件夹。
3,更改 raw_name_list 列表里的字符串。改成你想混淆的变量名或者类名方法名。
4,运行pythonconfuse.py 即可混淆该文件夹下的.cs文件。
这段代码其实还是很简单的,只是为大家说明一下混淆思想。如果想更方便的使用,需要再加入一些词法分析、语法分析的算法。
代码如下:
#! /usr/bin/env python
#coding=utf-8
import hashlib
import random
import os
###############################
# Describe : 混淆Unity脚本文件
# D&P Author By: 常成功
# Create Date: 2014-11-25
# Modify Date: 2014-11-25
###############################
#想混淆的变量/方法名
raw_name_list = ["function_1", "function_2", "var_1", "var_2",]
#混淆后的变量/方法名
new_name_list = []
#随机可选的字母表
alphabet = ["a", "b", "c", "d", "e", "f", "g",
"h", "i", "j", "k", "l", "m", "n", "o", "p", "q",
"r", "s", "t", "u", "v", "w", "x", "y", "z",
]
#生成新的变量名
def create_new_name() :
m = hashlib.md5()
#生成随机变量名
for raw_name in raw_name_list:
m.update(raw_name)
#生成一个16位的字串
temp_name = m.hexdigest()[0:16]
#合法名称校验
#强制以字母作为变量/方法名的开头
if temp_name[0].isdigit():
initial = random.choice(alphabet)
temp_name = initial + temp_name
temp_name = temp_name[0:16]
#不能重名
while(1):
if temp_name in new_name_list :
initial = random.choice(alphabet)
temp_name = initial + temp_name
temp_name = temp_name[0:16]
else:
new_name_list.append(temp_name)
break
#混淆文件
def confuse_file(path_filename):
file_content = ""
#读文件内容
f = file(path_filename)
# if no mode is specified, 'r'ead mode is assumed by default
while True:
line = f.readline()
if len(line) == 0: # Zero length indicates EOF
break
#混淆
name_index = 0
for raw_name in raw_name_list:
the_new_name = new_name_list[name_index]
line = line.replace(raw_name, the_new_name)
name_index += 1
file_content += line
f.close()
#重写文件
f = file(path_filename, 'w')
f.write(file_content)
f.close()
#遍历当前目录下的所有.cs文件
def confuse_all():
#获取当前目录
dir = os.getcwd()
for root, dirs, filename in os.walk(dir):
for file in filename:
path_filename = os.path.join(root, file)
if path_filename.endswith('.cs'):
confuse_file(path_filename)
print "Confuse File: ", path_filename
if __name__=="__main__":
create_new_name()
confuse_all()
#打印一下混淆的情况.
#如果用文本保存起来, 那么以后可以反混淆, 还原文件
print "Start Confuse ...."
for j in range(0, len(raw_name_list)) :
print raw_name_list[j] , " --> " , new_name_list[j]
print "Confuse Complete !"