程序的描述方式、程序的组织结构(顺序、选择、循环(水仙花))
一、程序的描述方式
**(1)IPO:**输入、处理、输出
**(2)流程图:**是用一系列图形、流程线和文字说明描述程序的基本操作
**伪代码:**介于自然语言和编程语言之间的一种算法描述语言,如果程序比较小,可以直接使用代码描述
// coding:utf-8
r = eval(input('请输入圆的半径:'))
area = 3.14*r*r //面积
perimeter = 2*3.14*r //周长
print('圆的 面积是:',area,'周长是:',perimeter)
二、程序的组织结构
(1)顺序结构:
按程序语句的自然顺序,从上到下,依次执行每条语句的程序。
赋值语句、输入/输出语句、模块导入语句
顺序结构的语句:
//赋值运算符的顺序 从右到左
name = '张三'
age = 200
a = b = c = d = 100 //链式赋值
a = b = c = d = 'room' //字符串分解赋值
print(a)
print(b)
print(c)
print(d)
//输出结果为【r o o m】
//输入输出也是典型的顺序结构,按顺序执行
name = input('请输入您的姓名:')
age = eval(input('请输入您的年龄:'))
luck_number = eval(input('请输入您的幸运数字:'))
print('姓名:',name)
print('年龄:',age)
print('幸运数字:',lucky_number)
(2)选择结构:
也叫分支结构,是按照条件选择执行不同的代码段
1、单分支结构:
单分支结构if的语法结构
执行流程:
如果表达式的值为True,就执行语句块,如果表达式的值为False,就跳过语句块,继续执行后面的代码。
number = eval(input('请输入您的6位中奖号码:'))
//使用if语句
if number == 987654: //等值判断
print('恭喜您中奖了!')
if number !=987654:
print('您未中奖!')
//以上if判断的表达式,是通过比较运算符的计算出来的,结果是布尔值类型的
n = 98 //赋值操作
if n%2: //98%2的余数是0,0的布尔值是False,非0的 布尔值为True
print(n,'是奇数') //由于98%2的余数为0,所以该行代码不执行
if not n%2: //98%2的余数是0,0的布尔值是False,not False的结果为True
print(n,'是偶数')
//如何判断一个字符串是非空字符串
x = input('请输入一个字符串:')
if x: //在Python中一切皆对象,每个对象都有一个布尔值,而非空字串的布尔值为True,空字符串的布尔值就为False
print('x是一个非空字符串')
//如何判断一个字符串是空字符串
x = input('请输入一个字符串:')
if not x: //空字符串的布尔值就为False,取反,not False的结果就是True
print('x是一个空字符串')
//表达式也可以是一个单纯的布尔型变量
flag = eval(input('请输入布尔类型的值(True或False):'))
if flag:
print('flag的值为True')
if not flag:
print('flag的值为False')
//使用if语句时,如果语句块中只有一句语句时,可以将语句块直接写在冒号的后面
a = 10
b = 5
if a>b:max=a //如果a的值比b大,就把a的值赋值给max
//语句块中只有一句,赋最大值
2、双分支结构:
双分支结构if…else…的语法结构
执行流程:如果表达式的值为True,就执行语句1,否则就执行语句2
number = eval(input('请输入您的6位中奖号码:'))
//使用if...else语句
if number == 987654: //等值判断
print('恭喜您中奖了!')
else:
print('您未中奖!')
//以上代码可以使用条件表达式进行简化
result = '恭喜您中奖了!' if numbber==987654 else '您未中本期大奖!'
print(result)
print('恭喜您中奖了!' if numbber==987654 else '您未中本期大奖!')
3、多分支结构:
// 多分支结构
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')
单分支结构、双分支结构和多分支结构在实际开发中是可以互相嵌套使用的,内部的分支结构将作为外层分支结构的语句块使用。
// 嵌套if的使用
answer = input('请问您喝酒了么?')
if answer=='y': //answer的值为y表示喝了
proof = eval(input('请输入您的酒精含量:'))
if proof<20:
print('构不成酒驾,祝您一路平安')
elif proof<80:
print('已构成酒驾,请不要开车了!')
else:
print('已达成醉驾,请千万不要开车!')
else:
print('没事儿,可以走了')
在使用and连接多个条件判断时,只有同时满足多个条件,才能执行 if 后面的语句块。
//使用and连接多个使用条件
user_name = input('请输入您的用户名:')
user_pwd = input('请输入您的密码:')
if user_name == 'ysj' and pwd == '88888':
print('登录成功!')
else:
print('您的用户名或密码不正确!')
在使用or连接多个条件判断时,只要满足多个条件中的一个,就可以执行 if 后面的语句块。
//使用or连接多个使用条件
score = eval(input('请输入您的分数:'))
if score<0 or score>100:
print('您输入的成绩有误!')
else:
print('您的成绩为:',score)
(3)循环结构:
在python中循环结构分为两类,一类是遍历循环结构for,一类是无限循环结构while。
1、Python3.11新特性—模式匹配
//
score = eval(input('请输入您的成绩等级:'))
match score:
case 'A':
print('优秀')
case 'B':
print('良好')
case 'C':
print('中等')
case 'D':
print('及格')
case 'E':
print('不及格')
2、遍历循环for的语句结构:
//遍历字符串
for i in 'hello':
print(i)
//range()函数,Python中的内置函数,产生一个(n,m)的整数序列,包含n,但是不包含m
for i in range(1,11):
print(i)
//【1 2 3 4 5 6 7 8 9 10】
//判断奇偶数
for i in range(1,11):
if i%2 == 0
print(i,'为偶数')
//计算累加和
sum = 0
for i in range(1,11):
sum += i //相当于sum = sum + i
print(sum)
//判断100到999之间的水仙花数
//譬如水仙花数 153 = 3*3*3 + 5*5*5 + 1*1*1
//个位数上的立方+十位数上的立方+百位数上的立方 = 这个数
for i in range(100,1000):
ge = i%10 //获取个位上的数字 153%10---->3
shi = i//10%10 //获取十位上的数字 153//10--->15 15%10--->5
bai = i//100 //获取百位上的数字 153//100---->1
if ge**3+shi**3+bai**3 = i:
print(i)
2、遍历循环的扩展形式
for…else…结构:
sum = 0 //用于存储累加和
for i in range(1,11):
s += i
else:
print('1-10之间的累加和为:',s)
3、无限循环结构
①无限循环while的语句结构
while循环的四个步骤:
(1)初始化变量
(2)条件判断
(3)语句块
(4)改变变量
//(1)初始化变量
answer = input('今天要上课么?y/n')
while answer == 'y': //(2)条件判断
print('好好学习 天天向上') //(3)语句块
//(4)改变变量
answer = input('今天要上课么?y/n')
//1-100之间的累加和
s = 0 //存储累加和
i = 1 //(1)初始化变量
while i<=100: //(2)条件判断
s += i //(3)语句块
i += 1 //(4)改变变量
print('1-100之间的累加和:',s)
②while…else…结构
无限循环while的扩展形式
//1-100之间的累加和
s = 0 //存储累加和
i = 1 //(1)初始化变量
while i<=100: //(2)条件判断
s += i //(3)语句块
i += 1 //(4)改变变量
else:
print('1-100之间的累加和:',s)