Python自动化开发 - 流程控制
| 一、拾遗主题 |
1、变量
理解变量在计算机内存中的表示
|
>>> a = "ABC" |
Python解释器干了两件事情:
在内存中创建了一个'ABC'的字符串;
在内存中创建了一个名为a的变量,并把它指向'ABC'
可以把一个变量name1赋值给另一个变量name2,这个操作实际上是把变量name2指向变量name1所指向的数据,例如下面的代码:
|
>>> name1 = "Jonathan" >>> name2 = name1 >>> name1 = "Alex" >>> print(name2) Jonathan |
代码在内存中存储示意图如下

2、格式化输出
| 符号 | 描述 |
| %s | 格式化字符串 |
| %d | 格式化整数 |
| %f | 格式化浮点数字,可指定小数点后的精度 |
| %r | raw string,输出原生字符串 |
实例如下
|
>>> msg = "My name is %s, %d years old, and today I ran %f kms to change %r" % ("Jonathan", 28, 8.88, "\nsomething") >>> print(msg) My name is Jonathan, and today I ran 8.880000 kms to change '\nsomething' >>> msg My name is Jonathan, and today I ran 8.880000 kms to change '\\nsomething' |
3、位运算

4、密文显示
输入密码时,如果想要不可见,需要利用getpass模块中getpass方法
|
#! /usr/bin/ env python3 # -*- coding:utf-8 -*- import getpass # 将输入的内容赋值给变量 pwd pwd = getpass.getpass("请输入密码") # 打印输入内容 print(pwd) |
| 二、流程控制 |
1、条件判断
计算机之所以做很多自动化任务,因为可以做条件判断。可以通过下图来简单了解条件语句的执行过程:

比如根据不同的用户年龄,输出不同的信息
|
age = if age >= : print("adult") elif age>=: print("teenager") else: print("kid") |
1) 每个条件后面要使用冒号(:),表示接下来是满足条件后要执行的语句块
2) 使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块
3) 注意if、elif、else逻辑空间划分
4) 注意整个if...else模块与其他代码联系,善用flag标志
5) if...else根据实际应用场景,可以嵌套
6) if语句执行特点,从上往下判断,某个判断上时True,把该判断对应的语句执行后,就忽略掉剩下的elif和else
7) 操作运算符包括>, >=, <, <=, ==, !=,逻辑运算符包括and, or, not
8) 只要判断语句是非零数值、非空字符串、非空list等,就判断为True,否则为False
9) 在Python中没有switch - case语句
2、循环
为了让计算机能计算成千上万次的重复运算,我们就需要循环语句。

