第4章 判断与循环
判断和循环是我们控制程序运行的常用手段。在大多数编程语言中,判断通常用if语句
,循环通常用while或for语句
。在Python中,通过if语句
来判断一系列条件的状态,并据此决定采取什么行动。而循环语句
则是计算机自动完成重复工作的常见方式之一。在本章中,你将学习到if、while、for语句
的简单使用和一些相关代码的示例。
4.1 判断语句
先来一个简单的示例:假设你有一个英文图书列表,你想将其中每本书的名称打印出来。对于大多数图书,都应以首字母大写的方式打印其名称。但是你只想把图书名为rpa in python
以全大写的方式打印。
下面的代码将遍历这个列表,并以首字母大写的方式打印其中的图书名称,但对于图书名为rpa in python
,以全大写的方式打印。
如果您的电脑安装了ipython,直接在terminal输入
ipython
即可进入如下命令行界面
In [1]: books = ["thinking in java", "rpa in python", "mathematies for computer", "robotFrameWork in python"]
In [2]: for book in books:
...: if book == "rpa in python":
...: print(book.upper())
...: else:
...: print(book.title())
输入完以上代码后,直接回车([enter]/[return])即可执行代码。
执行代码后,输出内容如下:
可以看到图书名为rpa in python
,以全大写的方式被打印出来了;
其他的图书则以首字母大写的方式被打印
Thinking In Java
RPA IN PYTHON
Mathematies For Computer
Robotframework In Python
说明:在上面的示例代码中,
for循环
(注:for语句
将在后面的4.2 循环语句章节详细介绍)首先检查当前的图书名是否是rpa in python
。如果是,就以全大写的方式打印它;否则就以首字母大写的方式打印。
4.1.1 if语句
每条if语句的核心其实就是判断真假(True/False
)的表达式。Python语言中,根据if语句
的真假来决定是否执行if语句中的代码。如果if语句
的值为真(True
),那么就执行if语句
中的代码,如果为假(False
),则忽略这些代码。
什么是可以判断真假(True/False)的表达式?
- 比如:判断两个值是否相等
In [3]: book1 = "RPA IN PYTHON"
In [4]: book2 = "RPA IN PYTHON"
In [5]: book1 == book2
Out[5]: True
说明:
=
一个等于号,表示给变量赋值。比如上面的book1 = "RPA IN PYTHON"
即给变量book1
赋值为RPA IN PYTHON
。同理book2 = "RPA IN PYTHON"
即变量book2
赋值为RPA IN PYTHON
。
==
两个等于号,表示判断左右两边的值是否相等。比如上面的book1 == book2
就是一个判断两个字符串是否相等的表达式 即 变量book1
和变量book2
的值相等吗?如果相等该表达式即为True
,反之False
。
如果将变量book2
赋值为 RPA IN JAVA
,那么上述表达式将返回false
:
In [3]: book1 = "RPA IN PYTHON"
In [6]: book2 = "RPA IN JAVA"
In [7]: book1 == book2
Out[7]: False
- 比如:判断两个值是否相等时区分大小写
In [3]: book1 = "RPA IN PYTHON"
In [9]: book2 = "rpa in python"
In [10]: book1 == book2
Out[10]: False
说明:在大多数语言中,默认都是区分大小写的,如上面的示例:
book1 == book2
表达式为False
。但是我们在实际的生活中,会遇到很多不想区分大小写的情况,比如:用户想在RPA之家注册一个账号,用户名输入ABC
和abc
的效果应该是一样的,因为为了确保用户名的唯一性,需要把用户输入的所有英文字母都转成小写然后去后台校验是否已有一样的用户名存在。比如下面的示例,userName1.lower() == userName2
表达式为True
。其中:lower()
方法不会改变userName1
变量本身的值,只会将变量的值转变为全小写的结果,然后将该结果和userName2
变量的值去比较是否相等,如果相等说明用户名tomas已存在,将驳回用户的注册提交申请。
In [1]: userName1 = "Tomas"
In [2]: userName2 = "tomas"
In [3]: userName1.lower() == userName2
Out[3]: True
In