Python的控制流语句使用

Python的控制流语句使用

  • 判断语句 if分支
    • 示意图
    • 语法介绍
    • 注意事项
    • 示例
  • for循环
    • 示意图
    • 语法介绍
    • 列表推导式
    • 示例
  • while循环
    • 与for的区别
    • 语法介绍
    • 示例

判断语句 if分支

示意图

单、双、多分支:
在这里插入图片描述

语法介绍

# 单分支
if condition:
	expression
# 双分支
if condition:
	expression1
else:
	expression2
# 多分支
if condition1:
	expression1
elif condition2:
	expression2
else:
	expression3

注意事项

关键词(if、elif和else)所在的行末必须加上英文状态的冒号。
冒号所在行的下一行必须缩进(目的是为了代码的好看与好用)。
elif的正确写法 (错误写法:elseif else if )。
else后面永远不要写条件。

示例

1.二分支:返回一个数的绝对值

# 二分支:返回一个数的绝对值
x = -3
if x >= 0:
    print(x)
else:
	print(-1*x)

输出:

3

2.多分支:返回成绩对应的等级

# 多分支:返回成绩对应的等级
score = 68
if score < 60:
    print('不及格')
elif score < 70:
    print('合格')
elif score < 80:
    print('良好')
else:
	print('优秀')

输出:

合格

3.使用input函数输入一个整数,并判断该整数是否与7相关(可被7整除或含7字样的整数)。

# 使用input函数输入一个整数,并判断该整数是否与7相关(可被7整除或含7字样的整数)
number = input('请输入一个整数:')
if (int(number) % 7 == 0) | (number.find('7') != -1):
    print('与7相关')
else:
    print('与7不相关')

输出:

请输入一个整数:28
与7相关
请输入一个整数:8
与7不相关

4.使用input函数输入一个身份证号码,并提取出出生日期。

# 使用input函数输入一个身份证号码,并提取出出生日期
ID = input('请输入身份证号码:')
if len(ID) == 18:
    birthday = ID[6:14]
    print(birthday)
elif len(ID) == 15:
    birthday = 19+ID[6:12]
    print(birthday)
else:
    print('请重新输入身份证号码')

输出:

请输入身份证号码:123456789987654321
78998765

5.使用input函数输入一个身份证号码,并识别性别
18位身份证号性别是倒数第二位
15位身份证号码性别是倒数第一位
(偶数为女,奇数为男)

# 使用input函数输入一个身份证号码,并识别性别;
ID = input('请输入身份证号码:')
if len(ID) == 18:
    if int(ID[-2]) % 2 == 0:
        print('女')
    else:
        print('男')
elif len(ID) == 15:
    if int(ID[-1]) % 2 == 0:
        print('女')
    else:
        print('男')
else:
    print('请重新输入身份证号码')

输出:

请输入身份证号码:123456789987654321

请输入身份证号码:123456789012345

for循环

示意图

对于for循环来说,就是把可迭代对象中的元素(如列表中的每一个元素)通过漏斗的小口依次倒入之后的执行语句中。
在这里插入图片描述

语法介绍

for i in iterable:
	if condition:
		expression
	elif condition:
		expression
	else:
		expression

列表推导式

语法介绍
[expression for i in iterable if condition]
注意:
• expression就是对每一个元素的具体操作表达式
• iterable是某个可迭代对象,如列表、元组或字符串等
• if condition是对每一个元素做分支判断,如果条件符合,则expression操作对应的元素

示例

1.将列表中的每个元素做平方加1处理

# 将列表中的每个元素做平方加1处理
list6 = [1,5,2,8,10,13,17,4,6]
result = []
for i in list6:
    y = i ** 2 + 1
    result.append(y)
print(result)

输出:

[2, 26, 5, 65, 101, 170, 290, 17, 37]

2.计算1到100之间的偶数和

# 计算1到100之间的偶数和
s1_100 = 0
for i in range(1,101):
    if i % 2 == 0:
        s1_100 = s1_100 + i
    else:
        pass
print('1到100之间的偶数和为%d'%s1_100)

输出:

1到100之间的偶数和为2550

3.对列表中的偶数做三次方减10的处理

# 对列表中的偶数做三次方减9的处理
list7 = [3,1,18,13,22,17,23,14,19,28,16]
result = [i ** 3 - 9 for i in list7 if i % 2 == 0]
print(result)

输出:

[5823, 10639, 2735, 21943, 4087]

