当前位置: 首页 > 编程日记 > 正文

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”,获取更多内容。

 

转载于:https://www.cnblogs.com/xuanhun/p/5737314.html

相关文章:

【Flask】视图高级

# 视图高级笔记&#xff1a;### add_url_rule(rule,endpointNone,view_funcNone)这个方法用来添加url与视图函数的映射。如果没有填写endpoint&#xff0c;那么默认会使用view_func的名字作为endpoint。以后在使用url_for的时候&#xff0c;就要看在映射的时候有没有传递endpoi…

振动力学基础与matlab应用_【日文好书推荐】振动与噪声控制技术for机械设计者...

声海译读活动日文小组为大家推荐好书&#xff0c;《振动与噪声控制技术for机械设计者》作者&#xff1a;小林英男&#xff0c;欢迎大家围观讨论提出宝贵意见&#xff01;目录译文(一)译者&#xff1a;穆瑞林-天津科技大学前言第一章 机械设计开发•设计者对振动•噪声技术入门所…

区块链是互联网未来十年中举足轻重的技术

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 区块链是互联网未来十年中举足轻重的技术 区块链&#xff08;Blockchain&#xff09;&#xff0c;或者说分布式账本&#xff08;DLT, Distributed …

利用jdt快速实现pmd的功能

jdt可以做语法树分析&#xff0c;并且支持visitor模式对代码进行分析。跟pmd的分析方式一样&#xff0c;我们只要实现 visitor接口即可实现一个插件。 Service("requestMappingInfoService")public class RequestMappingInfoServiceImpl implements RequestMappingIn…

用R语言做词频统计_R语言 | 词频统计

Python网络爬虫与文本数据分析本章内容导入停用词读数据&#xff0c;分词剔除停用词导入停用词表library(dplyr)## [1] "?" "、" "。" "“" "”" "《" "》" "!" "…

PHP拿到别人项目如何修改为自己

以下为借助google翻译的&#xff0c;个人润色了一下&#xff0c;官方版里面感觉有很多问题&#xff0c;我这里有我个人修改大部分问题的版本&#xff0c;包括翻译完善&#xff0c;有需要的可以联系我&#xff1a;qyj8411163.com 1. 在您网站的根目录创建名为“webim”的文件夹。…

浅析Hyperledger Fabric共识算法

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 区块链系统是一个分布式架构&#xff0c;交易账本信息由各个节点管理&#xff0c;组成一个庞大的分布式账本。在分布式系统中&#xff0c;各个节点收…

python 获取用户ip_Python爬虫教程:你还在苦苦拉票吗?刷票小程序案例原理剖析!...

你还在苦苦拉票吗&#xff1f;前言剖析投票原理处理思路具体实战主要流程具体细节python代码实例python具体细节java代码实现java总结点击此处&#xff0c;获取海量Python学习资料&#xff01;前言现在生活中离不开各类的比赛&#xff0c;然而&#xff0c;各个比赛离不开投票&a…

下拉菜单被挡住了,DIV置于最底层的方法

网站常会用到一些 下拉菜单&#xff0c;&#xff0c;幻灯片&#xff0c;&#xff0c;&#xff0c;飘浮广告等。但经常会发现。幻灯片会挡住下拉菜单或者飘浮广告等。解决办法有下第一&#xff0c;可将幻灯片所在DIV 置于最底层。添加CSS如下style"z-index:-100;position: …

github的删除

github项目删除 首先找到你要删除的项目&#xff0c;点击开 复制项目名称然后找到Settings 将滚动条滑至底部&#xff0c;找到 Danger Zone 下的 Delete this repository 这里会弹出一个警告对话框 将该项目名称重新输一遍即可 这里会弹出账号重新确认&#xff0c;将密码在输入…

区块链的去中心化VS传统互联网的去中心化:技术与治理的双重困境

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 区块链的去中心化VS传统互联网的去中心化&#xff1a;技术与治理的双重困境11 主要观点&#xff1a; 1、传统互联网经典的去中心化项目BitTorrent…

第三章| 3.1文件处理

1、三元运算 简单条件语句&#xff1a; if 条件成立:val 1 else: val 2 改成三元运算&#xff1a; val 1 if 条件成立 else 2 2、文件处理 &#xff08;用python对硬盘上的文件操作&#xff09; 读 读取文件的三个方法&#xff1a;read()、readline()、readlines() 三个方法…

LR常见的报错处理方法

1.LR录制时不弹出IE浏览器 当一台主机上装有多个浏览器&#xff0c;LR录制脚本时&#xff0c;经常遇到打不开浏览器的情况&#xff0c;可以用下面的方法来解决 启动浏览器&#xff0c;打开Internet 选项对话框&#xff0c;切换到高级标签&#xff0c;去掉“启用第三方浏览器扩展…

均匀分布取某一点概率_概率和概率分布

概率与概率分布是统计学中的基础概念&#xff0c;在我们的高中的课本中就接触过了&#xff0c;如果有遗忘&#xff0c;一起来回顾一下吧&#xff01;知识点&#xff1a;概率概率分布一、概率说到概率&#xff0c;需要先了解一个概念&#xff0c;叫做随机试验。随机试验是指在相…

EOS共识机制——DPoS代理权益证明

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 区块链共识机制与它的演进&#xff0c;是由于区块链式去中心化而且分布式的系统&#xff0c;必须要有一套放诸四海皆准类似宪法的规则&#xff0c;来…

