python学习记录5

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+=1
    else:
        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+=1
    print(i)
import math
#while+if+for嵌套:输出1-100的所有素数
i = 2
while i<100:
    for s in range(2,i):
        if i%s == 0 :
            break
    else:
         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("登入成功")
        break
    else:
        print("账号或者密码输入错误,你还有:",5-s,"次机会",sep = "")
        print("输入你的账号:")
        ac = input()
        print("请输入你的密码")
        pas = input()
    s+=1
else:
    print("登入失败")
相关推荐
岳不谢15 分钟前
VPN技术-VPN简介学习笔记
网络·笔记·学习·华为
编程修仙22 分钟前
Collections工具类
linux·windows·python
海害嗨29 分钟前
阿里巴巴官方「SpringCloudAlibaba全彩学习手册」限时开源!
学习·开源
芝麻团坚果38 分钟前
对subprocess启动的子进程使用VSCode python debugger
linux·ide·python·subprocess·vscode debugger
EterNity_TiMe_1 小时前
【论文复现】神经网络的公式推导与代码实现
人工智能·python·深度学习·神经网络·数据分析·特征分析
Stara05111 小时前
Git推送+拉去+uwsgi+Nginx服务器部署项目
git·python·mysql·nginx·gitee·github·uwsgi
小A1591 小时前
STM32完全学习——使用SysTick精确延时(阻塞式)
stm32·嵌入式硬件·学习
hence..1 小时前
Vscode写markdown快速插入python代码
ide·vscode·python
小A1592 小时前
STM32完全学习——使用标准库点亮LED
stm32·嵌入式硬件·学习
朝九晚五ฺ2 小时前
【Linux探索学习】第十五弹——环境变量:深入解析操作系统中的进程环境变量
linux·运维·学习