Python程序控制

一、程序的描述方式

1.1自然语言

(1)概念:自然语言就是使用人类语言、直接描述程序

(2)比如:之前提过的Input(输入)、Process(处理)、Output(输出)

要计算一个圆的面积和周长--->

1)输入:圆的半径r

2)处理:圆的面积-->S=圆周率乘半径的平方;圆周长-->L=2*圆周率*半径

3)输出:圆的面积S、圆的周长L

1.2流程图

(1)概念:用一系列图形、流程线和文字说明描述程序的基本操作和控制流程,主要适用于较短的算法。

(2)1.1中的例子:

1.3伪代码

(1)概念:伪代码是介于自然语言和编程语言之间的一种算法描述语言,如果程序比较小,可以直接使用代码描述

(2)代码:

python 复制代码
r=eval(input('请输入圆的半径:'))
S=3.14*r*r
L=3.14*2*r
print('圆的面积为:',round(S,2),'圆的周长为:',round(L,2))

输出结果:

二、 程序组织结构

2.1顺序结构

(1)概念:按照程序语句的自然顺序,从上到下,依次执行每条语句的程序。

赋值语句、输入输出语句、模块导入语句等都属于顺序结构的语句

(2)示例:

python 复制代码
#赋值运算的顺序 从右到左
name='小梁'#把小梁赋给name
age=21#把21赋给age
a,b,c,d=1,2,3,4
print(a,b,c,d)
a=b=c=d=11#链式赋值 把11赋给a,b,c,d
print(a,b,c,d)
a,b,c,d='room'#字符串赋值 r赋给a,o赋给b,o赋给c,m赋给d
print(a)
print(b)
print(c)
print(d)
print('-'*10,'输入/输出语句也是典型的顺序结构','-'*10)
#输入
name=input('请输入您的姓名:')
age=eval(input('请输入您的年龄:'))
id=eval(input('请输入您的学号:'))
#输出
print('姓名:'+name)
print('年龄:',age)
print('学号:',id)

输出结果:

2.2选择/分支结构

概念:选择结构也称分支结构,是按照条件选择执行不同的代码段

2.2.2单分支结构

  • 单分支结构if的语法结构:

if 表达式:

语句块

(1)执行流程

如果表达式的值为True,就执行语句块,如果表达式的值为False,就跳过语句块,继续执行后面的代码

(2)示例:

python 复制代码
number=eval(input('请输入您的6位号码:'))
#使用if语句
if number==998765:#等值判断
    print('您中奖了!')
if number!=998765:
    print('您未中奖')

print('---上面的if判断表达式,是通过比较运算符计算出来的,结果是布尔类型---')
n=98#赋值操作
if n%2:#98%2的余数是0,0的布尔值是False,则跳过该代码块
    print(n,'为偶数')#由于98%2的余数是0,所以该行代码不被执行

if not n%2:#98%2的余数是0,0的布尔值是False,not False的结果是True,结果为True可以执行
    print(n, '为偶数')

print('-----判断一个字符串是否是空字符串-----')
x=input('请输入一个字符串:')
if x:  #再python中一切皆对象,每个对象都有一个布尔值,非空字符串的布尔值为True,--->结果为True执行下面的代码块
    print('x是非空字符串')
if not x:   #空字符串的布尔值是False,not False 结果为True,--->执行下面的代码块
    print('x是空字符串')

print('----表达式也可以是一个单纯的布尔型变量----')
flag=eval(input('请输入一个布尔类型的值-->False or True'))
if flag: #为True的话,直接执行下面语句,False的话跳过下一行语句
    print('flag为True')
if not flag:  #为False的话,not false为True,则执行下面的语句
    print('flag为False')

print('---使用if语句,如果语句块中只有一句代码,可以将语句块直接写在冒号的后面---')
a=10
b=2
if a>b:max=a
print('a和b的最大值为:',max)

输出结果:

2.2.2双分支结构

  • 双分支结构if...else...语法结构:

if 表达式:

语句1

else:

语句2

