Python:运算符和控制流程(三)

2024-05-09 22:58
文章标签 python 流程 运算符 控制

本文主要是介绍Python:运算符和控制流程(三),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.运算符

1.1 算术运算符

# 算术运算符
# + 加法运算符(如果是两个字符串之间进行加法运算,则会进行拼串操作)
# - 减法运算符
# * 乘法运算符(如果将字符串和数字相乘,则会对字符串进行复制操作,将字符串重复指定次数)
# / 除法运算符,运算时结果总会返回一个浮点类型
# // 整除,只会保留计算后的整数位,总会返回一个整型
# ** 幂运算,求一个值的几次幂
# % 取模,求两个数相除的余数a = 10 + 5 # 计算
a = 'hello' + ' ' + 'world' # 拼串a = 10 - 5 # 计算
a = 5 - True 
a = a - 2 # 用变量a的值减去2,然后再赋值给a
# a = 'hello' - 'h' TypeErrora = 5 * 5a = 10 / 5
a = 5 / 2
# a = 5 / 0 ZeroDivisionError: division by zero
a = 10 / 3
a = 10 // 3
a = 5 // 2 a = 2 ** 2
a = 10 ** 5
a = 16 ** 0.5 # 求16的平方根a = 10 % 5 # 0
a = 10 % 4 # 2
a = 10 % 3 # 1
a = 10 % 2 # 0print("a =",a)

1.2 赋值运算符

# 赋值运算符
# = 可以将等号右侧的值赋值给等号左侧的变量
# +=  a += 5 相当于 a = a + 5 
# -=  a -= 5 相当于 a = a - 5 
# *=  a *= 5 相当于 a = a * 5 
# **= a **= 5 相当于 a = a ** 5 
# /=  a /= 5 相当于 a = a / 5 
# //= a //= 5 相当于 a = a // 5 
# %=  a %= 5 相当于 a = a % 5 
a = 10
# a = a + 5
# a += 5
a -= 5
a *= 5
a **= 2
a /= 25
a = 25.0 # 在对浮点数做算术运算时,结果也会返回一个浮点数
a //= 5
a = 5
a %= 4print('a =',a)

1.3 关系运算符

# 关系运算符
# 关系运算符用来比较两个值之间的关系,总会返回一个布尔值
# 如果关系成立,返回True,否则返回False
# > 比较左侧值是否大于右侧值
# >= 比较左侧的值是否大于或等于右侧的值
# < 比较左侧值是否小于右侧值
# <= 比较左侧的值是否小于或等于右侧的值
# == 比较两个对象的值是否相等
# != 比较两个对象的值是否不相等
#   相等和不等比较的是对象的值,而不是id
# is 比较两个对象是否是同一个对象,比较的是对象的id
# is not 比较两个对象是否不是同一个对象,比较的是对象的id
result = 10 > 20 # False
result = 30 > 20 # True
result = 30 < 20 # False
result = 10 >= 10 # Trueresult = 2 > True # True
# result = 2 > '1' TypeError: '>' not supported between instances of 'int' and 'str'# 0032 > 0031
result = '2' > '1' # True
result = '2' > '11' # True# 在Python中可以对两个字符串进行大于(等于)或小于(等于)的运算,
#   当对字符串进行比较时,实际上比较的是字符串的Unicode编码
#   比较两个字符串的Unicode编码时,是逐位比较的
#   利用该特性可以对字符串按照字母顺序进行排序,但是对于中文来说意义不是特别大
#   注意:如果不希望比较两个字符串的Unicode编码,则需要将其转换为数字然后再比较
#   0061 > 0062
result = 'a' > 'b' # False
result = 'c' < 'd' # True
result = 'ab' > 'b' # False# print(int('2') > int('11'))result = 1 == 1 # True
result = 'hello' == 'hello' # True
result = 'abc' == 'bcd' # False
result = 'abc' != 'bcd' # True
result = 1 == True # True
result = 1 is True # False
result = 1 is not True # True
print('result =',result)
print(id(1),id(True))

1.4 逻辑运算符

