控制流

简介:

    编程的真正力量不仅仅在于运行一条条的指令,就像任务清单那样。根据表达式求值的结果,程序可以决定下一步的操作。“控制流语句”决定了在什么条件下执行哪些python语句。


布尔值

    虽然整型、浮点型和字符串数据类型有无数种可能的值,但“布尔”数据类型只有两种值:True和False。在作为python代码输入时,布尔值True和False不像字符串,两边没有引号,它们总是以大写字母开头。布尔值也可以用在表达式中,并且可以保存在变量中。如果大小写不正确,或者试图用True和False作为变量名,python会给出错误信息。

1
2
3
4
5
6
7
8
9
>>> abc = True
>>> abc
True
>>> false
Traceback (most recent call last):
   File  "<stdin>" , line  1 in  <module>
NameError: name  'false'  is  not  defined
>>>  False
False


比较操作符

比较两个值,求值为一个布尔值。

整型或浮点型的值永远不会与字符串相等。

==与=的区别:==用于判断是否一致,而=用于赋值。

▎常用比较操作符:

    ==        等于

    !=         不等于

    <          小于

    >          大于

    <=        小于等于

    >=        大于等于

测试示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
>>>  40 = = 40
True
>>>  40 ! = 42
True
>>>  40 < = 42
True
>>>  40 > = 42
False
>>>  40 > = 40
True
>>>  40 = = '40'
False
>>>  'tom' = = 'Tom'
False
>>>  'tom' ! = 'Tom'
True


布尔操作符

and和or操作符总是接受两个布尔值(或表达式),所以它们被认为是“二元”操作符。

如果两个布尔值都为True,and操作符就将表达式求值为True,否则求值为false。

只要有一个布尔值为真,or操作符就将表达式求值为True。如果都是False,所求值为False。

和and和or不同,not操作符只作用于一个布尔值(或表达式)。not操作符求值为相反的布尔值。

1
2
3
4
5
6
7
8
9
10
>>> ( 4 < 5 and  ( 5 < 6 )
True
>>> ( 4 > 5 or  ( 5 > 6 )
False
>>> ( 4 < 5 and  ( 5 > 6 )
False
>>> ( 4 < 5 and  not  ( 5 > 6 )
True
>>> ( 4 < 5 and  not  not  ( 5 > 6 )
False


控制流语句

控制流语句的开始部分通常是“条件”,接下来是一个代码块,称为“子句”。

1)if...elif...else   判断

只有if语句为False时,后面的子句才会执行。

一个控制流中可以有有多个elif子句。

1
2
3
4
5
6
7
8
9
10
11
12
[root@server01  test ] # cat if.py
a=6
if  a<5 :
     print( 'a<5' )
elif  a==5 :
     print( 'a=5' )
elif  a==6 :
     print( 'a=6' )
else  :
     print( 'a>6' )
[root@server01  test ] # python3 if.py
a=6


2)while和for       循环

while和for都可以循环,但for循环相对更简洁。

while示例:

1
2
3
4
5
6
7
8
9
10
11
[root@server01  test ] # cat while.py
a=0
while  a<5:
     print( 'Hello world.' )
     a=a+1
[root@server01  test ] # python3 while.py
Hello world.
Hello world.
Hello world.
Hello world.
Hello world.

for示例:

1
2
3
4
5
6
7
8
9
[root@server01  test ] # cat for.py
for  in  range(0,6):
     print( 'Hello world.' )
[root@server01  test ] # python3 for.py
Hello world.
Hello world.
Hello world.
Hello world.
Hello world.


3)break和continue    中断

当循环时,如果执行遇到break语句,就会马上退出循环。

1
2
3
4
5
6
7
8
9
10
11
[root@server01  test ] # cat break.py
a=0
while  a<5:
     print( 'Hello world.' )
     a=a+1
     if  a==3:
         break
[root@server01  test ] # python3 break.py
Hello world.
Hello world.
Hello world.

当循环时,如果执行遇到continue语句,就会跳回循环开始处,继续循环。

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@server01  test ] # cat continue.py
a=0
while  a<5:
     if  a==3:
         a=a+1
         continue
     print( 'Hello world.' )
     a=a+1
[root@server01  test ] # python3 continue.py
Hello world.
Hello world.
Hello world.
Hello world.


4)range()

range()函数可以被传递多个参数。上限为3个参数。第一个为变量开始的值,第二个参数是上限(不包含),第三个参数是“步长”。

1
2
3
4
5
6
7
8
>>>  for  in  range ( 0 , 15 , 3 ):
...      print (i)
...
0
3
6
9
12


