首页 > 编程语言 >Python选择与循环

Python选择与循环

时间:2024-08-05 17:28:22浏览次数:15  
标签:语句 Python 代码 value 选择 循环 key print

条件语句

Python 中,选择(条件)语句可细分为 3 种形式,分别是if语句、if else语句和if elif else语句。

标准格式:

if 表达式 1:
    代码块 1
elif 表达式 2:
    代码块 2
elif 表达式 3:
    代码块 3
...//可以有零条或多条elif语句
else:
    代码块 n

表达式可以是一个单纯的布尔值或变量,也可以是比较表达式或逻辑表达式; 如果 if 中的表达式为“真”,程序就会执行 if 中的代码块

代码块指的是具有相同缩进格式的多行代码。一般情况下,一个代码块会被当成一个整体来执行。

Python是一门很“独特”的语言,它的代码块是通过缩进来标记的,具有相同缩进的多行代码属于同一个代码块, 通常建议缩进 4 个空格。

Python冒号精确表示代码块的开始点这个功能不仅在条件执行体中如此,后面的循环体、方法体、类体全部遵守该规则。

s = ""
if s :
    print('s不是空字符串')
else:
    print('s是空字符串')

s = input("请输入一个整数: ")
s = int(s)
if s > 5:
    print("大于5")
elif s < 5:
    # 空语句,相当于占位符
    pass
else:
    print("等于5")

assert断言函数

assert断言语句和if分支有点类似,它用于对一个bool表达式进行断言,如果该bool表达式为True,该程序可以继续向下执行;否则程序会引发AssertionError错误。

s_age = input("请输入您的年龄:")
age = int(s_age)
assert 20 < age < 80
print("您输入的年龄在20和80之间")

