python-程序流程控制

目录

1、三元表达式

2、for 循环

3、while 循环

4、迭代遍历


1、三元表达式

python 支持从列表中挑选对象

用法:

a = [x,y][z]

如果 z 为真,将 y 赋值给 a,如果 z 为假,则将 x 赋值给 a 。 

示例代码:

x = 1
a = [1, 2][x>5]
print(a)
x = 6
a = [1, 2][x>5]
print(a)

运行结果: 

2、for 循环

对于元组、列表、字符串这些的遍历比较简单,主要就是注意对于字典的遍历,使用 for 循环迭代的是字典的各个键:

my_dis = {'name':'myon', 'age':'21'}
for i in my_dis:print(i)

可以使用 range 函数生成包含多个整数的 range 对象

用法:

range(start,end,step)

在 for 循环中有两个很常用的语句:break 和 continue

下面我们通过一个例子来看看 break 和 continue 的区别:

用 for 循环找出 100~999 内的前 10 个回文数(3 位数中个位和百位相同的数字)

a = []
n = 0
for i in range(100, 999):s = str(i)if s[0] != s[-1]:continuea.append(i)n += 1if n == 10:break
else:print('over')
print(a)

在 continue 处,如果不是回文数,则跳到循环开头,i 取下一个值继续循环;

在 break 处,如果已经找到 10 个回文数了,则跳出 for 循环。 

从下面的运行结果我们可以看出,break 跳出 for 循环后会跳过 else 语句。

(因为结果并没有输出'over')

下面介绍嵌套使用 for 循环 

示例:输出 100 以内的素数

print(2, 3, end=' ')
for i in range(4, 100):for x in range(2, i):if i%x == 0:breakelse:print(i, end=' ')
else:print('over')

其中 2,3 是素数,直接输出,end=' ' 指定以空格结尾,不然默认是换行符;

if i%x == 0 如果余数是 0 说明 i 不是素数,使用 break 结束内层的 for 循环,则会跳过内层的 else   语句(这里的 else 语句是用来输出素数的),如果余数不是 0 ,if 语句不满足,则会执行内层的   else 语句输出素数,外层的 else 语句是在外层 for 循环结束后执行的,输出 'over' 。

运行结果如下:

3、while 循环

与 for 循环类似,也可在循环体中使用 break 和 continue 语句,else 部分可省略。

示例:

计算 1+2+3+...+100

s = 0
i = 1
while i <= 100:s += ii += 1
print('1+2+3...+100=', s)

在 while 循环中使用 break 语句跳出循环

示例:

输出 100 以内的素数

x = 2
while x < 100:n = 2while n < x-1:if x%n == 0:breakn += 1else:print(x, end=' ')x += 1
else:print('over')

嵌套使用 while 循环

示例:

输出九九乘法表

a = 1
while a < 10:b = 1while b <= a:print('%d*%d=%2d'%(a, b, a*b), end=' ')b += 1print()a += 1

这里的 %d 和 %2d 是格式化字符串中的占位符,用于将数字插入到字符串中,%d不限定宽度,而 %2d 则是确保其至少占两个字节宽度,不足的地方用空格填充。

在前面文章中我们还提到过 %s,在Python中,%s 和 %d 都是字符串格式化中的占位符。它们用于在字符串中插入变量的值。%d 用于整数格式化,表示将一个整数插入到指定位置,%s 用于字符串格式化,表示将一个字符串插入到指定位置。

此外,还可以使用 f(f-string)进行字符串格式化,使用方括号 {} 作为占位符,里面插入表达式,这使得我们可以在字符串中直接嵌入变量。整个内容再使用引号包裹,开头加上 f 即可。

使用示例:

name = "Myon"
age = 21
message = f"Hello, {name}! I am {age} years old."
print(message)

4、迭代遍历

最后简单给大家介绍一下迭代

python 中的各种序列(字符串、列表、元组、字典)都是可迭代对象,可迭代对象可以使用迭代器来遍历包含的元素。

文件对象有自己的迭代器,但是字符串、列表、元组、字典它们没有自己的迭代器,我们需要使用 iter() 函数来生成可迭代对象的迭代器,然后对迭代器调用 next() 函数来遍历对象。next 函数可以依次返回可迭代对象的一个元素,无元素返回时,会抛出异常。

对于文件对象,直接调用它自己的迭代器:__next__() 方法

with open('ip.txt', 'r') as f:a = f.__next__()print(a)b = f.__next__()print(b)

如果我将文件内容改为只有两行

在迭代到第三行时没有元素返回,因此抛出异常:StopIteration

对于没有迭代器的对象(这里以列表为例):

my_list = [1, 2, 3]
l = iter(my_list)
a = next(l)
print(a)
b = next(l)
print(b)
c = next(l)
print(c)
d = next(l)
print(d)

先用 iter() 函数生成迭代器,再使用 next() 函数来遍历对象的元素

同样当没有元素返回时,产生了 StopIteration 异常

当然,对于文件对象,它虽然有自己的迭代器,我们也可以通过调用 next() 函数来遍历它;

