Hacker基础之Python篇:一、环境安装和基础知识

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做一些基本的操作,包括加减乘除等等。

本文完

原文发布于微信公众号 - 玄魂工作室(xuanhun521)

原文发表时间:2018-03-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Golang语言社区

无辜的goroutine

简介: 本文主要是针对一些对于goroutine的“指控”提出我自己的看法,特别是轩脉刃的一篇博客文章《论go语言中goroutine的使用》提出了gorout...

36011
来自专栏编程

设计模式启示录(二)

设计模式启示录(二) 在【设计模式启示录 (一)】中,重点介绍了设计模式的精髓(抽象),设计模式的分类(按抽象的目的进行分类)。在本篇中,将按照前述的七大分类,...

1797
来自专栏Urahara Blog

Using get_defined_functions To Hidden A PHP Backdoor

1742
来自专栏carven

浅谈js的date对象对时间字符串的解析

最近的时间都在开发社团内部的应用–隧道口,虽然只有简单的几个页面,但是依然是遇到了不少坑。 其中 date 的时间处理就是一个。

860
来自专栏FreeBuf

逆向工厂(二):静态分析技术

* 本文原创作者:追影人,本文属FreeBuf原创奖励计划,未经许可禁止转载 前言 [逆向工厂]第一章节中介绍了逆向技术的相关基础知识,其中提到逆向的两种形式:...

4368
来自专栏灯塔大数据

技术 | Python从零开始系列连载(十五)

在Python中使用try...except 结构创建 ' 隔离区 ',也就是进行异常处理

901
来自专栏信数据得永生

JavaScript 编程精解 中文第三版 八、Bug 和错误

30910
来自专栏青玉伏案

设计模式(九): 从醋溜土豆丝和清炒苦瓜中来学习"模板方法模式"(Template Method Pattern)

今天是五.四青年节,祝大家节日快乐。看着今天这标题就有食欲,夏天到了,醋溜土豆丝和清炒苦瓜适合夏天吃,好吃不上火。这两道菜大部分人都应该吃过,特别是醋溜土豆丝,...

1769
来自专栏资深Tester

测试流程之如何设计测试用例

1983
来自专栏python学习路

一、代码风格 1、假定你的代码需要维护2、保持一致性3、考虑对象在程序中存在的方式,尤其是那些带有数据的对象4、不要做重复工作5、让注释讲故事6、奥卡姆剃刀原则1、简洁的规则2、文档字符串3、空行4、

刚开始学的时候就要注意编码规范了,所以整理了一下,以便养成一个编码好习惯。不然以后真的不好改。 代码被读的次数远大于被写的次数。 作为一名程序员(使用任何语言)...

2425

扫码关注云+社区

领取腾讯云代金券