Python黑帽编程2.4 流程控制

简介:

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

这段代码使用ifelifelse三个关键字,每一个关键字后面跟一个布尔表达式,以冒号结尾。跟在条件判断语句下面的是子语句,就是我们在此条件下要做的事情。

我将上面的代码保存到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语句

whileif的区别在于,if如果表达式为true的话会一次执行内部的代码,而while会循环执行,直到表达式为false。例如:

count=0

while(count<9):

    print 'the index is:',count

    count +=1

运行结果如下:

5

2.4.5 RANGEXRANGE

使用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)        传递两个参数时,传入值为startend,步长为1

3)        传递三个参数时,传入值为startend和步长。

xrangerange使用方法一样,区别有以下两点:

1)        xrange不生成完整的列表,效率更高;

2)        xrange只有在for循环中使用才有意义。

2.4.6 BREAK  CONTINUEPASS

break 语句和 C中的类似,用于跳出最近的一级forwhile循环。

循环可以有一个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')

上面的代码循环一个包含从29的一个系列,内部的循环实际是判断该数是不是素数。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”,获取更多内容。

 


本文转自玄魂博客园博客,原文链接:http://www.cnblogs.com/xuanhun/p/5737314.html,如需转载请自行联系原作者

目录
相关文章
|
27天前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
|
15天前
|
Unix Linux 程序员
[oeasy]python053_学编程为什么从hello_world_开始
视频介绍了“Hello World”程序的由来及其在编程中的重要性。从贝尔实验室诞生的Unix系统和C语言说起,讲述了“Hello World”作为经典示例的起源和流传过程。文章还探讨了C语言对其他编程语言的影响,以及它在系统编程中的地位。最后总结了“Hello World”、print、小括号和双引号等编程概念的来源。
102 80
|
4天前
|
Python
[oeasy]python055_python编程_容易出现的问题_函数名的重新赋值_print_int
本文介绍了Python编程中容易出现的问题,特别是函数名、类名和模块名的重新赋值。通过具体示例展示了将内建函数(如`print`、`int`、`max`)或模块名(如`os`)重新赋值为其他类型后,会导致原有功能失效。例如,将`print`赋值为整数后,无法再用其输出内容;将`int`赋值为整数后,无法再进行类型转换。重新赋值后,这些名称失去了原有的功能,可能导致程序错误。总结指出,已有的函数名、类名和模块名不适合覆盖赋新值,否则会失去原有功能。如果需要使用类似的变量名,建议采用其他命名方式以避免冲突。
26 14
|
14天前
|
分布式计算 大数据 数据处理
技术评测:MaxCompute MaxFrame——阿里云自研分布式计算框架的Python编程接口
随着大数据和人工智能技术的发展,数据处理的需求日益增长。阿里云推出的MaxCompute MaxFrame(简称“MaxFrame”)是一个专为Python开发者设计的分布式计算框架,它不仅支持Python编程接口,还能直接利用MaxCompute的云原生大数据计算资源和服务。本文将通过一系列最佳实践测评,探讨MaxFrame在分布式Pandas处理以及大语言模型数据处理场景中的表现,并分析其在实际工作中的应用潜力。
49 2
|
27天前
|
人工智能 数据挖掘 开发者
探索Python编程之美:从基础到进阶
本文是一篇深入浅出的Python编程指南,旨在帮助初学者理解Python编程的核心概念,并引导他们逐步掌握更高级的技术。文章不仅涵盖了Python的基础语法,还深入探讨了面向对象编程、函数式编程等高级主题。通过丰富的代码示例和实践项目,读者将能够巩固所学知识,提升编程技能。无论你是编程新手还是有一定经验的开发者,这篇文章都将为你提供有价值的参考和启示。让我们一起踏上Python编程的美妙旅程吧!
|
3月前
|
安全 测试技术 数据库
Python编程--sys模块及OS模块简单用例
Python编程--sys模块及OS模块简单用例
41 1
|
3月前
|
JSON 数据格式 Python
Python编程:利用JSON模块编程验证用户
Python编程:利用JSON模块编程验证用户
31 1
|
3月前
|
数据处理 Python
Python编程-利用datetime模块生成当前年份之前指定的间隔所有年份的日期列表和csv文件
Python编程-利用datetime模块生成当前年份之前指定的间隔所有年份的日期列表和csv文件
26 1
|
8月前
|
人工智能 安全 Java
Python 多线程编程实战:threading 模块的最佳实践
Python 多线程编程实战:threading 模块的最佳实践
272 5
|
8月前
|
安全 调度 Python
什么是Python中的事件驱动编程?如何使用`asyncio`模块实现异步事件处理?
【2月更文挑战第4天】【2月更文挑战第9篇】什么是Python中的事件驱动编程?如何使用`asyncio`模块实现异步事件处理?
169 0