# 逻辑运算符
# 逻辑运算符主要用来做一些逻辑判断
# not 逻辑非
#   not可以对符号右侧的值进行非运算
#       对于布尔值,非运算会对其进行取反操作,True变False,False变True
#       对于非布尔值,非运算会先将其转换为布尔值,然后再取反
#       
# and 逻辑与
#   and可以对符号两侧的值进行与运算
#    只有在符号两侧的值都为True时,才会返回True,只要有一个False就返回False
#    与运算是找False的
#    Python中的与运算是短路的与,如果第一个值为False,则不再看第二个值
#   
# or 逻辑或
#   or 可以对符号两侧的值进行或运算
#    或运算两个值中只要有一个True,就会返回True
#    或运算是找True的
#    Python中的或运算是短路的或,如果第一个值为True,则不再看第二个值
#    
# 练习:
#   尝试一下对布尔值进行三种逻辑运算
#   尝试对非布尔值进行三种逻辑运算,并观察返回的结果   
#   a = True
a = not a # 对a进行非运算a = 1
a = ''
a = not a
# print('a =',a)result = True and True # True
result = True and False # False
result = False and True # False
result = False and False # False# print(result) # True and print('你猜我出来吗?') 第一个值是True,会看第二个值,所以print()会执行
# False and print('你猜我出来吗?')第一个值是False,不会看第二个值,所以print()不会执行result = True or True # True
result = True or False # True
result = False or True # True
result = False or False # False# print(result) 
# False or print('你猜我出来吗?') 第一个值为False,继续看第二个,所以打印语句执行
# True or print('你猜我出来吗?') 第一个值为True,不看第二个,所以打印语句不执行# 非布尔值的与或运算
#   当我们对非布尔值进行与或运算时,Python会将其当做布尔值运算,最终会返回原值
#   与运算的规则
#       与运算是找False的,如果第一个值是False,则不看第二个值
#       如果第一个值是False,则直接返回第一个值,否则返回第二个值
#   或运算的规则
#       或运算是找True的,如果第一个值是True,则不看第二个值
#       如果第一个值是True,则直接返回第一个值,否则返回第二个值    # True and True
result = 1 and 2 # 2
# 上面1 and 2,程序找第一个是1,为true,那么继续往下找,再找到2,也是true,但是后面没有值可以往下找了,程序就直接返回第二个原值2
# True and False
result = 1 and 0 # 0
# False and True
result = 0 and 1 # 0
# False and False
result = 0 and None # 0# True or True
result = 1 or 2 # 1
# True or False
result = 1 or 0 # 1
# False or True
result = 0 or 1 # 1
# False or False
result = 0 or None # Noneprint(result)

1.5 条件运算符

# 条件运算符(三元运算符)
# 语法: 语句1 if 条件表达式 else 语句2
# 执行流程:
#   条件运算符在执行时,会先对条件表达式进行求值判断
#       如果判断结果为True,则执行语句1,并返回执行结果
#       如果判断结果为False,则执行语句2,并返回执行结果
# 练习:
#   现在有a b c三个变量,三个变量中分别保存有三个数值,
#       请通过条件运算符获取三个值中的最大值# print('你好') if False else print('Hello')a = 30
b = 50# print('a的值比较大!') if a > b else print('b的值比较大!')
# 获取a和b之间的较大值
max = a if a > b else bprint(max)

1.6 运算符优先级

a = 40
b = 50
c = 30# 通过条件运算符获取三个值中的最大值
# max = a if a > b else b
# max = max if max > c else cmax = a if (a > b and a > c) else (b if b > c else c) # 不推荐这么使用
# max = a if (b < a > c) else (b if b > c else c)# print(max)# 运算符的优先级
# 和数学中一样,在Python运算也有优先级,比如先乘除 后加减
# 运算符的优先级可以根据优先级的表格来查询,
#   在表格中位置越靠下的运算符优先级越高,优先级越高的越优先计算
#   如果优先级一样则自左向右计算
#  关于优先级的表格,你知道有这么一个东西就够了,千万不要去记
#  在开发中如果遇到优先级不清楚的,则可以通过小括号来改变运算顺序
a = 1 + 2 * 3# 一样 and高 or高
# 如果or的优先级高,或者两个运算符的优先级一样高
#   则需要先进行或运算,则运算结果是3
# 如果and的优先级高,则应该先计算与运算
#   则运算结果是1
a = 1 or 2 and 3# print(a)# 逻辑运算符(补充)
# 逻辑运算符可以连着使用
result = 1 < 2 < 3 # 相当于 1 < 2 and 2 < 3
result = 10 < 20 > 15print(result)