(1)执行流程:

如果表达式的值为True,就执行语句块1,否则就执行语句2

(2)示例

python 复制代码
#是否中奖
number=eval(input('请输入您的6为号码:'))
if number==998765:
    print('恭喜您中奖了')
else:
    print('您未中将')

print('---以上代码可以使用条件表达式进行简化---')
result='您中奖了' if number==998765 else '您未中奖'
print(result)

print('您中奖了' if number==998765 else '未中奖')

输出结果:

2.2.3多分支结构

  • 多分支结构语法结构:

if 表达式1:

语句块1

elif 表达式2:

语句块2

elif 表达式n:

语句块n

else:

语句块n+1

(1)执行流程:

(else语句块不是必须的)

(2)示例:

python 复制代码
score=eval(input('请输入你的成绩:'))
if score<0 or score>100:
    print('成绩有误')
elif 0<=score<60:
    print('E')
elif 60<=score<70:
    print('D')
elif 70<=score<80:
    print('C')
elif 80<=score<90:
    print('B')
else:
    print('A')

输出结果:

2.2.4嵌套

单分支结构、双分支结构、多分支结构在实际开发过程中是可以相互嵌套使用的,内层的分支结构将作为外层分支结构的语句块使用。

示例:

python 复制代码
answer=input('请问,您喝酒了吗?')
if answer=='y':#y表示喝酒了
    proof=eval(input('请输入您的酒精值:'))
    if proof<20:
        print('没有构成酒驾,一路平安')
    elif proof<80:  #表示20<=proof<80
        print('已经构成酒驾,不要开车!!')
    else:
        print('已经构成醉驾,不要开车!!')
else:
    print('没喝酒,请把车开走')

输出结果:

2.2.5多个条件

当有多个条件的时候,使用and或者or进行连接。

  • 使用and进行连接--->当多个判断条件同时为True的时候,才能执行if语句块

(1)执行流程

(2)示例

python 复制代码
user_name=input('请输入您的用户名:')
pwd=input('请输入您的密码:')
if user_name=='小梁' and pwd=='Qw123':
    print('登录成功')
else:
    print('用户名或者密码不正确')

输出结果:

  • 使用or进行连接--->多个表达式只要有一个结果为True,就可以执行if后面的语句块

(1)执行流程

(2)示例

python 复制代码
score=eval(input('请输入您的成绩:'))
if score<0 or score>100:
    print('成绩无效')
else:
    print('成绩是:',score)

输出结果:

补充:Python3.11有一个特性--->模式匹配,在其他版本中是没有的

安装3.11版本的可以输入下列代码:

python 复制代码
score=input('请输入成绩等级:')
match score:
    case 'A':
        print('优秀')
    case 'B':
        print('良好')
    case 'C':
        print('中等')
    case 'D':
        print('及格')
    case 'E':
        print('不及格')

2.3循环结构

循环结构请看下节!!!

相关推荐
&岁月不待人&5 分钟前
Kotlin by lazy和lateinit的使用及区别
android·开发语言·kotlin
StayInLove8 分钟前
G1垃圾回收器日志详解
java·开发语言
无尽的大道16 分钟前
Java字符串深度解析:String的实现、常量池与性能优化
java·开发语言·性能优化
爱吃生蚝的于勒19 分钟前
深入学习指针(5)!!!!!!!!!!!!!!!
c语言·开发语言·数据结构·学习·计算机网络·算法
binishuaio29 分钟前
Java 第11天 (git版本控制器基础用法)
java·开发语言·git
zz.YE31 分钟前
【Java SE】StringBuffer
java·开发语言
就是有点傻35 分钟前
WPF中的依赖属性
开发语言·wpf
洋24043 分钟前
C语言常用标准库函数
c语言·开发语言
进击的六角龙1 小时前
Python中处理Excel的基本概念(如工作簿、工作表等)
开发语言·python·excel
wrx繁星点点1 小时前
状态模式(State Pattern)详解
java·开发语言·ui·设计模式·状态模式