4.区别列表中所有含”e”字母的单词,列表如下:
[‘one’,‘two’,‘three’,‘four’,‘five’,‘six’,‘seven’,‘eight’,‘nine’]

list = ['one','two','three','four','five','six','seven','eight','nine']
res = []
for i in list:
    if i.find('e') != -1:
        res.append(i)
print(res)

输出:

[‘one’, ‘three’, ‘five’, ‘seven’, ‘eight’, ‘nine’]

5.将列表的中的元素做平方减5的操作,列表如下:
[10,23,16,11,14,18,21,25,17,22,19]

list = [10,23,16,11,14,18,21,25,17,22,19]
res = []
for i in list:
    res.append(i**2-5)
print(res)

输出:

[95, 524, 251, 116, 191, 319, 436, 620, 284, 479, 356]

6.统计列表中各元素的频次,并以字典形式存储统计结果,列表如下:
[‘A’,‘C’,‘A’,‘C’,‘B’,‘C’,‘A’,‘A’,‘B’,‘C’]

list = ['A','C','A','C','B','C','A','A','B','C']
res = {}
for i in list:
    res[i] = list.count(i) # count()为统计数目函数
print(res)

输出:

{‘A’: 4, ‘C’: 4, ‘B’: 2}

优化(减少循环次数):

list = ['A','C','A','C','B','C','A','A','B','C']
res = {}
for i in set(list): # set()为几何函数,可以进行排重,从而减少循环数目
    res[i] = list.count(i) # count()为统计数目函数
print(res)

while循环

与for的区别

绝大多数场景下,while循环与for循环是可以互相替代的。
如果存在明确的被迭代对象(如列表、元组、字符串等),可优先使用for循环。
如果不存在明确的被迭代对象,使用while循环将会更加地简单。

语法介绍

while condition:
	if condition1:
		expression1
	elif condition2:
		expression2
	else:
		expression3

示例

首先进行一个示例对比
对于for循环:

# 使用for循环登录某手机银行APP – 已知登录总次数的情况
for i in range(1,6):
    user = input('请输入用户名:')
    password = int(input('请输入密码:'))
    if (user == 'test') & (password == 123):
        print('登录成功!')
        break
    else:
        if i < 5:
            print('错误!您今日还剩%d次输入机会。' %(5-i))
        else:
            print('请24小时后再尝试登录!')

输出:

请输入用户名:123
请输入密码:123
错误!您今日还剩4次输入机会。
请输入用户名:145
请输入密码:123
错误!您今日还剩3次输入机会。
请输入用户名:test
请输入密码:123
登录成功!

对于while循环:

# 使用while循环登录某邮箱账号  -- 无限次登录次数的情况
while True:
    user = input('请输入用户名:')
    password = int(input('请输入密码:'))
    if (user == 'test') & (password == 123):
        print('登录成功!')
        break
    else:
        print('您输入的用户名或密码错误!')

输出:

请输入用户名:123
请输入密码:123
您输入的用户名或密码错误!
请输入用户名:145
请输入密码:123
您输入的用户名或密码错误!
请输入用户名:test
请输入密码:123
登录成功!

1.计算等差数列3n+5的前多少项和不超过1000;

s = 0
n = 0
while s <= 1000:
    n += 1
    s += 3*n+5
    print(n,'--->',s)
print(n-1)

输出:

1 —> 8
2 —> 19
3 —> 33
4 —> 50
5 —> 70
6 —> 93
7 —> 119
8 —> 148
9 —> 180
10 —> 215
11 —> 253
12 —> 294
13 —> 338
14 —> 385
15 —> 435
16 —> 488
17 —> 544
18 —> 603
19 —> 665
20 —> 730
21 —> 798
22 —> 869
23 —> 943
24 —> 1020
23

2.猜数字游戏,给定整数范围,直到猜中为止

import random # 生成随机函数
number = random.randint(10,30) #生成10-30的随机整数
while True:
    guess = input('请输入一个10-30的整数:')
    if number == int(guess):
        print('恭喜你猜中了')
        break
    elif int(guess) < number:
        print('偏小')
    else:
        print('偏大')

输出:

请输入一个10-30的整数:25
偏大
请输入一个10-30的整数:20
偏大
请输入一个10-30的整数:15
偏大
请输入一个10-30的整数:10
恭喜你猜中了

优化(自己设置上下限制+可以看见变化的上下限):

