Python学习手册--第三部分(if语句和字典)

简介: Python学习手册--第三部分(if语句和字典)

在日常生活中,我们往往面临诸多选择,高考报考哪所学校,就业选择哪些企业。而在编程中,我们也会面临很多选择,比如某些剧情游戏。而在Python中,if语句能让你检查程序的当前状态,并据此采取相应的措施。


我们来编写一个简单的示例:


```py

fruits = ['apple', 'banana', 'pear', 'watermelon', 'peach']

for fruit in fruits:

   if fruit == 'apple':

       print(fruit.upper())

   else:

       print(fruit.title())

```

上面的程序将名为apple的元素以全大写的方式输出,将其它元素以首字母大写的方式输出。

每条if 语句的核心都是一个值为True 或False 的表达式,这种表达式被称为条件测试 。Python根据条件测试的值为True 还是False 来决定是否执行if 语句中的代码。如果条件测试的值True,Python就执行紧跟在if 语句后面的代码;如果为False ,Python就忽略这些代码。

而大多数条件测试都将一个变量的当前值同特定值进行比较。最简单的条件测试检查变量的值是否与特定值相等:

```py

fruit = 'apple'

print(fruit == 'apple')

```

我们首先使用一个等号将fruit变量的值设置为apple,然后使用两个等号检查fruit变量的值是否为apple,很显然这是成立的,所以结果会输出True,如果不成立,则输出False。


在Python中,检查两个值是否相等的时候是严格区分大小写的:


```py

print('apple' == 'Apple')

```

例如上面的这条语句就会输出False。如果你需要它区分大小写,这当然是一件好事,但如果大小写无关紧要,而只想检查变量的值,可将变量的值转换为小写,再进行比较。


```py

fruit = 'APPle'

print(fruit.lower() == 'apple')

```

这样不管fruit变量的大小写如何,输出都为True,并且lower()函数并不会影响原有的变量值。

要检查两个值是否不等,可结合使用感叹号和等号(!=),其中感叹号表示不,在很多编程语言中意义都如此。

除了比较相等,在数字类型中,我们还有很多数学比较,如小于、小于等于、大于、大于等于。


###### 使用and 检查多个条件

要检查是否两个条件都为True,可使用关键字and将两个条件合二为一,在and关键字中,如果两个条件都通过,则整体为True,如果至少有一个条件不通过,则整体为False。


###### 使用or 检查多个条件

关键字or也能够让你检查多个条件,但只要至少有一个条件满足,就能通过整个测试。仅当两个条件都没有通过时,使用or的表达式才为False。


###### 检查特定值是否包含在列表中

有时候,执行操作前你必须检查列表是否包含特定的值,如,用户在注册时候,需要检查数据库中是否含有用户输入的信息。

要实现这样的需求,我们可使用关键字in。


```py

fruits = ['apple', 'banana', 'pear', 'watermelon', 'peach']

print('apple' in fruits)

print('Hami' in fruits)

```

当然,要想检查特定值是否不包含在列表中,我们可使用关键字not in。

###### 布尔表达式

刚才的程序中我们已经接触到了布尔表达式,布尔表达式用于表示真或假的两种状态,它的值要么为True,要么为False。


## if语句

在文章的开头,我们就简单地使用了一下if语句。现在,我们对if语句进行一个进阶。

在if 语句中,缩进的作用与for 循环中相同。如果测试通过了,将执行if 语句后面所有缩进的代码行,否则将忽略它们。


###### if-else 语句

有些时候,我们需要在某一条件通过时执行一些操作,并在不通过时也执行一些操作。在这种情况下,可使用if-else语句。if-else 语句块类似于简单的if 语句,但其中的else 语句让你能够指定条件测试未通过时要执行的操作。


```py

age = 20

if age > 18:

   print('您已经成年了')

else:

   print("您还未成年")

```

###### if-elif-else结构

有些时候,我们需要判断超过两种的情况,这时候,我们可以使用if-elif-else结构实现。例如:

一个游乐场的收费标准为:

4岁以下免费;

4~18岁收费5美元;

18岁(含)以上收费10美元。

我们根据上述标准编写程序:


```py

age = 12

if age < 4:

   print("花费$0")

elif age < 18:

   print("花费$5.")

else:

   print("花费$10.")

```

注意:Python并没有规定必须存在else语句,所以,在某些情况下,我们可以省略else。


## 使用if语句处理列表

在之前对列表的操作中,我们都默认列表中有数据,而且列表中确实是有数据的,而在实际的开发中,经常会出现传递过来的数据可能是空值。所以,我们可以借助if语句来对列表进行一个判断空值的操作。


```py

numbers = []

if numbers:

   for num in numbers:

       print(num)

else:

   print('列表为空')

```

上述程序检查了numbers列表是否为空,如果为空,输出列表为空提示,如果不为空,则循环打印列表元素。


## 字典

###### 一个简单的字典

字典是什么呢?字典是一组特殊数据的集合,它通常用来描述一个事物的属性,我们先来编写一个简单的字典:

