python学习记录5

embedded/2024/10/18 22:31:22/

1 描述程序

程序可以用三种方法来描述:自然语言、流程图、伪代码

自然语言:主要使用后IPO描述,即描述输入,描述过程、描述输出。

流程图:使用图形、文字、线条·描述程序

伪代码:介于汇编语言和自然语言中间的一组描述代码的语言

2 程序结构

程序分成三种结构:顺序结构、分支结构、循环结构。

(1)顺序结构

从上而下,一字不落地依次执行每条语句,例如输入输出语句

python">a = 3
b,c = 4,5
str = '你好'
print(a,b,c,str)
num = input()
print(num[0],num[1],num[2])

(2)分支结构

分支结构是指一个程序拥有许多代码块,系统先判断表达式的情况,根据表达式的值执行对应的代码块,其中if语句是最经典的分支结构,包括单分支的if,双分支的if-else,多分支的if-elif-else

分支语句的判断是顺序的,当第n个语句判断为False时才会判断下面第n+1个语句,否则执行第n个对应的代码块并且结束分支。

if语句中判断的是比较式,输出类型一般是布尔型,判定规则为:值为0则为False,不是0则为True。Python中每一个变量都有布尔值。

python">#单分支
print("输入你的分数:")
x = eval(input())
if(x>=60):print('恭喜你!及格了!')
#双分支
print('请输入一个数字')
x = eval(input('你输入的数字是:'))
if(x%2 != 0):print('你输入的是奇数')
else:print('你输入的是偶数')
#双分支简化
x = eval(input())
y = "你输入的是奇数" if not x%2 == 0 else "你输入的是偶数"
print(y)
#多分支
print("输入你的身高(米)")
high = eval(input())
print("输入你的身高(公斤)")
weight = eval(input())
BMI = weight/high**2
if(BMI<18.5):print("过瘦")
elif(18.5<=BMI and BMI<=24):print("正常")
else:print("过重")

同时,分支结构是可以嵌套的,即执行分支语句所对应的代码块可以是一个另外一个分支结构

python">#嵌套分支
print("请从以下选项选一个食材:1:小鸡 2:小猪")
x = eval(input())
print("请从以下选项选一个配菜:a:蘑菇 b:番茄")
y = input()
if(x == 1):if(y == "a"):print("今天吃小鸡炖蘑菇")else:print("今天吃小鸡炖番茄")
else:if (y == "a"):print("今天吃小猪炖蘑菇")else:print("今天吃小猪炖番茄")

虽然python中没有switch语句,但是有模式匹配语句match-case。这可以直接根据条件进行匹配

python">num = eval(input("你引体向上的个数\n"))
if(num>=10):x = 2
elif(num<10 and num>=5):x = 1
else:x = 0
match x:case 2:print("牛")case 1:print("还行")case 0:print("多练")

(3)循环结构

循环结构分为遍历循环for和无限循环while

遍历循环for

所谓遍历循环,就是将for语句中的变量从初始值到终值全部判断一遍,若是变量的值符合语句的条件则执行for下面的语句块,不一致则不执行,将所有值都遍历一遍后才跳出循环,执行完语句之后变量的值默认增加1(不一定是数值上的增加1,也有可能是序号增加什么的)。

for i in n个字符的字符串,将字符串序号从0到n的的每个字符遍历一遍,跳出字符串则终止循环,并且此时变量i无论原先是什么类型的,都会强制转换为字符串类型。

for循环经常与分支结构if嵌套使用。

for循环结构分为for-in和拓展结构for -in-else。for-else中else的语句块是当for循环的变量从初值到终值全部执行一遍时,即for循环未中断时执行的。

for循环还有一个配套函数range,range(i,j)的作用是生成从i到j的左闭右开集合的整数。

python">#字符串循环
i = 1#int类型
for i in "apple":print(i,type(i))#强制转换为str类型
#使用range函数
s = 1
for i in range(1,5):#计算4!s *= i
print(s)
#与if嵌套使用
s = 1
for i in range(1,101):if i%2!=0 :print(i,sep = '\t',end = " ") #输出从1到100所有的奇数
#for -else的使用1
for i in range(1,101):print(i)
else :print("输出完毕!")
#for -else的使用2:判断你输入的是不是素数
print("请输入一个整数:")
s = eval(input())
x = 2
for i in range(1,int(math.sqrt(s))):if s%x != 0 and s>1:x+=1else:break
else:print("你输入的是素数")
if x<=math.sqrt(s):print("你输入的不是素数")

