Python的控制流语句使用

news2024/11/17 3:51:09

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
恭喜你猜中了

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

儿童绘本故事:鱼小乐的海洋奇幻之旅

《鱼小乐的海洋奇幻之旅》Chapter 1: 美好的计划一个晴朗的日子&#xff0c;鱼小乐和她的同学们聚在一起&#xff0c;兴奋地计划着一场奇妙的冒险。他们决定一起前往珠海海洋王国&#xff0c;展开一场海洋奇幻之旅。On a sunny day, Fishy Joy and her classmates gathered tog…

《On Java》

文章目录 一、Java概述1.JVM、JRE和JDK的关系2.什么是Java程序的主类3.Java和C的区别 三、面向对象3.1 面向对象三大特性封装继承多态 3.2 基本类型默认值3.3 和 equals 四、操作符4.1 比特和字节4.2 位操作&^ 4.3 运算符Math.round()loat f3.4;是否正确 4.4 实战小于n的最…

uni-app x生成的安卓包,安装时,提示不兼容。解决方案

找到 manifest.json 进入&#xff1a;源码视图 代码 {"name" : "xxx康养","appid" : "__xxx6","description" : "xxx康养","versionName" : "1.0.12","versionCode" : 100012,&…

4.3-Linux网络命名空间

查看本机的netWork namespace ip netns list 删除netWork namespace ip netns delete netnsName 创建netWork namespace ip netns add test1 查看test1这个netWork namespace的ip信息&#xff1a; ip netns exec test1 ip a 可以在虚拟机上执行&#xff1a;ip link 同样&#…

【探索Linux】—— 强大的命令行工具 P.17(进程信号 —— 信号保存 | 阻塞信号 | sigprocmask() | sigpending() )

阅读导航 引言一、阻塞信号1. 信号相关常见概念&#xff08;1&#xff09;信号递达&#xff08;2&#xff09;信号未决&#xff08;3&#xff09;阻塞信号&#xff08;4&#xff09;忽略信号 2. 信号在内核中的表示⭕信号在内核中的表示示意图 3. sigset_t &#xff08;数据类型…

振弦式轴力计和振弦采集仪组成的安全监测解决方案

振弦式轴力计和振弦采集仪组成的安全监测解决方案 振弦式轴力计和振弦采集仪是一种常用的结构安全监测工具&#xff0c;可以用于评估建筑物、桥梁、隧道或其他结构的结构健康状态和安全性能。这种监测方案较为先进、精确&#xff0c;并且能够监测长期的结构反应&#xff0c;因此…

环境土壤物理Hydrus2D/3D模型实践技术应用

HYDRUS是基于Windows系统界面开发的环境土壤物理模拟软件&#xff0c;是用于模拟一维和多维变饱和多孔介质的水分运动、溶质&#xff08;污染物等&#xff09;运移、根系吸水和溶质吸收、以及热量传导等方面的强有力工具。HYDRUS还包括一个参数优化算法&#xff0c;用于各种土壤…

elFinder ZIP 参数注入导致命令注入 (CVE-2021-32682)

漏洞描述 elFinder 是一个用于 Web 的开源文件管理器&#xff0c;使用 jQuery UI 用 JavaScript 编写。 在 elFinder 2.1.48 及更早版本中发现一个参数注入漏洞。此漏洞可能允许攻击者在托管 elFinder PHP 连接器的服务器上执行任意命令&#xff0c;即使配置最少也是如此。这…

MySQL用得好好的,为何要转ES?

MySQL是一种关系型数据库&#xff0c;它可以高效地存储和查询结构化的数据。 ES是一种分布式搜索引擎&#xff0c;它可以快速地对海量的非结构化或半结构化的数据进行全文检索和分析。 MySQL 和 ES 的数据存储方式也不同。MySQL 中的数据通常是以关系型表的形式存储在磁盘上&…

第二十章(多线程)

