<!--
/* Font Definitions */
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:微软雅黑;
panose-1:2 11 5 3 2 2 4 2 2 4;}
@font-face
{font-family:华文隶书;
panose-1:2 1 8 0 4 1 1 1 1 1;}
@font-face
{font-family:Consolas;
panose-1:2 11 6 9 2 2 4 3 2 4;}
@font-face
{font-family:"\@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:"\@微软雅黑";
panose-1:2 11 5 3 2 2 4 2 2 4;}
@font-face
{font-family:"\@华文隶书";
panose-1:2 1 8 0 4 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin-top:2.0pt;
margin-right:0cm;
margin-bottom:2.0pt;
margin-left:0cm;
text-indent:10.0pt;
font-size:12.0pt;
font-family:"Calibri",sans-serif;}
h2
{mso-style-link:"标题 2 Char";
margin-top:2.0pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
text-align:center;
text-indent:10.0pt;
background:#DBE5F1;
border:none;
padding:0cm;
font-size:14.0pt;
font-family:"Calibri",sans-serif;
text-transform:uppercase;
letter-spacing:.75pt;
font-weight:normal;}
h3
{mso-style-link:"标题 3 Char";
margin-top:15.0pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
text-indent:10.0pt;
border:none;
padding:0cm;
font-size:11.0pt;
font-family:"Calibri",sans-serif;
color:#243F60;
letter-spacing:.75pt;
font-weight:bold;}
h4
{mso-style-name:"标题 4\,代码";
mso-style-link:"标题 4 Char\,代码 Char";
margin-top:2.0pt;
margin-right:0cm;
margin-bottom:2.0pt;
margin-left:0cm;
text-indent:24.0pt;
font-size:12.0pt;
font-family:"Calibri",sans-serif;
font-weight:normal;}
h5
{mso-style-link:"标题 5 Char";
margin-top:15.0pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
text-indent:10.0pt;
border:none;
padding:0cm;
font-size:11.0pt;
font-family:"Calibri",sans-serif;
color:#244061;
letter-spacing:.5pt;
font-weight:bold;}
h6
{mso-style-link:"标题 6 Char";
margin-top:15.0pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
text-indent:10.0pt;
border:none;
padding:0cm;
font-size:11.0pt;
font-family:"Calibri",sans-serif;
color:#365F91;
text-transform:uppercase;
letter-spacing:.5pt;
font-weight:normal;}
p.MsoHeading7, li.MsoHeading7, div.MsoHeading7
{mso-style-link:"标题 7 Char";
margin-top:15.0pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
text-indent:10.0pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;
color:#365F91;
text-transform:uppercase;
letter-spacing:.5pt;}
p.MsoHeading8, li.MsoHeading8, div.MsoHeading8
{mso-style-link:"标题 8 Char";
margin-top:15.0pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
text-indent:10.0pt;
font-size:9.0pt;
font-family:"Calibri",sans-serif;
text-transform:uppercase;
letter-spacing:.5pt;}
p.MsoHeading9, li.MsoHeading9, div.MsoHeading9
{mso-style-link:"标题 9 Char";
margin-top:15.0pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
text-indent:10.0pt;
font-size:9.0pt;
font-family:"Calibri",sans-serif;
text-transform:uppercase;
letter-spacing:.5pt;
font-style:italic;}
p.MsoToc1, li.MsoToc1, div.MsoToc1
{margin-top:2.0pt;
margin-right:0cm;
margin-bottom:2.0pt;
margin-left:0cm;
text-indent:10.0pt;
font-size:12.0pt;
font-family:"Calibri",sans-serif;}
p.MsoToc2, li.MsoToc2, div.MsoToc2
{margin-top:2.0pt;
margin-right:0cm;
margin-bottom:2.0pt;
margin-left:21.0pt;
text-indent:10.0pt;
font-size:12.0pt;
font-family:"Calibri",sans-serif;}
p.MsoToc3, li.MsoToc3, div.MsoToc3
{margin-top:2.0pt;
margin-right:0cm;
margin-bottom:2.0pt;
margin-left:42.0pt;
text-indent:10.0pt;
font-size:12.0pt;
font-family:"Calibri",sans-serif;}
p.MsoHeader, li.MsoHeader, div.MsoHeader
{mso-style-link:"页眉 Char";
margin-top:2.0pt;
margin-right:0cm;
margin-bottom:2.0pt;
margin-left:0cm;
text-align:center;
text-indent:10.0pt;
layout-grid-mode:char;
border:none;
padding:0cm;
font-size:9.0pt;
font-family:"Calibri",sans-serif;}
p.MsoFooter, li.MsoFooter, div.MsoFooter
{mso-style-link:"页脚 Char";
margin-top:2.0pt;
margin-right:0cm;
margin-bottom:2.0pt;
margin-left:0cm;
text-indent:10.0pt;
layout-grid-mode:char;
font-size:9.0pt;
font-family:"Calibri",sans-serif;}
p.MsoCaption, li.MsoCaption, div.MsoCaption
{margin-top:2.0pt;
margin-right:0cm;
margin-bottom:2.0pt;
margin-left:0cm;
text-indent:10.0pt;
font-size:8.0pt;
font-family:"Calibri",sans-serif;
color:#365F91;
font-weight:bold;}
p.MsoTitle, li.MsoTitle, div.MsoTitle
{mso-style-link:"标题 Char";
margin-top:36.0pt;
margin-right:0cm;
margin-bottom:2.0pt;
margin-left:0cm;
text-indent:10.0pt;
font-size:26.0pt;
font-family:"Calibri",sans-serif;
color:#4F81BD;
text-transform:uppercase;
letter-spacing:.5pt;}
p.MsoSubtitle, li.MsoSubtitle, div.MsoSubtitle
{mso-style-link:"副标题 Char";
margin-top:2.0pt;
margin-right:0cm;
margin-bottom:50.0pt;
margin-left:0cm;
text-indent:10.0pt;
font-size:12.0pt;
font-family:"Calibri",sans-serif;
color:#595959;
text-transform:uppercase;
letter-spacing:.5pt;}
a:link, span.MsoHyperlink
{color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{color:purple;
text-decoration:underline;}
em
{color:#243F60;
text-transform:uppercase;
letter-spacing:.25pt;
font-style:normal;}
p.MsoDocumentMap, li.MsoDocumentMap, div.MsoDocumentMap
{mso-style-link:"文档结构图 Char";
margin-top:2.0pt;
margin-right:0cm;
margin-bottom:2.0pt;
margin-left:0cm;
text-indent:10.0pt;
font-size:9.0pt;
font-family:宋体;}
p
{margin-right:0cm;
margin-left:0cm;
font-size:12.0pt;
font-family:宋体;}
code
{font-family:宋体;}
pre
{mso-style-link:"HTML 预设格式 Char";
margin:0cm;
margin-bottom:.0001pt;
text-indent:10.0pt;
font-size:12.0pt;
font-family:宋体;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
{mso-style-link:"批注框文本 Char";
margin:0cm;
margin-bottom:.0001pt;
text-indent:10.0pt;
font-size:9.0pt;
font-family:"Calibri",sans-serif;}
p.MsoNoSpacing, li.MsoNoSpacing, div.MsoNoSpacing
{mso-style-link:"无间隔 Char";
margin:0cm;
margin-bottom:.0001pt;
text-indent:10.0pt;
font-size:12.0pt;
font-family:"Calibri",sans-serif;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
{margin-top:2.0pt;
margin-right:0cm;
margin-bottom:2.0pt;
margin-left:36.0pt;
text-indent:10.0pt;
font-size:12.0pt;
font-family:"Calibri",sans-serif;}
p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParagraphCxSpFirst
{margin-top:2.0pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:36.0pt;
margin-bottom:.0001pt;
text-indent:10.0pt;
font-size:12.0pt;
font-family:"Calibri",sans-serif;}
p.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListParagraphCxSpMiddle
{margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:36.0pt;
margin-bottom:.0001pt;
text-indent:10.0pt;
font-size:12.0pt;
font-family:"Calibri",sans-serif;}
p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast
{margin-top:0cm;
margin-right:0cm;
margin-bottom:2.0pt;
margin-left:36.0pt;
text-indent:10.0pt;
font-size:12.0pt;
font-family:"Calibri",sans-serif;}
p.MsoQuote, li.MsoQuote, div.MsoQuote
{mso-style-link:"引用 Char";
margin-top:2.0pt;
margin-right:0cm;
margin-bottom:2.0pt;
margin-left:0cm;
text-indent:10.0pt;
font-size:12.0pt;
font-family:"Calibri",sans-serif;
font-style:italic;}
p.MsoIntenseQuote, li.MsoIntenseQuote, div.MsoIntenseQuote
{mso-style-link:"明显引用 Char";
margin-top:2.0pt;
margin-right:57.6pt;
margin-bottom:0cm;
margin-left:64.8pt;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:10.0pt;
border:none;
padding:0cm;
font-size:12.0pt;
font-family:"Calibri",sans-serif;
color:#4F81BD;
font-style:italic;}
span.MsoSubtleEmphasis
{color:#243F60;
font-style:italic;}
span.MsoIntenseEmphasis
{color:#243F60;
text-transform:uppercase;
letter-spacing:.5pt;
font-weight:bold;}
span.MsoSubtleReference
{color:#4F81BD;
font-weight:bold;}
span.MsoIntenseReference
{color:#4F81BD;
text-transform:uppercase;
font-weight:bold;
font-style:italic;}
span.MsoBookTitle
{letter-spacing:.45pt;
font-weight:bold;
font-style:italic;}
p.MsoTocHeading, li.MsoTocHeading, div.MsoTocHeading
{margin-top:2.0pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
text-align:center;
text-indent:10.0pt;
background:#4F81BD;
border:none;
padding:0cm;
font-size:24.0pt;
font-family:"Calibri",sans-serif;
color:white;
text-transform:uppercase;
letter-spacing:.75pt;
font-weight:bold;}
span.Char
{mso-style-name:"页眉 Char";
mso-style-link:页眉;}
span.Char0
{mso-style-name:"页脚 Char";
mso-style-link:页脚;}
span.1Char
{mso-style-name:"标题 1 Char";
mso-style-link:"标题 1";
font-family:"微软雅黑",sans-serif;
color:white;
text-transform:uppercase;
letter-spacing:.75pt;
background:#4F81BD;
font-weight:bold;}
span.Char1
{mso-style-name:"文档结构图 Char";
mso-style-link:文档结构图;
font-family:宋体;}
span.2Char
{mso-style-name:"标题 2 Char";
mso-style-link:"标题 2";
font-family:华文隶书;
text-transform:uppercase;
letter-spacing:.75pt;
background:#DBE5F1;}
span.3Char
{mso-style-name:"标题 3 Char";
mso-style-link:"标题 3";
color:#243F60;
letter-spacing:.75pt;
font-weight:bold;}
span.4Char
{mso-style-name:"标题 4 Char\,代码 Char";
mso-style-link:"标题 4\,代码";}
span.5Char
{mso-style-name:"标题 5 Char";
mso-style-link:"标题 5";
color:#244061;
letter-spacing:.5pt;
font-weight:bold;}
span.6Char
{mso-style-name:"标题 6 Char";
mso-style-link:"标题 6";
color:#365F91;
text-transform:uppercase;
letter-spacing:.5pt;}
span.7Char
{mso-style-name:"标题 7 Char";
mso-style-link:"标题 7";
color:#365F91;
text-transform:uppercase;
letter-spacing:.5pt;}
span.8Char
{mso-style-name:"标题 8 Char";
mso-style-link:"标题 8";
text-transform:uppercase;
letter-spacing:.5pt;}
span.9Char
{mso-style-name:"标题 9 Char";
mso-style-link:"标题 9";
text-transform:uppercase;
letter-spacing:.5pt;
font-style:italic;}
span.Char2
{mso-style-name:"标题 Char";
mso-style-link:标题;
color:#4F81BD;
text-transform:uppercase;
letter-spacing:.5pt;}
span.Char3
{mso-style-name:"副标题 Char";
mso-style-link:副标题;
color:#595959;
text-transform:uppercase;
letter-spacing:.5pt;}
span.Char4
{mso-style-name:"无间隔 Char";
mso-style-link:无间隔;}
span.Char5
{mso-style-name:"引用 Char";
mso-style-link:引用;
font-style:italic;}
span.Char6
{mso-style-name:"明显引用 Char";
mso-style-link:明显引用;
color:#4F81BD;
font-style:italic;}
span.Char7
{mso-style-name:"批注框文本 Char";
mso-style-link:批注框文本;}
span.HTMLChar
{mso-style-name:"HTML 预设格式 Char";
mso-style-link:"HTML 预设格式";
font-family:宋体;}
span.Char8
{mso-style-name:"编号 Char";
mso-style-link:编号;
font-family:"Times New Roman",serif;}
p.a, li.a, div.a
{mso-style-name:编号;
mso-style-link:"编号 Char";
margin:0cm;
margin-bottom:.0001pt;
text-indent:0cm;
line-height:150%;
font-size:10.5pt;
font-family:"Times New Roman",serif;}
span.sentence
{mso-style-name:sentence;}
p.a0, li.a0, div.a0
{mso-style-name:图;
mso-style-link:"图 Char";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
text-indent:24.0pt;
font-size:12.0pt;
font-family:"Calibri",sans-serif;}
span.Char9
{mso-style-name:"图 Char";
mso-style-link:图;}
span.apple-converted-space
{mso-style-name:apple-converted-space;}
span.cp
{mso-style-name:cp;}
span.nt
{mso-style-name:nt;}
span.nb
{mso-style-name:nb;}
span.p
{mso-style-name:p;}
span.nx
{mso-style-name:nx;}
span.s2
{mso-style-name:s2;}
span.kc
{mso-style-name:kc;}
span.mi
{mso-style-name:mi;}
span.kd
{mso-style-name:kd;}
span.o
{mso-style-name:o;}
span.na
{mso-style-name:na;}
span.s
{mso-style-name:s;}
span.s1
{mso-style-name:s1;}
p.code, li.code, div.code
{mso-style-name:code;
mso-style-link:"code Char";
margin-top:5.25pt;
margin-right:0cm;
margin-bottom:5.25pt;
margin-left:0cm;
text-indent:20.15pt;
line-height:10.0pt;
background:#F8F8F8;
border:none;
padding:0cm;
font-size:10.0pt;
font-family:Consolas;
color:#333333;
font-weight:bold;}
span.k
{mso-style-name:k;}
span.codeChar
{mso-style-name:"code Char";
mso-style-link:code;
font-family:Consolas;
color:#333333;
background:#F8F8F8;
font-weight:bold;}
span.c1
{mso-style-name:c1;}
span.pln
{mso-style-name:pln;}
p.a1, li.a1, div.a1
{mso-style-name:命令行;
mso-style-link:"命令行 Char";
margin-top:5.25pt;
margin-right:0cm;
margin-bottom:5.25pt;
margin-left:0cm;
text-indent:20.15pt;
line-height:10.0pt;
background:black;
border:none;
padding:0cm;
font-size:10.0pt;
font-family:Consolas;
color:white;
font-weight:bold;}
span.Chara
{mso-style-name:"命令行 Char";
mso-style-link:命令行;
font-family:Consolas;
color:white;
background:black;
font-weight:bold;}
p.2, li.2, div.2
{mso-style-name:命令2;
mso-style-link:"命令2 Char";
margin-top:0cm;
margin-right:0cm;
margin-bottom:15.0pt;
margin-left:0cm;
text-indent:22.1pt;
background:#3C3C3C;
border:none;
padding:0cm;
font-size:11.0pt;
font-family:宋体;
color:white;}
span.pre
{mso-style-name:pre;}
span.2Char0
{mso-style-name:"命令2 Char";
mso-style-link:命令2;
font-family:宋体;
color:white;
background:#3C3C3C;}
p.first, li.first, div.first
{mso-style-name:first;
margin-right:0cm;
margin-left:0cm;
font-size:12.0pt;
font-family:宋体;}
p.last, li.last, div.last
{mso-style-name:last;
margin-right:0cm;
margin-left:0cm;
font-size:12.0pt;
font-family:宋体;}
span.n
{mso-style-name:n;}
span.bp
{mso-style-name:bp;}
span.ow
{mso-style-name:ow;}
span.nf
{mso-style-name:nf;}
span.mf
{mso-style-name:mf;}
span.sd
{mso-style-name:sd;}
span.nc
{mso-style-name:nc;}
span.si
{mso-style-name:si;}
span.se
{mso-style-name:se;}
span.kn
{mso-style-name:kn;}
span.nn
{mso-style-name:nn;}
span.ne
{mso-style-name:ne;}
span.c
{mso-style-name:c;}
span.colorh1
{mso-style-name:color_h1;}
span.pun
{mso-style-name:pun;}
span.str
{mso-style-name:str;}
span.com
{mso-style-name:com;}
span.kwd
{mso-style-name:kwd;}
span.lit
{mso-style-name:lit;}
span.typ
{mso-style-name:typ;}
.MsoChpDefault
{font-size:11.0pt;
font-family:"Calibri",sans-serif;}
.MsoPapDefault
{margin-top:10.0pt;
margin-right:0cm;
margin-bottom:10.0pt;
margin-left:0cm;
line-height:115%;}
/* Page Definitions */
@page WordSection1
{size:595.3pt 841.9pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;
layout-grid:15.6pt;}
div.WordSection1
{page:WordSection1;}
/* List Definitions */
ol
{margin-bottom:0cm;}
ul
{margin-bottom:0cm;}
-->
Python黑帽编程2.4 流程控制
本节要介绍的是Python编程中和流程控制有关的关键字和相关内容。
2.4.1 if …..else
先上一段代码:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
x=int(input('请输入一个整数:'))
if x==0:
print '%d ==0' % x
elif x<0:
print '%d <0' % x
else:
print '%d >0' % x
这段代码使用if,elif和else三个关键字,每一个关键字后面跟一个布尔表达式,以冒号结尾。跟在条件判断语句下面的是子语句,就是我们在此条件下要做的事情。
我将上面的代码保存到ifelse.py运行结果如下:
图2
2.4.2 for 语句
Python 中的 for 语句和C中的略有不同。通常的循环可能会由用户来定义迭代步骤和中止条件,Python 的 for 语句依据任意序列(链表或字符串)中的子项,按它们在序列中的顺序来进行迭代。例如:
words = ['cat', 'window', 'defenestrate']
for word in words:
print(word,len(word))
运行结果如下:
图3
在迭代过程中修改迭代序列不安全(只有在使用链表这样的可变序列时才会有这样的情况)。如果你想要修改你迭代的序列,可以迭代它的副本。使用切割标识就可以很方便的做到这一点:
words = ['cat', 'window', 'defenestrate']
for word in words[:]:
if len(word)>6:
words.insert(0,word)
print words
上面的代码通过切片操作得到了words的一个拷贝,循环过程中可以修改words列表但是不会对循环造成影响。运行结果如下:
图4
2.4.3 while语句
while和if的区别在于,if如果表达式为true的话会一次执行内部的代码,而while会循环执行,直到表达式为false。例如:
count=0
while(count<9):
print 'the index is:',count
count +=1
运行结果如下:
图5
2.4.5 range和xrange
使用range函数可以很方便的生成一个等差系列。range函数完整的声明如下:
range(start,end,step =1)
下面我们通过一小段代码看看range的使用方法:
a=range(5)
b=range(2,5)
c=range(2,5,2)
print a
print b
for i in c:
print "value is",i
这段代码示例了三种使用方式:
1) 只有一个参数时,传入值为end,起始值为0,步长为1;
2) 传递两个参数时,传入值为start和end,步长为1;
3) 传递三个参数时,传入值为start,end和步长。
xrange和range使用方法一样,区别有以下两点:
1) xrange不生成完整的列表,效率更高;
2) xrange只有在for循环中使用才有意义。
2.4.6 break 、 continue和Pass
break 语句和 C中的类似,用于跳出最近的一级for或while循环。
循环可以有一个else子句,它在循环迭代完整个列表(对于 for )或执行条件为 false (对于 while )时执行,但循环被 break 中止的情况下不会执行。
例如下面的代码:
for n in range(2, 10):
for x in range(2, n):
if n % x == 0:
print(n, 'equals', x, '*', n//x)
break
else:
print(n, 'is a prime number')
上面的代码循环一个包含从2到9的一个系列,内部的循环实际是判断该数是不是素数。if语句如果为true的话证明找到了除2和本身以外的分解因子,证明这个数不是素数,接着会执行break,此时会跳出当前循环,因为有了break语句,和当前for循环对应的else语句也不会执行。在相反的情况下,如果是素数,当前循环会执行完毕,else子句会执行。结果如下:
图6
continue 语句是从 C 中借鉴来的,它表示循环继续执行下一次迭代,如下所示:
for num in range(2,10):
if(num %2 ==0):
continue
print num
这是一段输出奇数的代码,结果如下:
图7
pass 语句什么也不做,相当于汇编的nop指令。它用于那些语法上必须要有什么语句,但程序什么也不做的场合。通常我们使用pass语句来进行占位,比如规划程序功能和结构的时候,我们想好要定义哪些类,哪些方法,但是还没有具体实现的时候。比如:
def funcname(parameter_list):
pass
class classname(object):
pass
if a==0:
pass
else:
pass
2.4.7 小结
流程控制的内容,就到此为止,下一节介绍函数。
第2.5节《函数》已经在微信订阅号抢先发布,心急的同学进入订阅号(二维码在下方),从菜单“网络安全”—>”Python黑帽编程”进入即可。
本节视频教程获取方法,请扫描二维码,在菜单“网络安全”——>”Python黑帽编程”中找到对应的本文2.2.7节,有详细方法。
由于教程仍在创作过程中,在整套教程完结前,感兴趣的同学请关注我的微信订阅号(xuanhun521,下方二维码),我会第一时间在订阅号推送图文教程和视频教程。问题讨论请加qq群:Hacking (1群):303242737 Hacking (2群):147098303。
关注之后,回复请回复“Python”,获取更多内容。