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("登入失败")
相关推荐
岑梓铭1 分钟前
(CentOs系统虚拟机)Standalone模式下安装部署“基于Python编写”的Spark框架
linux·python·spark·centos
游客52015 分钟前
opencv中的各种滤波器简介
图像处理·人工智能·python·opencv·计算机视觉
Eric.Lee202118 分钟前
moviepy将图片序列制作成视频并加载字幕 - python 实现
开发语言·python·音视频·moviepy·字幕视频合成·图像制作为视频
Dontla23 分钟前
vscode怎么设置anaconda python解释器(anaconda解释器、vscode解释器)
ide·vscode·python
biter008837 分钟前
opencv(15) OpenCV背景减除器(Background Subtractors)学习
人工智能·opencv·学习
qq_529025291 小时前
Torch.gather
python·深度学习·机器学习
数据小爬虫@1 小时前
如何高效利用Python爬虫按关键字搜索苏宁商品
开发语言·爬虫·python
Cachel wood2 小时前
python round四舍五入和decimal库精确四舍五入
java·linux·前端·数据库·vue.js·python·前端框架
Code哈哈笑2 小时前
【Java 学习】深度剖析Java多态:从向上转型到向下转型,解锁动态绑定的奥秘,让代码更优雅灵活
java·开发语言·学习
終不似少年遊*2 小时前
pyecharts
python·信息可视化·数据分析·学习笔记·pyecharts·使用技巧