百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

Python中条件、循环及其它语句深刻剖析,小白慎入

toyiye 2024-08-22 22:59 6 浏览 0 评论

条件控制语句 if-else

首先来看一个简单的例子:设计一个程序比较两个数 A 和 B 的大小,如果 A 和 B 不相等则打印较大数的值,如果相等则打印 A。

Python 代码如下:


if A >= B:
    print('The larger number is:',A) 
else:
    print('The larger number is:',B)  //更多Python学习资料可以私信关键字【资料】领取


上面只是一个很简单的实例,一般地,Python 条件控制语句的形式为:


if Condition1:
    Action1 
elif Condition2:
    Action2
else:
    Action3  //更多Python学习资料可以私信关键字【资料】领取


上面的代码表示:


  1. 如果 Condition1 为True,将执行 Action1;
  2. 如果 Condition1 为False,将继续判断 Condition2;
  3. 如果 Condition2 为True,将执行 Action2;
  4. 如果 Condition2 为False,将执行 Action3。

注意要点


  1. 每个条件后面要使用冒号 :,冒号后的内容表示满足条件后要执行的语句块。
  2. 使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块(IDE 会自动缩进)。
  3. 在 Python 中没有 switch–case 语句。

条件控制语句实例

实例1:从控制台输入两个数字 A、B,判断大小后输出较大数字,如果相等则输出提示和数值。


#从控制台输入数据默认为字符串类型,需要强制转换为int类型
A = int(input("Please enter the number A:"))
B = int(input("Please enter the number B:"))
if A > B:
    print('The larger number is:',A) 
elif A == B:
    print('A and B are equal to ',A) 
else:
    print('The larger number is:',B)


执行结果:


Please enter the number A:123
Please enter the number B:456
The larger number is: 456


实例2:从控制台输入学号,如果学号正确则输出考试成绩;如果学号有误,输出报错提示。


#创建一个“学号-成绩”字典
exam_results = {'2018002':95,'2018013':'90','2018023':87}
#接收从控制台输入的学号,默认为字符串类型
stu_num = input("Please enter the student number:")
#删除输入学号首尾空格,避免影响查询
stu_num = stu_num.strip()
#判断输入的学号是否存在于“学号-成绩”字典中
if stu_num in exam_results.keys():
    print('Your score is :',exam_results.get(stu_num)) 
else:
    print('The student number you entered is incorrect!')


执行结果:


Please enter the student number:2018002
Your score is : 95


for 循环语句

Python 中有两种循环语句,for 循环和 while 循环,本节先介绍 for 循环。一般,我们通过 for 循环来遍历序列中的项目,这里序列包括但不限于字符串、列表、元组、字典。


for循环的一般形式如下:


for <item> in <sequence>:
    <actions>


<item> in <sequence> 为 True 时,执行 <actions>

实例1:求一组数据的平均值。


#测试数据集
num_set = [98,94,82,67,58,90,86]
sumOfNum = 0
#遍历列表中的元素,求和
for element in num_set:
    sumOfNum += element
#求平均值并打印结果 
average = sumOfNum/len(num_set)
print("The average is:%f"%(average))


执行结果:


The average is:82.142857


实例2:通过 range() 函数遍历数据序列,range() 函数可以生成数列,将生成的数列作为索引,我们可以遍历数字序列。range() 函数的参数是可变的:


  1. range(n):生成步长为1的数列:1,2,3……n;
  2. range(m, n):生成步长为1的数列:m,m+1,m+2,……,n;
  3. range(m, n, s):生成步长为s的数列:m,m+s,m+2s,……,X(<=n)


for index in range(4):
    print("index:",index)


执行结果:


index: 0
index: 1
index: 2
index: 3


实例3:for 循环结合 range() 遍历数据序列。


#测试数据集
city_set = ['BeiJin','TianJin','ShangHai','HangZhou','SuZhou']
#索引从0开始,以步长2遍历
for index in range(0,len(city_set),2):
    print("city_set[%d]:%s"%(index,city_set[index]))