一.线程的简介 Windows操作系统是多任务操作系统&#xff0c;它以进程为单位。一个进程是一个包含有自身地址的程序&#xff0c;每个独立执行的程序都称为进程。也就是说每个正在执行的程序都是一个进程。系统可以分配给每一个进程有一段有限的使用CPU的时间&#xff08;也可以…

Echarts tooltip配置项的属性 图表悬浮框

这个小图标就是tooltip的配置项 tooltip:{} //默认样式 自定义显示数据 如果没有自定义的属性可以 只是写data [1254,1551,574,10]… series: {//图表配置项 如大小&#xff0c;图表类型name: 图表名字,type: bar,//图表类型data: [{value: 454,time: 2012-11-12},{value: 898…

振南技术干货集:znFAT 硬刚日本的 FATFS 历险记(6)

注解目录 1、znFAT 的起源 1.1 源于论坛 &#xff08;那是一个论坛文化兴盛的年代。网友 DIY SDMP3 播放器激起了我的兴趣。&#xff09; 1.2 硬盘 MP3 推了我一把 &#xff08;“坤哥”的硬盘 MP3 播放器&#xff0c;让我深陷 FAT 文件系统不能自拔。&#xff09; 1.3 我…

Python用itertools.product函数生成10位的0,1组合

需求&#xff1a;有10个指标&#xff0c;每个指标有0、1两种结果&#xff0c;生成所有可能出现的情况。解决&#xff1a;基于数学知识&#xff0c;我们很容易知道总共有组合数为2^101024种 那么使用python我们该如何用代码实现呢&#xff1f; python中的函数为itertools.produ…

ArkUI 如何将$r(’app.string.xxx‘) 转成string字符串

一、正常引用字符串资源文件内容 在 ArkUI 中&#xff0c;string.json 中的字符串资源正常情况下使用如下方式引用&#xff1a; Entry Component struct LoginPage {build() {Column() {Text($r(app.string.title))}}}二、资源转string类型 上面的代码没问题是因为 Text(con…

283. 移动零(双指针)

一次遍历&#xff0c;j相当于遍历到第一个零元素&#xff0c;将其和非零元素i交换&#xff0c; 使用的是leetcode题解的动图 class Solution { public:void moveZeroes(vector<int>& nums) {int n nums.size();int j 0;for (int i 0; i < n; i) {if (nums[i]…

Java多线程核心技术二-synchronzied同步方法

1 概述 关键字synchronzied保障了原子性、可见性和有序性。 非线程安全问题会在多个线程对同一个对象中的同一个实例变量进行并发访问时发生&#xff0c;产生的后果就是“脏读”&#xff0c;也就是读取到的数据其实是被更改过的。而线程安全是指获取的实例变量的值是经过同步处…

坚鹏:中国人寿福建省公司当下宏观经济形势分析与二十大精神解读

中国人寿保险&#xff08;集团&#xff09;公司属国家大型金融保险企业&#xff0c;2016年中国人寿入主广发银行&#xff0c;开启保险、投资、银行三大板块协同发展新格局。2022年&#xff0c;集团公司合并营业收入站稳万亿平台&#xff1b;合并总资产突破6万亿元大关。中国人寿…

java学习part18抽象类

Java抽象类 详解-CSDN博客 111-面向对象(高级)-抽象类与抽象方法的使用_哔哩哔哩_bilibili 1.概念 2.抽象类 抽象类不能实例化&#xff0c;可以有属性&#xff0c;也可以有方法。 方法可以实现或者只声明不实现&#xff0c;要加一个abstract abstract class A{//定义一个抽…

操作系统 选择题 期末试题 考研真题 + 参考答案

1.&#xff08;考研真题&#xff0c;单项选择题&#xff09;单道批处理系统的主要缺点是&#xff08; &#xff09;。 A. CPU利用率不高 B.失去了交互性 C.不具备并行性 D.以上都不是 【参考答案】A 【解析】单道批处理系统的内存中只有一道程序&#xff0c;当该程序…

智能优化算法应用:基于郊狼算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于郊狼算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于郊狼算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.郊狼算法4.实验参数设定5.算法结果6.参考文献7.MATLAB…