import random # 生成随机函数
min = int(input('范围最小值:'))
max = int(input('范围最大值:'))
number = random.randint(min,max) #生成10-30的随机整数
while True:
    guess = input('请在{}~{}之间猜一个整数:'.format(min,max))
    if number == int(guess):
        print('恭喜你猜中了')
        break
    elif int(guess) < number:
        print('偏小')
        min = guess
    else:
        print('偏大')
        max = guess

输出:

范围最小值:20
范围最大值:60
请在20~60之间猜一个整数:30
偏小
请在30~60之间猜一个整数:50
偏小
请在50~60之间猜一个整数:59
偏大
请在50~59之间猜一个整数:56
偏大
请在50~56之间猜一个整数:55
偏大
请在50~55之间猜一个整数:54
偏大
请在50~54之间猜一个整数:52
恭喜你猜中了

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【C语言】结构体

目录 1. 前言2. 结构体类型的声明2.1 结构体的概念2.2 结构的创建2.3 特殊的声明2.4 结构的自引用 3. 结构成员访问操作符4. 结构体内存对齐4.1 对齐规则4.2 为什么存在内存对齐&#xff1f;4.3 修改默认对齐数 5. 结构体传参6. 结构体实现位段6.1 什么是位段6.2 位段的内存分配…

蓝牙概述及基本架构介绍

蓝牙概述及基本架构介绍 1. 概述1.1 蓝牙的概念1.2 蓝牙的发展历程1.3 蓝牙技术概述1.3.1 Basic Rate(BR)1.3.2 Low Energy&#xff08;LE&#xff09; 2. 蓝牙的基本架构2.1 芯片架构2.2 协议架构2.2.1 官方协议中所展示的蓝牙协议架构2.2.1.1 全局分析2.2.1.2 局部分析 2.2.2…

android自定义桌面应用

android自定义桌面应用 这篇文章主要讲下自定义桌面应用. 效果主要是调用packageManager来获取当前所有的程序,并在自定义桌面程序中展示,并支持跳转. 主要的代码如下: 1.manifest声明 <activity android:name".MainActivity"><intent-filter><ac…

【Spring Boot】Swagger的常用注解

在Swagger的开发过程中&#xff0c;我们需要在Controller代码等处添加相应的注解&#xff0c;以便可以提高生成的接口文档的可读性为了解决这些问题&#xff0c;Swagger提供了很多的注解&#xff0c;通过这些注解&#xff0c;我们可以更好更清晰的描述我们的接口&#xff0c;包…

如何运用AppLink平台中的数据连接器组件

AppLink平台组件组成 AppLink平台组件分成三个板块触发事件组件、基础组件和数据连接器 数据连接器组件里面有10个组件&#xff0c;目前也在不断新增更多的数据连接器&#xff0c;那他们在AppLink平台里的原理、触发动作以及怎么使用呢&#xff1f;接下来用MySQL和TimescaleD…

探索接口测试:SOAP、RestFul规则、JMeter及市面上的接口测试工具

引言 在当今软件开发领域&#xff0c;接口测试扮演着至关重要的角色。随着系统变得日益复杂和互联&#xff0c;对于内部和外部接口的测试变得愈发关键。接口测试不仅仅是验证接口的正确性&#xff0c;更是确保系统的稳定性、安全性和性能优越性的关键一环。 本篇博客将带您深入…

2024 年应该使用 Bun、Node.js 还是 Deno

2024 年应该使用 Bun、Node.js 还是 Deno 到 2024 年&#xff0c;构建基于 JavaScript 的现代 API 相对简单。我们可以使用Express.js等库并在几分钟内启动可用的 API。但是&#xff0c;现在最具挑战性的部分是选择正确的 JavaScript 引擎。 目前主流的三个运行时是&#xff…

【Redis缓存】RedisTemplate如何获取符合要求的key,批量获取key

RedisTemplate如何获取符合要求的key,批量获取key 一、方法/命令二、数据使用 一、方法/命令 如果使用命令的形式&#xff0c;输入以下命令即可 keys *如果使用RedisTemplate&#xff0c;则方法为 redisTemplate.keys()获取所有符合条件的key。 二、数据使用 redis中缓存了…

西南科技大学数字电子技术实验一(数字信号基本参数与逻辑门电路功能测试及FPGA 实现 )预习报告

手写报告稍微认真点写&#xff0c;80随便有 目录 一、计算/设计过程 1、通过虚拟示波器观察和测量信号 2、通过实际电路&#xff08;电阻、开关、发光二极管&#xff09;模拟逻辑门电路 二、画出并填写实验指导书上的预表 三、画出并填写实验指导书上的虚表 四、粘贴原理…