执行结果:

city_set[0]:BeiJin
city_set[2]:ShangHai
city_set[4]:SuZhou
while 循环与 for 循环不同,while 循环不是采用遍历数据序列的方式来进行循环操作的,其循环的依据是条件判断,while 循环的一般形式如下,即当 condition 为 True,则执行 Action,否则退出。while Conditon:
    Action
实例1:求一组数据的平均值。
#初始化测试数据
num_set = [98,94,82,67,58,90,86]
sumOfNum = 0
index = 0

while index < len(num_set):
    sumOfNum += num_set[index]
    index += 1
#求平均值并打印结果 
average = sumOfNum/len(num_set)
print("The average is:%f"%(average))
执行结果:
The average is:82.142857
break 语句
break 语句用于跳出 for 和 while 循环体,也就意味着循环结束。如下例子:检测数据集中是否存在小于60的数字,存在则打印提示信息并终止。
#初始化测试数据
num_set = [98,94,82,67,58,90,86]
for i in range(len(num_set)):
    if num_set[i] < 60:
        print("Someone failed!")
        break
    else:
        print(num_set[i])
执行结果:
98
94
82
67
Someone failed!
在实际应用中,break 语句经常和 while 语句结合使用,当条件满足的时候跳循环。如下例子:while True:
    a = input('Please enter a number:')
    if int(a) > 100:
        print('error!!!')
        break
    else:
        print(a)
执行结果:
Please enter a number:23
23
Please enter a number:45
45
Please enter a number:101
error!!!
continue 语句与 break 不同,continue 不会退出循环体,而是跳过当前循环块的剩余语句,继续下一轮循环。如下例子:遍历数据集,遇到小于60的数据打印提示。
#初始化测试数据
num_set = [98,94,82,67,58,90,86]
for i in range(len(num_set)):
    if num_set[i] < 60:
        print("Someone failed!")
        continue
    print(num_set[i])


执行结果:
98
94
82
67
Someone failed!
90
86
Pass 语句Python pass 是空语句,一般用做占位,不执行任何实际的操作,只是为了保持程序结构的完整性。为了直观,举一个不是很恰当的实例:#初始化测试数据
num_set = [98,82,67,58,90]
for i in range(len(num_set)):
    if num_set[i] < 60:
        print("Someone failed!")
        pass
    print(num_set[i])
执行结果:
98
82
67
Someone failed!
58
90
Pass 语句
Python pass 是空语句,一般用做占位,不执行任何实际的操作,只是为了保持程序结构的完整性。为了直观,举一个不是很恰当的实例:
#初始化测试数据
num_set = [98,82,67,58,90]
for i in range(len(num_set)):
    if num_set[i] < 60:
        print("Someone failed!")
        pass
    print(num_set[i])
执行结果:
98
82
67
Someone failed!
58
90
#创建3个元组,和列表类似,同一个元组中可以存放任意数据类型
tuple1 = ()
tuple2 = (12,)
tuple3 = (1, 2, 3, 4, 5)
tuple4 = (3.14, 5.96, 1897, 2020, "China",3+4j) 
tuple5 = 4,5,6,7

如上所示,元组和列表类似,同一个元组中可以没有数据,也可以有多种数据,非常灵活。


不过需要注意:


  1. 如果元组只有一个元素,那么这个元素后面要加逗号,如 tuple2,否则将被认为是一个基本数据类型,而不是元组;
  2. 创建元组,可以没有括号,元素之间用逗号分隔开即可。

访问元组中的元素

元组和列表都是一种序列,因此,也可以通过索引来访问,方法是一样的,如下例子:

tuple1 = (3.14, 5.96, 1897, 2020, "China",3+4j) 
print("tuple1[2]:",tuple1[2])
print("tuple1[1:3]:",tuple1[1:3])

执行结果:

tuple1[2]: 1897
tuple1[1:3]: (5.96, 1897)

元组相关的常用内建方法

tuple1 = (3.14, 5.96, 1897, 2020, 1949) 