active mq topic消费后删除_Spring cloud stream 整合mq

说明&#xff1a;本案例win10环境测试scs(spring cloud stream)整合kfk(kafka)/rbt(rabbitmq)消息生产消费场景流程一、准备中间件环境(kfk/rbt)后续内容提供kfk与rbt的环境准备流程二、导入scs的依赖项目spring boot 版本&#xff1a;2.1.3.RELEASE引入spring cloud 版本&…

翻译的艺术 —— 无能为力的翻译,搞笑的音译

0. 无能为力的翻译 至尊宝&#xff1a;best sonny&#xff0c;乌龙&#xff1a;own goal&#xff0c;的粤语发音&#xff1b;1. 取其发音 word ⇒ 我的&#xff0c;word 妈呀&#xff0c; Need just word,word has word&#xff0c;你的就是我的&#xff0c;我的还是我的&#…

经常可能会用到的【函数节流和函数防抖】记录下,做下区分

今天突然被人问到&#xff0c;函数节流和函数防抖的区别是什么&#xff0c;结果我脑子一热直接举了个滚动条的粟子说是优化高频率执行的手段&#xff0c;就记得自己是用setTimeout来实现的。完了区别是什么&#xff1f;&#xff1f;哪个是哪个都蒙B了回家想想&#xff0c;有些东…

智能合约和区块链技术:入门指南

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 智能合约和区块链技术&#xff1a;入门指南 多年前&#xff0c;在没有数字合约和区块链技术存在的情况下&#xff0c;双方的合约往往以传统的方式进…

2. 尾部的零

题目 设计一个算法&#xff0c;计算出n阶乘中尾部零的个数 样例 11! 39916800&#xff0c;因此应该返回 2 题解 一开始就用最简单对1-n找出5的个数&#xff0c;然后超时了。虽然都直到是要找5&#xff0c;因为2肯定比5多&#xff0c;所以5的个数就是0的个数&#xff0c;只是计…

case when then else end

1、根据数据库表中特定的值进行排序显示 select * from tablename where order by case when columname then 1 wnen columname when 2 else 3 end 2、根据数据库中存的值根据情况对其进行赋值CASE sexWHEN 1 THEN 男WHEN 2 THEN 女 ELSE 其他 END --Ca…

python replace函数_Python3 replace()函数使用方法

描述 replace() 方法把字符串中的 old&#xff08;旧字符串&#xff09; 替换成 new(新字符串)&#xff0c;如果指定第三个参数max&#xff0c;则替换不超过 max 次。 语法replace()方法语法&#xff1a; str.replace(old, new[, max]) 参数 old -- 将被替换的子字符串。 new -…

EOS技术知识介绍

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 EOS 简介 EOS&#xff1a;EOS可以理解为Enterprise Operation System&#xff0c;即为商用分布式应用设计的一款区块链操作系统。EOS是EOS软件引入…

团体程序设计天梯赛-练习集-L1-044. 稳赢

L1-044. 稳赢 大家应该都会玩“锤子剪刀布”的游戏&#xff1a;两人同时给出手势&#xff0c;胜负规则如图所示&#xff1a; 现要求你编写一个稳赢不输的程序&#xff0c;根据对方的出招&#xff0c;给出对应的赢招。但是&#xff01;为了不让对方输得太惨&#xff0c;你需要每…

currenttimemillis 毫秒还是秒_Elasticsearch(ES)如何做到亿级数据查询毫秒级返回

前言&#xff1a;这个问题其实是更面向原理及实操方面的内容。换个问法&#xff0c;可以是这样来问&#xff1a;ES 在数据量很大的情况下(数十亿级别)如何提高查询效率&#xff1f;为了精简&#xff0c;如下内容将Elasticsearch简称为ES如果你仅仅是用过ES&#xff0c;对于这个…

分布式系统的时间顺序

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 分布式系统的时间顺序 区块链被认为是分布式的系统&#xff0c;分布式系统中由于多节点&#xff0c;通讯、物理位置等的问题&#xff0c;各节点间时…

JVM 老年代对象来源

一般情况是四种&#xff0c;但是尤其以第一种来源最多1.新生代对象每经历依次minor gc&#xff0c;年龄会加一&#xff0c;当达到年龄阀值会直接进入老年代。阀值大小一般为152.Survivor空间中年龄所有对象大小的总和大于survivor空间的一半&#xff0c;年龄大于或等于该年龄的…

[心跳] 使用心跳机制实现CS架构下多客户端的在线状态实时更新以及掉线自动重连...

此文讲述的内容是一个实际项目开发中的一部分内容&#xff0c;笔者将亲身经历写成文章。 【背景】 现 需要实现这样的功能&#xff1a;有多个客户端连着同一个服务器。服务器和客户端之间需要“互相”知道彼此的连接状态。比如在某一时刻&#xff0c;服务器需要知道当前有多少个…

python绝对值编程_Python-abs vs fabs

编辑&#xff1a;正如aix所建议的&#xff0c;比较速度差异的更好&#xff08;更公平&#xff09;方法是&#xff1a;In [1]: %timeit abs(5) 10000000 loops, best of 3: 86.5 ns per loop In [2]: from math import fabs In [3]: %timeit fabs(5) 10000000 loops, best of 3:…

如何搭建以太坊私有链

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 如何搭建以太坊私有链1 今天讲一下如何搭建以太坊私有连&#xff0c;当然了在你阅读这篇文章的时候&#xff0c;最好是有一定基础&#xff0c;比如…