• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

stuano

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

python基本语法

变量:整型、实数、布尔值、字符串、或更复杂的数据结构,如列表、字典。

 

python2版本

函数:

查看变量类型:

>>>port = '21'

>>>type(port)

<type 'str'>

字符串函数:小写转大写:upper();小写转小写:lower();字符串old替换成new:replace(old,new);检测字符串中是否包含指定子字符串'FTP':find('FTP')

例:

>>>banner = "FreeFloat FTP Server"

>>>print banner.upper()             运行结果:FREEFLOAT FTP SERVER

>>>print banner.lower()              运行结果:freefloat ftp server

>>>print banner.replace('FreeFloat', 'Ability')   运行结果:Ability FTP Server

>>>print banner.find('FTP')           运行结果:10

 数据结构——列表

>>>portList = []

>>>portList.append(21)         #增加列表数据

>>>portList.append(80)

>>>portList.append(443)

>>>portList.append(25)

>>>print portList      #打印列表

[21,80,443,25]       

>>>portList.sort()      #列表排序

>>>print partList

[21,25,80,443]

>>>pos = portList.index(80)  #查看80位置,21在第0位,25在第1位,80在第2位,所以pos=2

>>>print "[+]There are "+str(pos)+" ports to scan before 80."

[+]There are 2 ports to scan before 80.

>>>portList.remove(443)  #移除443

>>>cnt = len(portList)     #len() 返回portList列表长度,所以cnt=3

数据结构——字典

>>>services = {'ftp':21, 'ssh':22, 'smtp':25, 'http':80}

>>>services.keys()

['ftp', 'smtp', 'ssh', 'http']

>>>services.items()

[('ftp',21),('smtp',25),('ssh',22), ('http',80)]

>>>services.has_key('ftp')

True

>>>services['ftp']

21

 

网络

  套接字模块提供了一个可以使python 建立网络连接的库。让我们快速的编写一个获取提示信息的脚本,连接到特定IP 地址和端口后,我们的脚本将打印提示信息,之后,我们使用connect()函数连接到IP 地址和端口。一旦连接成功,就可以通过套接字进行读写。这种recv(1024)的方法将读取之后在套接字中1024 字节的数据。我们把这种方式的结果存到一个变量中,然后打印到服务器。

 

异常处理

  即使一个程序设计师编写的程序语法正确,该程序仍然可能在运行或执行时发生错误。考虑经典的一种运行错误——除以零。因为零不能做除数,所以python 解释器显示一条消息,把错误信息告诉程序设计师:该错误使程序停止执行。

>>> print 1337/0
Traceback (most recent call last):File "<stdin>", line 1, in <module> ZeroDivisionError: integer division or modulo by zero

  如果我们想在我们预设的范围内处理错误,会对运行的程序产生什么影响呢?python 语言提供的异常处理能力就可以这样做。让我们来更新前面的例子,我们使用try/except 进行异常处理。现在程序试图除以零。当错误发生时,我们的异常处理捕获
错误并把错误信息打印到屏幕上。
>>> try:
... print "[+] 1337/0 = "+str(1337/0)
... except:
... print "[-] Error. "
...
[-] Error

  不幸的是,这给了我们非常少的关于错误的异常处理的信息。但在对待特殊错误时,这可能很有用,要做到这一点,我们将存储异常信息到一个变量中,来打印出异常信息。
>>> try:
... print "[+] 1337/0 = "+str(1337/0)
... except Exception, e:
... print "[-] Error = "+str(e)
...
[-] Error = integer division or modulo by zero
>>>

函数

  在python 中,函数提供了组建好的,可反复使用的代码片段。通常,这允许程序设计师写代码来执行单独或关联的行为。

   尽管python 提供了许多内置函数,程序设计师仍然可以创建自定义的函数。关键字def()开始了一个函数,程序设计师可以把任何变量放到括号里。这些变量随后被传递,这意味着在函数内部对这些变量的任何变化,都将影响调用的函数的值。继续以我们的FTP 漏洞扫描器为例,让我们创建一个函数来执行只连接到FTP 服务器的操作并返回提示信息。

 

 

 

 

posted on 2019-12-04 15:12  stuano  阅读(205)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3