#求元组长度,即元组中元素的个数:len(tuple)
print("The length of the tuple: ", len(tuple1))

#求元组中元素的最大值:max(tuple)
print("The largest element in the tuple: ", max(tuple1))

#求元组中元素的最小值:min(tuple)
print("The smallest element in the tuple: ", min(tuple1))

#统计某个元素在元组中出现的次数:tuple.count(obj)
print("The number of times 1949 appears: ", tuple1.count(1949))

#从元组中找出某个值第一个匹配项的索引位置:tuple.index(obj)
print("The index of the first location of 1949: ", tuple1.index(1949))
执行结果:
The length of the tuple: 5
The largest element in the tuple: 2020
The smallest element in the tuple: 3.14
The number of times 1949 appears:  1
The index of the first location of 1949: 4

元组常用的操作

元组常用的运算操作与列表相同,包括:元组拼接、元组乘法、迭代、嵌套等。简要举例如下:

tuple1 = (1,2,3,4)
tuple2 = (5,6,"BeiJin",7,8)

#元组拼接
print("tuple1 + tuple2:",tuple1 + tuple2)

#元组乘法
print("tuple1*2:",tuple1*2)

#判断元素是否存在于元组中
print("3 in tuple1?",3 in tuple1)
print("100 in tuple1?",100 in tuple1)

#迭代
for element in tuple1:
print(element)
    
#元组嵌套
tuple3 = [tuple1, tuple2]
print("tuple3:", tuple3)

执行结果:

tuple1 + tuple2: (1, 2, 3, 4, 5, 6, 'BeiJin', 7, 8)
tuple1*2: (1, 2, 3, 4, 1, 2, 3, 4)
3 in tuple1? True
100 in tuple1? False
1
2
3
4
tuple3: [(1, 2, 3, 4), (5, 6, 'BeiJin', 7, 8)]

字典

Python 的字典可以理解为一种映射表,存储 key-value(键值对)类型数据的容器。关于字典有三点需要注意:

  1. 同一个字典中,键必须是唯一的,不存在两个相同的键,键的值不能改变,数据类型可以是数字,字符串或者元组;
  2. 同一个字典中,值不必唯一,值可以是任意数据类型;
  3. 字典定义采用花括号 {},键值之间用冒号隔开,键值对之间用逗号隔开;

创建字典

#创建几个字典
dict1 = {"ID0012":"ZhangSan", "ID0019":"LiSi", "ID0015":"WangWu"}
dict2 = {1:"BeiJin",3:"ShangHai",5:"HangZhou"}
dict3 = {"Excellent":100, "Good":80, "Pass":60, "Fail":50}
#字典也可以嵌套
dict4 = {"A":["LiTong","XiaoMing"], "B":["XiaoHong","XiaoHua"]}

访问字典中的元素

与列表和元组不同,访问字典中的元素不能通过索引,字典中键和值是成对的,而键是唯一的,那么,通过键就可以访问对应的值。


访问有两种方式:


  1. 直接通过键来访问;
  2. 通过内建 get(key) 方法访问。


如下例子:

dict1 = {"Excellent":100, "Good":80, "Pass":60, "Fail":50}
dict2 = {1:"BeiJin",3:"ShangHai",5:"HangZhou"}
print("dict1['Good']:", dict1['Good'])
print("dict2[1]:", dict2[1])
print("dict1.get('Good'):", dict1.get('Good'))

执行结果:

dict1['Good']: 80
dict2[1]: BeiJin
dict1.get('Good'): 80

修改字典中的元素

dict1 = {"Excellent":100, "Good":80, "Pass":60, "Fail":50}
dict1['Good'] = 85
print("dict1['Good']:", dict1.get('Good'))

执行结果:

dict1['Good']: 85


删除字典中的元素或字典

和列表一样,可以通过 del 语句删除字典中的元素或者删除整个字典,可以通过内建方法 clear() 清空字典,还可以通过内建方法 pop(key) 删除指定的元素,如下例子:


dict1 = {"Excellent":100, "Good":80, "Pass":60, "Fail":50}

#删除字典中的一个元素
del dict1['Good']
print("dict1:", dict1)

#使用内建方法pop(key)删除指定元素
dict1.pop('Pass')
print("dict1:", dict1)

#清空字典
dict1.clear()
print("dict1:", dict1)

#删除字典
del dict1

执行结果:

dict1: {'Excellent': 100, 'Pass': 60, 'Fail': 50}
dict1: {'Excellent': 100, 'Fail': 50}
dict1: {}

字典的常用内建方法

dict1 = {"Excellent":100, "Good":80, "Pass":60, "Fail":50}

#计算字典的长度
print("The length of the dict1: ", len(dict1))

#获取字典中所有的键
print("Get all the keys in dict1:\n", dict1.keys())

#获取字典中所有的值
print("Get all the values in dict1:\n", dict1.values())

#获取字典中所有的键值对
print("Get all the key-value pairs in dict1:\n", dict1.items())

执行结果:

The length of the dict1: 4
Get all the keys in dict1:
 dict_keys(['Excellent', 'Good', 'Pass', 'Fail'])
Get all the values in dict1:
 dict_values([100, 80, 60, 50])
Get all the key-value pairs in dict1:
 dict_items([('Excellent', 100), ('Good', 80), ('Pass', 60), ('Fail', 50)])

集合

集合(set)是一个数学概念,是由一个或多个确定的元素所构成的整体。

集合具有三个特点:

  1. 确定性,集合中的元素必须是确定的;
  2. 互异性,集合中的元素互不相同;
  3. 无序性,集合中的元素没有先后之分。

根据集合的特点,Python 中集合的基本功能包括关系测试和消除重复元素。

创建集合

可以用大括号({})创建集合。但需要注意,如果要创建一个空集合,必须用 set() 而不是 {} ;后者创建一个空的字典。

country1 = {'China', 'America', 'German'}
country2 = set('China')
country3 = set()

print("country1:",country1)
print("country2:",country2)
print("country3:",country3)

执行结果:

('country1:', set(['German', 'America', 'China']))
('country2:', set(['i', 'h', 'C', 'a', 'n']))
('country3:', set([]))

操作集合中的元素

我们可以访问集合中的元素,也可增加,移除元素。

setA = {'A', 'B', 'C'}

print("setA:",setA)
setA.add('D')
print("setA.add('D'):",setA)
setA.add('A')
print("setA.add('A'):",setA)
setA.remove('A')
print("setA.remove('A'):",setA)

执行结果:

('setA:', set(['A', 'C', 'B']))
("setA.add('D'):", set(['A', 'C', 'B', 'D']))
("setA.add('A'):", set(['A', 'C', 'B', 'D']))
("setA.remove('A'):", set(['C', 'B', 'D']))

集合运算

对于集合,我们可以计算交集、并集、补集。

setA = {'A', 'B', 'C'}
setB = {'D', 'C', 'E'}

#交集
print("setA & setB:",setA&setB)

#并集
print("setA | setB:",setA|setB)

#差集
print("setA - setB:",setA-setB)

执行结果:

('setA & setB:', set(['C']))
('setA | setB:', set(['A', 'C', 'B', 'E', 'D']))
('setA - setB:', set(['A', 'B']))

队列

前面已经介绍过列表,结合其内建函数 append(obj) 和 pop(),可以直接将列表作为栈使用。本节将介绍另一种数据结构——队列,即“先进先出”,就像排队打饭,队头的人先打到饭,队尾的人最后。Python 中有专门的队列模块 Queue,本节介绍一种用列表实现的队列,如下例子:



from collections import deque

#基于列表初始化一个队列
queue = deque(['A','B','C'])
#队尾添加元素
queue.append('D')
print('queue',queue)
#队头出列
queue.popleft()
print('queue',queue)
#队头出列
queue.popleft()
print('queue',queue)

执行结果:

('queue', deque(['A', 'B', 'C', 'D']))
('queue', deque(['B', 'C', 'D']))
('queue', deque(['C', 'D']))

感谢大家的支持和喜欢,小编会每天分享更多Python学习的干货知识给大家,所以大家别忘了关注小编哦。

更多Python爬虫、数据分析、办公自动化、全栈开发、人工智能学习资@林夕编程关键字【资料】领取

相关推荐

# Python 3 # Python 3字典Dictionary(1)

Python3字典字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中,格式如...

Python第八课:数据类型中的字典及其函数与方法

Python3字典字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值...

Python中字典详解(python 中字典)

字典是Python中使用键进行索引的重要数据结构。它们是无序的项序列(键值对),这意味着顺序不被保留。键是不可变的。与列表一样,字典的值可以保存异构数据,即整数、浮点、字符串、NaN、布尔值、列表、数...

Python3.9又更新了:dict内置新功能,正式版十月见面

机器之心报道参与:一鸣、JaminPython3.8的热乎劲还没过去,Python就又双叒叕要更新了。近日,3.9版本的第四个alpha版已经开源。从文档中,我们可以看到官方透露的对dic...

Python3 基本数据类型详解(python三种基本数据类型)

文章来源:加米谷大数据Python中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。在Python中,变量就是变量,它没有类型,我们所说的"类型"是变...

一文掌握Python的字典(python字典用法大全)

字典是Python中最强大、最灵活的内置数据结构之一。它们允许存储键值对,从而实现高效的数据检索、操作和组织。本文深入探讨了字典,涵盖了它们的创建、操作和高级用法,以帮助中级Python开发...

超级完整|Python字典详解(python字典的方法或操作)

一、字典概述01字典的格式Python字典是一种可变容器模型,且可存储任意类型对象,如字符串、数字、元组等其他容器模型。字典的每个键值key=>value对用冒号:分割,每个对之间用逗号,...

Python3.9版本新特性:字典合并操作的详细解读

处于测试阶段的Python3.9版本中有一个新特性:我们在使用Python字典时,将能够编写出更可读、更紧凑的代码啦!Python版本你现在使用哪种版本的Python?3.7分?3.5分?还是2.7...

python 自学,字典3(一些例子)(python字典有哪些基本操作)

例子11;如何批量复制字典里的内容2;如何批量修改字典的内容3;如何批量修改字典里某些指定的内容...

Python3.9中的字典合并和更新,几乎影响了所有Python程序员

全文共2837字,预计学习时长9分钟Python3.9正在积极开发,并计划于今年10月发布。2月26日,开发团队发布了alpha4版本。该版本引入了新的合并(|)和更新(|=)运算符,这个新特性几乎...

Python3大字典:《Python3自学速查手册.pdf》限时下载中

最近有人会想了,2022了,想学Python晚不晚,学习python有前途吗?IT行业行业薪资高,发展前景好,是很多求职群里严重的香饽饽,而要进入这个高薪行业,也不是那么轻而易举的,拿信工专业的大学生...

python学习——字典(python字典基本操作)

字典Python的字典数据类型是基于hash散列算法实现的,采用键值对(key:value)的形式,根据key的值计算value的地址,具有非常快的查取和插入速度。但它是无序的,包含的元素个数不限,值...

324页清华教授撰写【Python 3 菜鸟查询手册】火了,小白入门字典

如何入门学习python...

Python3.9中的字典合并和更新,了解一下

全文共2837字,预计学习时长9分钟Python3.9正在积极开发,并计划于今年10月发布。2月26日,开发团队发布了alpha4版本。该版本引入了新的合并(|)和更新(|=)运算符,这个新特性几乎...

python3基础之字典(python中字典的基本操作)

字典和列表一样,也是python内置的一种数据结构。字典的结构如下图:列表用中括号[]把元素包起来,而字典是用大括号{}把元素包起来,只不过字典的每一个元素都包含键和值两部分。键和值是一一对应的...

取消回复欢迎 发表评论:

请填写验证码