```py

person = {'name': 'zhangsan', 'age': 20}

print(person)

```

这就是一个最简单的字典,它描述了一个人的名字和年龄。


在Python中,字典是一系列键——值对,每个键都有一个唯一的值与其对应,你可以使用键来访问与之相关的值。这个值可以是数字、字符串、列表甚至字典。事实上,我们可以将任意值作为字典的值。

###### 访问字典中的值

要想访问字典的值,我们可以通过其对应的键来访问:


```py

person = {'name': 'zhangsan', 'age': 20}

print(person['name'])

print(person['age'])

```

字典中可以包含任意数量的键值对。

###### 添加键值对

字典是一种动态结构,可随时在其中添加键值对。要添加键—值对,可依次指定字典名、用方括号括起的键和相关联的值。


```py

person = {'name': 'zhangsan', 'age': 20}

person['height'] = 180

person['weight'] = 110

print(person)

```

这样,我们就将身高和体重添加进了字典。


###### 修改字典中的值

要修改字典中的值,可依次指定字典名、用方括号括起的键以及与该键相关联的新值。


```py

person = {'name': 'zhangsan', 'age': 20}

person['age'] = 22

print(person)

```

上述程序中,我们将年龄改为了22。


###### 删除键值对

对于字典中不再需要的信息,可使用del 语句将相应的键—值对彻底删除。使用del 语句时,必须指定字典名和要删除的键。


```py

person = {'name': 'zhangsan', 'age': 20}

del person['name']

print(person)

```

上述程序中,我们把姓名从字典中删除了。


#### 遍历字典

具备了前面的知识,现在来遍历字典应该十分简答,我们直接开始编写:


```py

person = {'name': 'zhangsan', 'age': 20, 'height': 180, 'weight': 110}

for key,value in person.items():

   print('key:' + key + '---value:' + str(value))

```

我们通过item()函数获得字典的每个键值,然后定义两个变量key,value分别存储键和值。即可输出字典的所有值。

注意:Python不关心键值对的存储顺序,所以在遍历字典的时候,顺序可能和原字典不同。

遍历字典时,会默认遍历所有的键,如果显式地使用方法keys()可让代码更加容易理解,你可以选择这样做,也可以省略它。


```py

person = {'name': 'zhangsan', 'age': 20, 'height': 180, 'weight': 110}

for value in person.keys():

   print(person[value])

```

方法keys() 并非只能用于遍历;实际上,它返回一个列表,其中包含字典中的所有键。


```py

person = {'name': 'zhangsan', 'age': 20, 'height': 180, 'weight': 110}

keys = person.keys()

print(keys)

```

###### 按顺序遍历字典中的所有键

字典总是明确地记录键和值之间的关联关系,但获取字典的元素时,获取顺序是不可预测的。这不是问题,因为通常你想要的只是获取与键相关联的正确的值。要以特定的顺序返回元素,一种办法是在for 循环中对返回的键进行排序。为此,可使用函数sorted() 来获得按特定顺序排列的键列表的副本:

```py

person = {'zhangsan': 20, 'lisi': 24, 'wangwu': 18, 'zhaoliu': 28}

for name in sorted(person.keys()):

   print(name)

```

###### 按顺序遍历字典中的所有值

同样的方法,我们可以按顺序遍历字典中的值:


```py

person = {'zhangsan': 20, 'lisi': 24, 'wangwu': 18, 'zhaoliu': 28}

for age in sorted(person.values()):

   print(age)

```

如果在某些特定的情况下,我们需要对字典中的值进行去重操作,Python也给我们提供了方法。就是使用集合(set)。集合类似于列表,但是集合中的每个元素都必须是独一无二的。


```py

person = {'zhangsan': 20, 'lisi': 20, 'wangwu': 18, 'zhaoliu': 28}

for age in set(person.values()):

   print(age)

```

使用字典和列表我们可以组合出复杂的数据。

例如我现在有三个字典:


```py

person1 = {'name': 'zhangsan', 'age': 20}

person2 = {'name': 'lisi', 'age': 22}

person3 = {'name': 'wangwu', 'age': 21}

```

每个字典都包含了一个人的信息,但无法存储第二个人的信息,这时,我们就可以创建一个存放字典的列表:


```py

person1 = {'name': 'zhangsan', 'age': 20}

person2 = {'name': 'lisi', 'age': 22}

person3 = {'name': 'wangwu', 'age': 21}


person = [person1, person2, person3]

print(person)

```

###### 在字典中存储列表

某些情况下,我们需要在字典中存储列表,例如:人的爱好可以是多个,所以我们必须通过列表来存储爱好信息:


```py

person = {

   'name': 'zhangsan',

   'age': 20,

   'hobby': ['篮球', '足球', '游泳']

}

print(person)

```

###### 在字典中存储字典