Kafka 保证消息消费全局顺序性

当有消息被生产出来的时候&#xff0c;如果没有指定分区或者指定 key &#xff0c;那么消费会按照【轮询】的方式均匀地分配到所有可用分区中&#xff0c;但不一定按照分区顺序来分配 我们知道&#xff0c;在 Kafka 中消费者可以订阅一个或多个主题&#xff0c;并被分配一个或多…

前端页面带值跳转

前端页面带值跳转 querry>url searchParamers,url后附加参数&#xff0c;传递的值长度与有限vuex&#xff08;全局状态管理&#xff09;&#xff0c;搜索页面将关键词塞到状态中&#xff0c;所搜结果页从状态取值。 使用axios整合前后端 axios官网&#xff1a;axios 在前…

SpringCloud--分布式事务实现

一、分布式事务 首先要明白事务是指数据库中的一组操作&#xff0c;这些操作要么全部成功执行&#xff0c;要么全部不执行&#xff0c;以保持数据的一致性和完整性。在本地事务中&#xff0c;也就是传统的单机事务&#xff0c;必须要满足原子性(Atomicity)、一致性(Consistenc…

计算机组成原理——存储器(主存容量扩展)

对于字扩展与位扩展的解释&#xff1a; 计算机原理中的字&#xff0c;位扩展&#xff0c;都给老子进来学&#xff0c;看不懂算我输&#xff01; 如果主存的容量无法满足 CPU 的需求&#xff0c;可以通过存储器扩展来解决&#xff0c;扩展的方式有两种&#xff1a; 主存的位数…

“职场中的‘特色人物’:与‘个性’领导和同事的碰撞与成长“

文章目录 每日一句正能量前言程序员是怎么和产品经理battle的&#xff1f;科班程序员非科班程序员 程序员的团队合作密码&#xff1a;协作与领导的艺术职场人际关系的技巧后记 每日一句正能量 乌云的背后是阳光&#xff0c;阳光的背后是彩虹。 前言 在职场中&#xff0c;我们都…

训练 CNN 对 CIFAR-10 数据中的图像进行分类

1. 加载 CIFAR-10 数据库 import keras from keras.datasets import cifar10# 加载预先处理的训练数据和测试数据 (x_train, y_train), (x_test, y_test) cifar10.load_data() 2. 可视化前 24 个训练图像 import numpy as np import matplotlib.pyplot as plt %matplotlib …

Python网络爬虫练习

爬取历年中国大学排名(前20名)&#xff0c;并随机选取一所高校画图展示其历年总分变化,并计算平均分&#xff0c;在图上展示该平均分直线&#xff1a; 代码如下&#xff1a; import matplotlib.pyplot as plt import pandas as pd import requests import randomdef main(yea…

蓝桥杯day01——根据给定数字划分数组

题目描述 给你一个下标从 0 开始的整数数组 nums 和一个整数 pivot 。请你将 nums 重新排列&#xff0c;使得以下条件均成立&#xff1a; 所有小于 pivot 的元素都出现在所有大于 pivot 的元素 之前 。所有等于 pivot 的元素都出现在小于和大于 pivot 的元素 中间 。小于 piv…

代码随想录算法训练营 ---第四十八天

第一题&#xff1a; 简介&#xff1a; 注&#xff1a;本题简介是我的思路&#xff0c;题解思路看下方。 动态规划五部曲&#xff1a; 1.确定dp数组的含义 //dp[i]表示 偷到第i家能偷到的最大金额 for(int i2;i<nums.size();i){if(i-3>0)dp[i] max(dp[i-2],dp[i-3])nu…

智慧城市交通大屏|助力解决城市交通问题

2017年起&#xff0c;数字孪生连续三年被Gartner列入“未来科技十大趋势”&#xff0c;由此可见数字孪生技术正屹立在数字化发展的风口之中。 数字孪生作为物理世界的数字映射&#xff0c;将流程、物体的信息利用数字技术实时映射到系统中&#xff0c;可以对某个设备、某个企业…

【挑战业余一周拿证】二、在云中计算 - 第 3 节 - Amazon EC2 定价

目录 第 3 节 - Amazon EC2 定价 一、按需 适用场景 二、Savings Plans 适用场景 三、预留实例 三种付款模式 四、Spot 实例 适用场景 五、专用主机 适用场景 关注订阅号 首页&#xff1a;【挑战业余一周拿证】AWS 认证云从业者 - 基础 课程目录&#xff1a;【挑…