终止程序

使用import语句导入模块,可以使用内建函数。可以直接用import语句,也可以用from import语句。

使用from import语句,调用模块中的函数时不需要模块的前缀。

推荐使用import语句,因为完整的名称让代码更可读。

通过调用sys.exit()函数,可以让程序终止或退出。因为这个函数在sys模块中,所以必须先导入sys,才能使用它。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[root@server01  test ] # cat sys.py
import  sys
a=1
while  True:
     print( 'Type exit to exit.' )
     text=input()
     if  text== 'exit' :
         sys. exit ()
     print(str(a)+ '> ' +text)
     a=a+1
[root@server01  test ] # python3 sys.py
Type  exit  to  exit .
hello
1> hello
Type  exit  to  exit .
world
2> world
Type  exit  to  exit .
exit










本文转自Grodd51CTO博客,原文链接:http://blog.51cto.com/juispan/1943869,如需转载请自行联系原作者

相关文章
|
安全 Cloud Native Java
【云原生】五年博主教你用阿里云Serverless免费额度搞事情。
传统模式如果个人up主想要搞事情, 就要有一台服务器, 为了省钱可能你还会自己搭建一个数据库。其次你的流量还是需要付费的,如果个人用用还好,但是如果要被人攻击了。那流量蹭蹭的涨, 个人是完全受不了的。这点我是比较有发言权的。因为小编我目前就有一台阿里云实例。目前部署了mysql使用宝塔来维护。每次发布自己上传jar包。下面这个截图就是我的服务, 至于地址嘛,我就不给你们看了。(我怕你们偷我的流量),毕竟前有b站主播鱼皮,网站被攻击的先例,所以咱就低调点,自己用。
1978 0
【云原生】五年博主教你用阿里云Serverless免费额度搞事情。
|
机器学习/深度学习 并行计算 算法
XGBoost的原理
XGBoost的原理
447 3
|
数据可视化 数据安全/隐私保护 开发者
堪称最优秀的Docker可视化管理工具——Portainer深度解析与应用实践
【8月更文挑战第7天】在容器化技术日益盛行的今天,Docker以其轻量级、可移植性和灵活性的优势,成为了开发者和管理员的首选。然而,随着Docker容器的增多,如何高效地管理和监控这些容器成为了一个挑战。Portainer,作为一款开源的Docker可视化管理工具,凭借其直观的操作界面和强大的功能,赢得了广泛的赞誉。今天,我们就来深入探讨Portainer的使用技巧,看看你是否真的会用它。
696 0
|
Python
Python实现万花筒效果:创造炫目的动态图案
Python实现万花筒效果:创造炫目的动态图案
379 2
|
SQL 缓存 关系型数据库
ClickHouse(19)ClickHouse集成Hive表引擎详细解析
Hive引擎允许对HDFS Hive表执行 `SELECT` 查询。目前它支持如下输入格式: -文本:只支持简单的标量列类型,除了 `Binary` - ORC:支持简单的标量列类型,除了`char`; 只支持 `array` 这样的复杂类型 - Parquet:支持所有简单标量列类型;只支持 `array` 这样的复杂类型
609 1
|
存储 Shell 开发者
Shell 变量详解:如何定义、使用和管理
**Shell脚本中,变量是核心元素,用于暂存数据。变量默认为字符串,赋值时等号两侧无空格。命名遵循:数字、字母、下划线,以非数字开头。常用特殊变量如 `$0` (脚本名),`$#` (参数个数)。定义变量可使用单引号(不解析变量)、双引号(解析变量)或不加引号(注意空格)。使用花括号明确变量边界,`readonly` 则可设定只读变量,`unset` 删除变量。实践这些概念以加深理解。**
526 0
|
SQL 安全 网络安全
数据安全之认识数据库防火墙
随着信息技术的快速发展,数据库已成为企业信息化建设的核心组成部分,存储着大量的关键业务数据和敏感信息。与此同时,数据库也面临着来自内部和外部的各种安全威胁和攻击,如SQL注入、未授权访问、数据泄露等。为了保护数据库的安全性和完整性,传统的安全措施如防火墙、入侵检测系统等在一定程度上起到了作用。然而,这些措施往往只关注于网络层面的安全防护,而缺乏对数据库应用层面的深入保护。因此,针对数据库的安全防护需求,数据库防火墙应运而生。
678 0
|
编译器 C语言 C++
C语言printf的输出格式大全及颜色字体打印
C语言printf的输出格式大全及颜色字体打印
1138 0