可在字典中嵌套字典,但这样做时,代码可能很快复杂起来。例如,如果有多个网站用户,每个都有独特的用户名,可在字典中将用户名作为键,然后将每位用户的信息存储在一个字典中,并将该字典作为与用户名相关联的值。在下面的程序中,对于每位用户,我们都存储了其三项信息:名、姓和居住地;为访问这些信息,我们遍历所有的用户名,并访问与每个用户名相关联的信息字典:


```py

for username, user_info in users.items():

   print("\nUsername: " + username)

   full_name = user_info['first'] + " " + user_info['last']

   location = user_info['location']


   print("\tFull name: " + full_name.title())

   print("\tLocation: " + location.title())

```

相关文章
|
7月前
|
存储 JavaScript Java
(Python基础)新时代语言!一起学习Python吧!(四):dict字典和set类型;切片类型、列表生成式;map和reduce迭代器;filter过滤函数、sorted排序函数;lambda函数
dict字典 Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 我们可以通过声明JS对象一样的方式声明dict
426 1
|
7月前
|
存储 Java 数据处理
(numpy)Python做数据处理必备框架!(一):认识numpy;从概念层面开始学习ndarray数组:形状、数组转置、数值范围、矩阵...
Numpy是什么? numpy是Python中科学计算的基础包。 它是一个Python库,提供多维数组对象、各种派生对象(例如掩码数组和矩阵)以及用于对数组进行快速操作的各种方法,包括数学、逻辑、形状操作、排序、选择、I/0 、离散傅里叶变换、基本线性代数、基本统计运算、随机模拟等等。 Numpy能做什么? numpy的部分功能如下: ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组 用于对整组数据进行快速运算的标准数学函数(无需编写循环)。 用于读写磁盘数据的工具以及用于操作内存映射文件的工具。 线性代数、随机数生成以及傅里叶变换功能。 用于集成由C、C++
566 2
|
7月前
|
算法 Java Docker
(Python基础)新时代语言!一起学习Python吧!(三):IF条件判断和match匹配;Python中的循环:for...in、while循环;循环操作关键字;Python函数使用方法
IF 条件判断 使用if语句,对条件进行判断 true则执行代码块缩进语句 false则不执行代码块缩进语句,如果有else 或 elif 则进入相应的规则中执行
1162 1
|
12月前
|
安全 数据安全/隐私保护 Python
Python学习的自我理解和想法(27)
本文记录了学习Python第27天的内容,主要介绍了使用Python操作PPTX和PDF的技巧。其中包括通过`python-pptx`库创建PPTX文件的详细步骤,如创建幻灯片对象、选择母版布局、编辑标题与副标题、添加文本框和图片,以及保存文件。此外,还讲解了如何利用`PyPDF2`库为PDF文件加密,涵盖安装库、定义函数、读取文件、设置密码及保存加密文件的过程。文章总结了Python在处理文档时的强大功能,并表达了对读者应用这些技能的期待。
|
7月前
|
存储 Java 索引
(Python基础)新时代语言!一起学习Python吧!(二):字符编码由来;Python字符串、字符串格式化;list集合和tuple元组区别
字符编码 我们要清楚,计算机最开始的表达都是由二进制而来 我们要想通过二进制来表示我们熟知的字符看看以下的变化 例如: 1 的二进制编码为 0000 0001 我们通过A这个字符,让其在计算机内部存储(现如今,A 字符在地址通常表示为65) 现在拿A举例: 在计算机内部 A字符,它本身表示为 65这个数,在计算机底层会转为二进制码 也意味着A字符在底层表示为 1000001 通过这样的字符表示进行转换,逐步发展为拥有127个字符的编码存储到计算机中,这个编码表也被称为ASCII编码。 但随时代变迁,ASCII编码逐渐暴露短板,全球有上百种语言,光是ASCII编码并不能够满足需求
310 4
|
8月前
|
JavaScript Java 大数据
基于python的网络课程在线学习交流系统
本研究聚焦网络课程在线学习交流系统,从社会、技术、教育三方面探讨其发展背景与意义。系统借助Java、Spring Boot、MySQL、Vue等技术实现,融合云计算、大数据与人工智能,推动教育公平与教学模式创新,具有重要理论价值与实践意义。
|
10月前
|
算法 IDE 测试技术
python学习需要注意的事项
python学习需要注意的事项
433 57
|
8月前
|
存储 JSON 数据管理
Python字典:高效数据管理的瑞士军刀
Python字典基于哈希表实现,提供接近O(1)的高效查找,支持增删改查、遍历、合并等丰富操作,广泛应用于计数、缓存、配置管理及JSON处理。其灵活性与性能使其成为数据处理的核心工具。
697 0
|
8月前
|
存储 缓存 安全
Python字典:从入门到精通的实用指南
Python字典如瑞士军刀般强大,以键值对实现高效数据存储与查找,广泛应用于配置管理、缓存、统计等场景。本文详解字典基础、进阶技巧、实战应用与常见陷阱,助你掌握这一核心数据结构,写出更高效、优雅的Python代码。
205 0

推荐镜像

更多