在这里插入图片描述

2.控制流程

Python代码在执行时是按照自上向下顺序执行的。
通过流程控制语句,可以改变程序的执行顺序,也可以让指定的程序反复执行多次
流程控制语句分成两大类:条件判断语句,循环语句

2.1 IF

# 条件判断语句(if语句)
# 语法:if 条件表达式 : 
#           代码块
# 执行的流程:if语句在执行时,会先对条件表达式进行求值判断,
#   如果为True,则执行if后的语句
#   如果为False,则不执行
# 默认情况下,if语句只会控制紧随其后的那条语句,如果希望if可以控制多条语句,
#   则可以在if后跟着一个代码块
# 代码块
#   代码块中保存着一组代码,同一个代码块中的代码,要么都执行要么都不执行
#   代码块就是一种为代码分组的机制
#   如果要编写代码块,语句就不能紧随在:后边,而是要写在下一行
#   代码块以[缩进]开始,直到代码恢复到之前的缩进级别时结束
#   鲁迅说过:
#       世上本来没有路,走的人多了自然就有了!
#       xxxx
#   yyyy....
# 缩进有两种方式,一种是使用tab键,一种是使用空格(四个)
#   Python的官方文档中推荐我们使用空格来缩进
#   Python代码中使用的缩进方式必须统一,要么都用tab,要么都用空格
#   "translate_tabs_to_spaces": true,     # if False : print('你猜我出来么?')num = 10
# if num > 10 : print('num比10大!')
# print('谁也管不了我')
# 下面print只要有缩进,就保持和其他代码在同一个代码块里
if False :print(123)print(456)print(789)print(101112)
# print('hello')num = 28# 可以使用逻辑运算符来连接多个条件,
#   如果希望所有条件同时满足,则需要使用and
#   如果希望只要有一个条件满足即可,则需要使用or
# if num > 10 and num < 20 :
#     print('num比10大,num比20小!')# if 10 < num < 20 :
#     print('num比10大,num比20小!')# 在命令行让用户输入一个用户名,获取用户输入,并进行判断
# 如果用户输入的用户名是admin,则显示欢迎管理员光临
# 如果用户输入的是其他的用户名,则什么也不做

IF-ELSE

# input()函数
# 该函数用来获取用户的输入
# input()调用后,程序会立即暂停,等待用户输入
#   用户输入完内容以后,点击回车程序才会继续向下执行
#   用户输入完成以后,其所输入的的内容会以返回值得形式返回
#   注意:input()的返回值是一个字符串
#   input()函数中可以设置一个字符串作为参数,这个字符串将会作为提示文字显示
# a = input('请输入任意内容:')
# print('用户输入的内容是:',a)
# input()也可以用于暂时阻止程序结束# 获取用户输入的用户名
username = input('请输入你的用户名:')
# 判断用户名是否是admin
if username == 'admin' :print('欢迎管理员光临!')# 让用户在控制台中输入一个年龄
# age = int(input('请输入你的年龄:'))# 如果用户的年龄大于18岁,则显示你已经成年了
# if age >= 18 :
#     print('你已经成年了~~~')# if-else语句
# 语法: 
#   if 条件表达式 :
#       代码块
#   else :
#       代码块
# 执行流程:
#   if-else语句在执行时,先对if后的条件表达式进行求值判断
#       如果为True,则执行if后的代码块
#       如果为False,则执行else后的代码块age = 7
if age > 17 :print('你已经成年了~~')
else :print('你还未成年~~')

IF-ELIF