"""
请输入您的年龄:23
您输入的年龄在20和80之间
========================
请输入您的年龄:1
Traceback (most recent call last):
  File "C:\Users\mengma\Desktop\1.py", line 3, in <module>
    assert 20 < age < 80
AssertionError

循环语句

while循环

Python中,while循环只要在条件(表达式)为真的情况下,就会一直重复执行相应的循环代码块。

while语句的语法格式如下:

while 条件表达式:
    代码块

while语句执行的具体流程为:首先判断条件表达式的值,其值为真(True)时,则执行代码块中的语句,当执行完毕后,再回过头来重新判断条件表达式的值是否为真,若仍为真,则继续重新执行代码块...如此循环,直到条件表达式的值为假(False),才终止循环。

# 循环的初始化条件
num = 1
# 当 num 小于100时,会一直执行循环体
while num < 100 :
    print("num=", num)
    # 迭代语句
    num += 1
print("循环结束!")

for循环

for循环的语法格式如下:

for 迭代变量 in 字符串|列表|元组|字典|集合:
    代码块

格式中,迭代变量用于存放从序列类型变量中读取出来的元素,所以一般不会在循环中对迭代变量手动赋值;代码块指的是具有相同缩进格式的多行代码(和while一样),由于和循环结构联用,因此代码块又称为循环体

print("计算 1+2+...+100 的结果为:")
#保存累加结果的变量
result = 0
#逐个获取从 1 到 100 这些值,并做累加操作
for i in range(101):
    result += i
print(result)

"""结果为
计算 1+2+...+100 的结果为:
5050
"""

range()函数的语法格式如下:

range(start,end,step)

此函数中各参数的含义如下:

  1. start:用于指定计数的起始值,如果省略不写,则默认从 0 开始。
  2. end:用于指定计数的结束值(不包括此值),此参数不能省略。
  3. step:用于指定步长,即两个数之间的间隔,如果省略,则默认步长为 1。

总之,在使用range()函数时,如果只有一个参数,则表示指定的是end;如果有两个参数,则表示指定的是start和end。

for循环遍历列表和元组

在使用for循环遍历列表和元组时,列表或元组有几个元素,for循环的循环体就执行几次,针对每个元素执行一次,迭代变量会依次被赋值为元素的值。

src_list = [12, 45, 3.4, 13, 'a', 4, 56, 'crazyit', 109.5]
my_sum = 0
my_count = 0
for ele in src_list:
    # 如果该元素是整数或浮点数
    if isinstance(ele, int) or isinstance(ele, float):
        print(ele)
        # 累加该元素
        my_sum += ele
        # 数值元素的个数加1
        my_count += 1
print('总和:', my_sum)
print('平均数:', my_sum / my_count)

运行结果为:

12
45
3.4
13
4
56
109.5
总和: 242.9
平均数: 34.7

for循环遍历字典

使用for循环遍历字典其实也是通过遍历普通列表来实现的。前面在介绍字典时己经提到,字典包含了如下三个方法:

  1. items():返回字典中所有key-value对的列表。
  2. keys():返回字典中所有key 的列表。
  3. values():返回字典中所有value的列表。
my_dict = {'语文': 89, '数学': 92, '英语': 80}
# 通过items()方法遍历所有key-value对
# 由于items方法返回的列表元素是key-value对,因此要声明两个变量
for key, value in my_dict.items():
    print('key:', key)
    print('value:', value)
print('-------------')
# 通过keys()方法遍历所有key
for key in my_dict.keys():
    print('key:', key)
    # 在通过key获取value
    print('value:', my_dict[key])
print('-------------')
# 通过values()方法遍历所有value
for value in my_dict.values():
    print('value:', value)

运行结果为:

key: 语文
value: 89
key: 数学
value: 92
key: 英语
value: 80
-------------
key: 语文
value: 89
key: 数学
value: 92
key: 英语
value: 80
-------------
value: 89
value: 92
value: 80

break用法

break用于完全结束一个循环,跳出循环体。 不管是哪种循环,一旦在循环体中遇到break,系统就将完全结束该循环,开始执行循环之后的代码。

另外,针对嵌套的循环结构来说,Pythonbreak语句只能结束其所在的循环体,而无法结束嵌套所在循环的外层循环。

for i in range(0,4) :
    print("此时 i 的值为:",i)
    for j in range(5):
        print("    此时 j 的值为:",j)
        break
    print("跳出内层循环")

运行结果为:

此时 i 的值为: 0
    此时 j 的值为: 0
跳出内层循环
此时 i 的值为: 1
    此时 j 的值为: 0
跳出内层循环
此时 i 的值为: 2
    此时 j 的值为: 0
跳出内层循环
此时 i 的值为: 3
    此时 j 的值为: 0
跳出内层循环

continue的用法

continue语句的作用只能终止本次循环而继续执行下一次循环。

# 一个简单的for循环
for i in range(0, 3 ) :
    print("i的值是: ", i)
    if i == 1 :
        # 忽略本次循环的剩下语句
        continue
    print("continue后的输出语句")

运行上面程序,将看到如下运行结果:

i的值是:  0
continue后的输出语句
i的值是:  1
i的值是:  2
continue后的输出语句

标签:语句,Python,代码,value,选择,循环,key,print
From: https://www.cnblogs.com/hu-li/p/18343672

相关文章

  • 【Python&GIS】Arcpy中常用出图函数详解
        出图是每个GISer都要经历的事,但有时候会有许多重复且多且无聊的出图任务,这个时候我们肯定想能不能自动化出图。ArcGIS中的模型创建就可以实现,但是我的数据大部分是在Python中处理的,所以就想能不能使用Python进行批量出图,正好今天跟大家分享一下。这里使用的mxd作为......
  • 使用Python 和 Selenium 抓取 酷狗 音乐专辑 附源码
    在这篇博客中,我将分享如何使用Python和Selenium抓取酷狗音乐网站上的歌曲信息。我们将使用BeautifulSoup解析HTML内容,并提取歌曲和专辑信息。依赖库requestsbeautifulsoup4selenium准备工作首先,我们需要安装一些必要的库:pipinstallrequestsbeautifulsoup4selenium......
  • 使用 Python和PyQt5 打造 你的专属文件查询工具! 附源码
    本文将介绍如何使用Python和PyQt5创建一个简单的文件查询工具。该工具允许用户选择一个目录,并在该目录中搜索特定的文件。依赖库首先,确保你已经安装了PyQt5库:pipinstallPyQt5步骤第一步:导入库我们需要导入必要的库,包括sys、os和PyQt5。importsysimportosfromP......
  • 用Python和PyQt5打造你的专属音乐播放器!轻松创建带封面的音乐列表
    在本文中,我们将介绍如何使用Python的PyQt5库创建一个简单的音乐播放器。这个音乐播放器可以显示歌曲的封面,并且点击封面就可以播放对应的歌曲。依赖库首先,我们需要安装PyQt5库。可以使用以下命令进行安装:pipinstallPyQt5功能如下:显示歌曲列表:程序会在指定的目录(在......
  • 了解 Databricks 文件系统 (DBFS) 中的文件访问与使用 Python 和 Spark 的卷的比较
    我当前正在尝试从Databricks文件系统(DBFS)读取和显示文件,但遇到了问题。这是我使用的代码:file_path="/dbfs/cluster-logs/use_case/default_job_cluster/cluster_id/init_scripts/cluster_id/20240801_proxy-init.sh.stderr.log"withopen(file_path,'r')asfile:......
  • 机器学习用python还是R,哪个更好?
    选择使用Python还是R进行机器学习取决于多个因素,包括您的具体需求、项目要求、个人偏好以及团队的技能水平。以下是一些关键点,可以帮助您做出决定:Python的优势广泛使用:Python是目前最流行的编程语言之一,特别是在数据科学和机器学习领域。它有一个庞大的社区和丰富的资源。......
  • python 元类:在调用“__set_name__”方法后编辑命名空间?
    假设我们用元类定义一个类。在类主体中,分配了对象,这些对象实现__set_name__以在类的数据结构中注册自身。是否可以在运行方法之后编辑命名空间?比如,分离填充的数据结构,将其分成两部分,然后在新属性下添加部分?__set_name__问题在于,在元类中调用之......
  • 无法加入进程,只能终止[Python 3.11,多处理]
    我有一个问题要问对Python的多处理库有更​​多经验的人,此时我几乎迷失了方向。我目前正在构建一个应该在Windows11和Windows11上运行的图像处理应用程序装有DebianLinux的OrangePi5。我的设置是,除了主程序之外,还有另外两个进程,一个用于处理不间断的......
  • Python 将Word转换为JPG、PNG、SVG图片
    将Word文档以图片形式导出,既能方便信息的分享,也能保护数据安全,避免被二次编辑。文本将介绍如何使用 Spire.DocforPython 库在Python程序中实现Word到图片的批量转换。Python将Word转换为JPG、JPEG、PNG、BMP等图片格式Python将Word文档转换为SVG格式 Python库安装: ......
  • C 和 Python 代码的函数的不同十六进制转储值
    这是我的示例C代码,用于从user32.dll中转储MessageBoxA:#include<windows.h>#include<stdio.h>voidDumpFun(HANDLEprocess,LPVOIDaddress,SIZE_Tdump_size){BYTE*buffer=(BYTE*)malloc(dump_size);if(buffer==NULL){pri......