1) 同样需要注意冒号和缩进
2) 在Python中没有do..while循环
3) Ctrl+C 可退出无限循环
Python的循环有两种,一种是for...in循环,依次把range()、string、list或tuple中的每个元素迭代出来
|
names = ["Jonathan", "Alex", "Rain"] for name in names: print(name) |
执行代码,会依次打印names中的每一个元素
|
Jonathan Alex Rain |
所以,for name in ...循环就是把每个元素代入变量 name,然后执行缩进块的语句
第二种循环是while循环,只要条件满足,就不断循环,条件不满足时退出循环
如计算100以内所有正整数之和
|
sum = n = while n > : sum += n n -= print("100以内所有正整数之和: ", sum) |
小结:
1) for循环有固定循环次数;while循环体中需变量增减控制
2) break跳出当前while或for循环;continue跳出本次循环,执行下次循环
3) pass是空语句,是为了保持程序结构的完整性,不做任何事情,一般用做占位语句
4) Python提供一个range()函数,可以生成一个整数序列,可通过list()函数可以转换为列表
5) 不滥用break和continue语句,break和continue会造成代码执行逻辑分叉过多,容易出错
Python自动化开发 - 流程控制的更多相关文章
- python自动化开发学习 进程, 线程, 协程
python自动化开发学习 进程, 线程, 协程 前言 在过去单核CPU也可以执行多任务,操作系统轮流让各个任务交替执行,任务1执行0.01秒,切换任务2,任务2执行0.01秒,在切换到任务3,这 ...
- python自动化开发学习 I/O多路复用
python自动化开发学习 I/O多路复用 一. 简介 socketserver在内部是由I/O多路复用,多线程和多进程,实现了并发通信.IO多路复用的系统消耗很小. IO多路复用底层就是监听so ...
- Python基础之:Python中的流程控制
目录 简介 while语句 if 语句 for语句 Break Continue pass 简介 流程控制无非就是if else之类的控制语句,今天我们来看一下Python中的流程控制会有什么不太一样 ...
- python中的流程控制
目录 引言 流程控制的分类 分支结构 单if结构 if与else结构 if与elif与else结构 if分支的嵌套 循环结构 while循环 while + break循环 while + conti ...
- python自动化开发-1
1.python简介 python是一门简明并且强大的面向对象的开发语言,已经在WEB开发,软件开发,科学计算,大数据分析,自动化运维等领域得到了广泛的应用. 注意:所有测试均已python3为主,与 ...
- python全栈 流程控制;while 循环 格式化输出 运算符 及编码
python全栈开发 1循环 2break和continue的区别 3格式化输出 4运算符 5编码 一.流程控制while循环 while条件: 代码块(循环体) 1.死循环; while True; ...
- Python学习(七) 流程控制if语句
在Python中流程控制if语句采用如下格式: if expression : statement elif expression : statement elif expression : stat ...
- python自动化开发-[第十四天]-javascript(续)
今日概要: 1.数据类型 2.函数function 3.BOM 4.DOM 1.运算符 算术运算符: + - * / % ++ -- 比较运算符: > >= < <= != = ...
- python基础之流程控制、数字和字符串处理
流程控制 条件判断 if单分支:当一个“条件”成立时执行相应的操作. 语法结构: if 条件: command 流程图: 示例:如果3大于2,那么输出字符串"very good" ...
随机推荐
- nodejs 如何操作字节在内存中的位置问题 BE LE
上代码 function testNumber() { var arr = new Int32Array(1); arr[0] = 1234; var buf1 = Buffer.from(arr); ...
- php7.0-fpm.sock
.sock 这种方式是套接字的方式连接的
- PHP 过滤特殊符号
function strFilter($str){ $str = str_replace('`', '', $str); $str = str_replace('·', '', $str); $str ...
- swift MD5 加密方法
引入OC类库 md5.h: #import <UIKit/UIKit.h> @interface Md5Controller : UIViewController @end md5.m: ...
- 非接触IC卡中typeA卡和typeB卡的区别--总结,二者的调制方式和编码方式不同
非接触IC卡中typeA卡和typeB卡的区别--总结,二者的调制方式和编码方式不同 1.非接触式IC卡的国际规范ISO/IEC14443的由来? 在非接触式IC卡的发展过程中,这些问题逐渐被解决并形 ...
- HBuilder中ios打包
参考:http://ask.dcloud.net.cn/article/152 在ios端钥匙串双击(教程上是双击)导入证书时候,可能会报错,直接把证书文件拖入到keychain的登录里就解决了. 1 ...
- 2019.01.19 bzoj3653: 谈笑风生(长链剖分优化dp)
传送门 长链剖分优化dpdpdp水题. 题意简述:给一棵树,mmm次询问,每次给一个点aaa和一个值kkk,询问满足如下条件的三元组(a,b,c)(a,b,c)(a,b,c)的个数. a,b是c的祖先 ...
- 2018.12.15 spoj Substrings(后缀自动机)
传送门 后缀自动机基础题. 求长度为iii的子串出现次数的最大值. 对原串建出samsamsam,然后用sizsizsiz更新每个maxlenmaxlenmaxlen的答案. 然后由于后缀链接将其转化 ...
- ThinkPHP3.2 伪静态配置
前台伪静态且隐藏入口文件 就把“.htaccess文件” 放到指定文件夹下面 如图home做伪静态并隐藏入口文件: Apache为例,需要在入口文件的同级添加.htaccess文件 如果用的phpst ...
- 证明解析函数u=c1 与 v=c2 正交
方程u(x,y)=c1对应平面上的曲线, 求导dy/dx= -ux/uy 类似有v曲线的dy/dx=-vx/vy 两者相乘,使用柯西-黎曼方程结果是-1 表示在相交点两者的切线互相垂直. 另 ...