# if-elif-else语句
# 语法:
#   if 条件表达式 :
#       代码块
#   elif 条件表达式 :
#       代码块
#   elif 条件表达式 :
#       代码块
#   elif 条件表达式 :
#       代码块
#   else :
#       代码块
#       
# 执行流程:
#   if-elif-else语句在执行时,会自上向下依次对条件表达式进行求值判断,
#       如果表达式的结果为True,则执行当前代码块,然后语句结束
#       如果表达式的结果为False,则继续向下判断,直到找到True为止
#       如果所有的表达式都是False,则执行else后的代码块
#   if-elif-else中只会有一个代码块会执行age = 210# if age > 200 :
#     print('活着可真没劲呢!')
# elif age > 100 :
#     print('你也是老大不小了!')
# elif age >= 60 :
#     print('你已经退休了!')
# elif age >= 30 :
#     print('你已经是中年了!')
# elif age >= 18 :
#     print('你已经成年了!')
# else :
#     print('你还是个小孩!')age = 68if age >= 18 and age < 30 :print('你已经成年了!')
elif age >= 30 and age < 60 :print('你已经中年了!')
elif age >= 60 :print('你已经退休了!')

2.2 WHILE

# 循环语句
# 循环语句可以使指定的代码块重复指定的次数
# 循环语句分成两种,while循环 和 for循环
# while循环
# 语法:
#   while 条件表达式 :
#       代码块
#   else :
#       代码块
# 执行流程:
#   while语句在执行时,会先对while后的条件表达式进行求值判断,
#       如果判断结果为True,则执行循环体(代码块),
#       循环体执行完毕,继续对条件表达式进行求值判断,以此类推,
#       直到判断结果为False,则循环终止,如果循环有对应的else,则执行else后的代码块# 条件表达式恒为True的循环语句,称为死循环,它会一直运行,慎用!
# while True :
#     print('hello')# 循环的三个要件(表达式)
# 初始化表达式,通过初始化表达式初始化一个变量
# i = 0# # 条件表达式,条件表达式用来设置循环执行的条件
# while i < 10 :
#     print(i)
#     # 更新表达式,修改初始化变量的值
#     i += 1# 创建一个执行十次的循环
i = 0
while i < 10 :i += 1print(i,'hello')
else :print('else中的代码块')

在这里插入图片描述
练习1

# 求100以内所有的奇数之和
# 获取所有100以内数
# i = 0
# # 创建一个变量,用来保存结果
# result = 0
# while i < 100 :
#     i += 1
#     # 判断i是否是奇数
#     if i % 2 != 0:
#         result += i# print('result =',result)# 获取100以内所有的奇数
# i = 1
# while i < 100:
#     print(i)
#     i += 2# 求100以内所有7的倍数之和,以及个数
i = 7 
# 创建一个变量,来保存结果
result = 0
# 创建一个计数器,用来记录循环执行的次数
# 计数器就是一个变量,专门用来记录次数的变量
count = 0
while i < 100:# 为计数器加1count += 1result += ii += 7    print('总和为:',result,'总数量为:',count)

练习2

# 水仙花数是指一个 n 位数(n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身(例如:1**3 + 5**3 + 3**3 = 153)。
# 求1000以内所有的水仙花数# 获取1000以内的三位数
i = 100
while i < 1000:# 假设,i的百位数是a,十位数b,个位数c# 求i的百位数a = i // 100# 求i的十位数# b = i // 10 % 10b = (i - a * 100) // 10# 求i的个位数字c = i % 10# print(i , a , b , c)# 判断i是否是水仙花数if a**3 + b**3 + c**3 == i :print(i)i += 1

练习3

# 在控制台中打印如下图形
# *****
# *****
# *****
# *****
# *****
# # 创建一个循环来控制图形的高度
# 循环嵌套时,外层循环没执行一次,内存循环就要执行一圈
# i = 0
# while i < 5:
#     # 创建一个内层循环来控制图形的宽度
#     j = 0
#     while j < 5:
#         print("* ",end='')
#         j += 1
#     print()
#     i += 1#
# *     j<1   i=0
# **    j<2   i=1   
# ***   j<3   i=2
# ****  j<4   i=3
# ***** j<5   i=4
# 
# *****
# ****
# ***
# **
# *
i = 0
while i < 5:j = 0while j < i + 1:print("* ",end='')j += 1print()i += 1