for循环还可以遍历文件、组合等,这里不多叙述了。 

无限循环while

while循环与if类似,通过对条件语句的判定来决定是否执行之后的语句块。

while循环也经常与if嵌套使用。与if不同的是,while会对条件判断多次,因此必须将需要进行判断的变量初始化,并且在语句块中对这个变量进行可以逐渐跳出循环的改变,否则while会一直执行下去。

while进行判断输出的也是布尔值,结果为True则执行语句块,否则不执行。

while与for一样,也有一个拓展while-else。else的执行条件也是作为条件的变量从初值到终值被完整的判断过去。

python">#while循环
i = 0
while i<10:i+=1print(i)
import math
#while+if+for嵌套:输出1-100的所有素数
i = 2
while i<100:for s in range(2,i):if i%s == 0 :breakelse:print(i)i += 1
#while + else 模拟账号密码登入(只有5次机会)
print("输入你的账号:")
ac = input()
print("请输入你的密码")
pas = input()
s = 1
while s<5:if ac == "admin" and pas == "123456" :print("登入成功")breakelse:print("账号或者密码输入错误,你还有:",5-s,"次机会",sep = "")print("输入你的账号:")ac = input()print("请输入你的密码")pas = input()s+=1
else:print("登入失败")


http://www.ppmy.cn/embedded/121004.html

相关文章

基于JAVA+SpringBoot+Vue的社区养老服务平台

基于JAVASpringBootVue的社区养老服务平台 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末附源码下载链接&#x1f345; 哈…

工具笔记之生成图表和可视化的标记语言Mermaid

工具笔记之生成图表和可视化的标记语言Mermaid code review! 文章目录 工具笔记之生成图表和可视化的标记语言Mermaid1. 流程图2. 序列图3. 甘特图4. 类图5. 状态图6. 饼图使用方法 Mermaid 是一种用于生成图表和可视化的标记语言。它允许用户以简单的文本格式创建复杂的图表…

1.1.5 计算机网络的性能指标(下)

时延&#xff1a; 指数据从网络的一端传送到另一端所需的时间。有时候也称为延迟或迟延。 总时延发送时延传播时延处理时延排队时延 发送时延&#xff1a; 又名传输时延&#xff0c;节点将数据推向信道所花的时间 数据长度/发送速率 传播时延&#xff1a; 电磁波在信道…

蓝桥等级考试C++组七级真题-2022-04-23

PDF及答案回复:LQDKC720220423 单项选择题 1、C L7 (15分) 执行以下程序后&#xff0c;输出结果是( )。 int a5; int b a; cout << a << " "<< b;A 5 5 B 5 6 C 6 5 D 6 6 2、CL7(15分) 执行以下程序后&#xff0c;输出结果是() int k0; for(…

Linux篇之IO多路复用

文章目录 前言流IO操作IO阻塞多路IO多个流的IO请求处理水平触发边缘触发最后 前言 你好&#xff0c;我是醉墨居士&#xff0c;今天介绍一下Linux中的IO多路复用机制 流 流是一种用于在程序与外部数据源&#xff08;如文件、网络连接、内存等&#xff09;之间传输数据的机制&…

C++编程:实现简单的高精度时间日志记录小程序

0. 概述 为了检查是否存在系统时间跳变&#xff0c;本文使用C实现了一个简单的高精度时间日志记录小程序。该程序能够每隔指定时间&#xff08;默认40毫秒&#xff09;记录一次系统时间到文件中&#xff0c;并具备以下功能&#xff1a; 自定义时间间隔和文件名&#xff1a;通…

鸿蒙 如何退出 APP

terminateSelf() 停止Ability自身 在EntryAbility中这么使用 this.context.terminateSelf()在Pages页面中这么使用 import { common } from kit.AbilityKit (getContext(this) as common.UIAbilityContext)?.terminateSelf() 也可以直接封装&#xff1a; import common f…

初识算法 · 双指针(2)

目录 前言&#xff1a; 盛最多水的容器 题目解析&#xff1a; 算法原理&#xff1a; 算法编写&#xff1a; 有效三角形的个数 题目解析&#xff1a; 算法原理&#xff1a; 算法编写&#xff1a; 前言&#xff1a; 本文介绍两个题目&#xff0c;盛最多水的容器和有效三…