with open('ip.txt', 'r') as f:print(next(f))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/626041.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

秋招之路 面经

这里参考一位很厉害的前辈所分享的他的嵌入式软件工程师秋招之路&#xff0c;自己详细的读了一下他的经历以及他的分享的秋招面试和项目经验的总结。 我的嵌入式软件工程师秋招之路&#xff08;文末送福利&#xff09;_嵌入式软件工程师 刷leetcode-CSDN博客 如何在面试中介绍…

HR系统采购之POC如何验证系统有效性

朋友公司要上HR系统项目&#xff0c;现在考虑是否要POC&#xff0c;因为之前接触比较少&#xff0c;想取取经。正好之前也算参与过一些企业级系统选型&#xff0c;正好整理一篇聊聊企业采购系统软件中POC有什么作用&#xff1f;怎么做&#xff1f;要注意什么&#xff1f; 一、…

IEEE顶刊!影响因子逐年攀升!同领域IEEE-Trans,仅47天录用!

&#xff08;一&#xff09;期刊简介概况 【期刊类型】计算机医学类SCIE&EI 【出版社】IEEE出版社 【期刊概况】IF&#xff1a;7.0-8.0&#xff0c;JCR1区&#xff0c;中科院2区TOP 【版面类型】正刊&#xff0c;仅10篇版面 【预警情况】2020-2024年无预警记录 【收录…

护网行动 | 蓝队应急响应流程概述

了解蓝队应急响应的流程 应急响应通常是指为了应对各种意外事件发生前所做的准备&#xff0c;以及在意外事件发生后所采取的措施。 网络安全应急响应是指对已经发生或可能发送的安全事件进行监控、分析、协调、处理、保护资产安全。 网络安全应急响应主要是为了让人们对网络安全…

JS-33-jQuery02-选择器

一、单个选择器 选择器是jQuery的核心。 一个选择器写出来类似$(#dom-id)。 美元符号定义 jQuery 为什么jQuery要发明选择器&#xff1f;回顾一下DOM操作中我们经常使用的代码&#xff1a; // 按ID查找&#xff1a; var a document.getElementById(dom-id);// 按tag查找&am…

软考 系统架构设计师系列知识点之大数据设计理论与实践(8)

接前一篇文章&#xff1a;软考 系统架构设计师系列知识点之大数据设计理论与实践&#xff08;7&#xff09; 所属章节&#xff1a; 第19章. 大数据架构设计理论与实践 第3节 Lambda架构 19.3.3 Lambda架构介绍 1. 批处理层 2. 加速层 对加速层批处理视图建立索引&#xff0c…

【shell】利用k9s和config文件进入k8s集群脚本

1、需要自行安装k9s 2、config文件放在home的.kube隐藏文件夹下 #!/bin/bash# define log & color readonly FG_GREY"30" #灰色 readonly FG_RED"31" readonly FG_GREEN"32" readonly FG_YELLOW"33" readonly FG_BLU…

【数组】【自定义排序】Leetcode 56. 合并区间

【数组】【自定义排序】Leetcode 56. 合并区间 解法1 ---------------&#x1f388;&#x1f388;56. 合并区间 题目链接&#x1f388;&#x1f388;------------------- 解法1 进行二维数组按照第一维度升序排序&#xff1a;Arrays.sort( nums, (o1,o2) -> o1[0]-o2[0] ) …

使用YOLOv8训练自己的目标检测数据集(VOC格式/COCO格式)

yolov8训练自己的数据集 1. 下载项目2. 搭建环境3. 数据集格式转换3.1 VOC格式转YOLO格式3.2 COCO格式转YOLO格式 4. 训练数据5. 推理预测6. 模型导出 1. 下载项目 git clone https://github.com/ultralytics/ultralytics.git2. 搭建环境 conda create --name ultralytics py…

Spring核心容器总结

2.2 核心容器总结 2.2.1 容器相关 BeanFactory是IoC容器的顶层接口&#xff0c;初始化BeanFactory对象时&#xff0c;加载的bean延迟加载 ApplicationContext接口是Spring容器的核心接口&#xff0c;初始化时bean立即加载 ApplicationContext接口提供基础的bean操作相关方法…

SQL系统函数知识点梳理(Oracle)

这里写目录标题 函数系统函数转换函数to_date()to_char()将数值转换成字符格式 添加货币符号将日期转换成字符 其他不常用的转换函数 字符型函数连接函数大小写转换函数大写转换小写转换首字母大写&#xff0c;其余的小写 替换函数去除空格函数截取函数填充函数获取字符长度函数…

什么是Rust语言?探索安全系统编程的未来

&#x1f680; 什么是Rust语言&#xff1f;探索安全系统编程的未来 文章目录 &#x1f680; 什么是Rust语言&#xff1f;探索安全系统编程的未来摘要引言正文&#x1f4d8; Rust语言简介&#x1f31f; 发展历程&#x1f3af; Rust的技术意义和优势&#x1f4e6; Rust解决的问题…