2.3 break continue

# break
# break可以用来立即退出循环语句(包括else)
# continue
# continue可以用来跳过当次循环
# break和continue都是只对离他最近的循环起作用
# pass
# pass是用来在判断或循环语句中占位的# 创建一个5次的循环
# i = 0
# while i < 5:
#     if i == 3:
#         break
#     print(i)
#     i += 1
# else :
#     print('循环结束')# i = 0
# while i < 5:
#     i += 1
#     if i == 2:
#         continue
#     print(i)
# else :
#     print('循环结束')i = 0
if i < 5:pass

2.4

2.5

这篇关于Python:运算符和控制流程(三)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/974743

相关文章

Python办公自动化实战之打造智能邮件发送工具

《Python办公自动化实战之打造智能邮件发送工具》在数字化办公场景中,邮件自动化是提升工作效率的关键技能,本文将演示如何使用Python的smtplib和email库构建一个支持图文混排,多附件,多... 目录前言一、基础配置:搭建邮件发送框架1.1 邮箱服务准备1.2 核心库导入1.3 基础发送函数二、

Python包管理工具pip的升级指南

《Python包管理工具pip的升级指南》本文全面探讨Python包管理工具pip的升级策略,从基础升级方法到高级技巧,涵盖不同操作系统环境下的最佳实践,我们将深入分析pip的工作原理,介绍多种升级方... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

基于Python实现一个图片拆分工具

《基于Python实现一个图片拆分工具》这篇文章主要为大家详细介绍了如何基于Python实现一个图片拆分工具,可以根据需要的行数和列数进行拆分,感兴趣的小伙伴可以跟随小编一起学习一下... 简单介绍先自己选择输入的图片,默认是输出到项目文件夹中,可以自己选择其他的文件夹,选择需要拆分的行数和列数,可以通过

Python中反转字符串的常见方法小结

《Python中反转字符串的常见方法小结》在Python中,字符串对象没有内置的反转方法,然而,在实际开发中,我们经常会遇到需要反转字符串的场景,比如处理回文字符串、文本加密等,因此,掌握如何在Pyt... 目录python中反转字符串的方法技术背景实现步骤1. 使用切片2. 使用 reversed() 函

Python中将嵌套列表扁平化的多种实现方法

《Python中将嵌套列表扁平化的多种实现方法》在Python编程中,我们常常会遇到需要将嵌套列表(即列表中包含列表)转换为一个一维的扁平列表的需求,本文将给大家介绍了多种实现这一目标的方法,需要的朋... 目录python中将嵌套列表扁平化的方法技术背景实现步骤1. 使用嵌套列表推导式2. 使用itert

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

Python使用vllm处理多模态数据的预处理技巧

《Python使用vllm处理多模态数据的预处理技巧》本文深入探讨了在Python环境下使用vLLM处理多模态数据的预处理技巧,我们将从基础概念出发,详细讲解文本、图像、音频等多模态数据的预处理方法,... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

Python使用pip工具实现包自动更新的多种方法

《Python使用pip工具实现包自动更新的多种方法》本文深入探讨了使用Python的pip工具实现包自动更新的各种方法和技术,我们将从基础概念开始,逐步介绍手动更新方法、自动化脚本编写、结合CI/C... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

Conda与Python venv虚拟环境的区别与使用方法详解

《Conda与Pythonvenv虚拟环境的区别与使用方法详解》随着Python社区的成长,虚拟环境的概念和技术也在不断发展,:本文主要介绍Conda与Pythonvenv虚拟环境的区别与使用... 目录前言一、Conda 与 python venv 的核心区别1. Conda 的特点2. Python v

Python使用python-can实现合并BLF文件

《Python使用python-can实现合并BLF文件》python-can库是Python生态中专注于CAN总线通信与数据处理的强大工具,本文将使用python-can为BLF文件合并提供高效灵活... 目录一、python-can 库:CAN 数据处理的利器二、BLF 文件合并核心代码解析1. 基础合