0x01. 前言
emmmmmmm...你只需知道这是一门用途很广的语言,上到大数据AI,下到Linux运维,都可以使用Python,当然,黑客也用Python。
0x02. 环境安装
学习Python之前,希望你具备了一定的Linux基础,一定的C语言基础,所有的操作都是在Linux上完成,Python的版本是Python3 (注:Python2将在2020年停止支持)。
为啥是在Linux上?
因为Windows有大量的非ASCII字符,举个栗子:比如英文的|和中文的|,你看上去就是完全一样啊,但是其实他们这两个符号在系统中的编码是不一样的~
所以很多Python (当然还有其他语言的) 新手写代码时候经常就会莫名其妙,明明就是照着书上抄的代码,和书上一模一样,为什么总是运行出错 (黑人疑问脸 )???然后这种事情一多之后,对学习的热情就断崖式下降了。
所以我建议各位未来的黑客,使用Linux(英文版)作为你学习Python(还有其他语言)的操作系统,然后我们就开始Python安装。
Windows(不建议):
从Python的官网下载安装文件msi之后,点击安装,然后在Path里面加入Python的文件目录就行(具体请Bing)。
Linux:
Linux已经自带了包括Python2.7和Python3.5,所以如果你安装了一个Linux的虚拟机或者物理机,这里的安装就会非常非常非常简单(这里你什么也不用做)。
0x03. 基础知识之初步了解Python
此处直接默认系统为Linux,我们首先尝试着打开Python3,打开Terminal,输入
python3
然后我们就可以进入Python的交互式解释器,这看起来不是很有趣,但是,请相信我,它确实是充满了趣味,这是进入Hacker殿堂的大门,是控制计算做你想做的事的第一步。
我们试着输入下面命令看看它是否正常工作。
print('Hello, world!')
当按下回车键之后,会得到下面的输出:
这里说明一下,在Python2中,print不是个函数,也就是你可以这样输入一个字符串:
注意,上面的是Python2
但是在Python3中,print已经被成了一个函数,也就是可以接受参数了
如果我们在Python3中还是延续Python2的语法,就会报错:
所以注意这里区别Python2和Python3
那个>>>符号就是提示符,在后面写入正确的命令按回车之后就可以执行,并在下面显示执行结构,前提是命令有回显
如果我们随便输点什么内容,试试看:
Python的解释器就会不明白你的输入,并且释出了一个NameError。
0x04. 算法概论
在开始学习Python编程之前,我们首先解释一下什么是计算机程序设计。
简单的说,就是告诉计算机要做什么,怎么做。
所以,算法就是告诉计算做这个东西的步骤或者做这个菜的菜谱是怎样的。
如设计一个自动化攻击渗透的程序,我们可以得出下面的流程:
step1:找到目标网址URL step2:通过URL获得目标网站的IP地址 step3:调用nmap扫描目标IP地址的端口 step4:...
以上就是一个广义上的算法,本质和计算机狭义的冒泡排序算法,最短路径算法没什么区别。
0x05. 数字和表达式
交互式的Python解释器可以当作非常强大的计算器使用,当然,这就意味着做数据分析时候很方便,试试以下例子:
2 + 2
563287465 + 756837465
然后是除法:
1/2
如果在Python2里面执行的话,这个1/2操纵只会留下0,因为除数和被除数都是int,所以结果也只取int类型,故在Python2里面执行1/2=0。
当然,还包括整除:
10 // 3
处理加减乘除之后,还有一个非常有用的运算符:
10 % 3
这就是取余运算符。
最后一个就是幂运算符:
3 ** 2
0x06. 长整数
Python可以处理非常大的数,这和C语言里面不一样,C语言里面int类型取值范围是[-2147483648, 2147483647],但是在Python里面你可以不用受这限制:
你可以输入你希望的任意大小的值,所以这对于进行科学计算来说相当容易,你不用担心int类型的变量会不会溢出。
同样的大数运算也是可以的。
0x07. 十六进制和八进制
在Python中,十六进制的数字可以这样书写:
0xAF
而八进制的数字可以如下书写,注意第二个字母为o,不是0:
0o010
0x07. 其他一些基本概念
赋值语句:
x = 3
这句话的意思就是将3这个值赋值给了x变量。
获得用户输入:
x = input('x: ')
在你按下回车键之后,交互式解释器会输出你对input函数的入参,然后等待用户输入一个值:
我们输入一个值之后,x就被赋值等于了3,现在,你可以用x做一些基本的操作,包括加减乘除等等。
本文完