一、程序的描述方式
①自然语言②流程图③伪代码
二、程序的组织结构
①顺序结构 ②选择/分支结构 ③循环结构
1、顺序结构
2、选择结构
①单分支结构
number=eval(input('请输入您的6位中奖号码:'))
#使用if语句
if number==987654: #等值判断
print('恭喜您,中奖了!')
if number!=987654:
print('您未中本期大奖')
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, '是偶数')
print('-------判断一个字符串是否是空字符串')
x=input('请输入一个字符串')
if x: #在Python中一切皆对象,每个对象都有一个布尔值,而非空字符串的布尔值为True,空字符串的布尔值为False
print('x是一个非空字符串')
if not x: # 空字符串的布尔值为False,取反,not False的结果为True
print('x是一个空字符串')
print('------表达式可以是一个单纯对1布尔值变量------')
flag=eval(input('请输入一个布尔类型的值:True或False'))
if flag:
print('flag的值为True')
if not flag:
print('flag的值为False')
print('-------使用if语句时,如果语句块中只有一句代码,可以讲语句块直接写在冒号的后面----')
a=10
b=5
if a>b:max=a #语句块只有一句,赋最大值
print('a和b的最大值为:',max)
②双分支结构
#双分支结构
number=eval(input('请输入您的6位中奖号码:'))
#if...else
if number==987654:
print('恭喜您中奖了!')
else:
print('您未中本期大奖!')
print('-----以上代码可以使用条件表达式进行简化---')
result='恭喜您中奖了!'if number==987654 else'您未中本期大奖!'
print(result)
print('恭喜您中奖了!'if number==987654 else '您未中本期大奖!')
③多分支结构
#多分支结构
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')
请输入您的成绩:88
B
④嵌套使用
print('------嵌套使用-------')
answer=input('请问,您喝酒了吗?')
if answer =="y": #answer的值为y 表示喝酒了
proof=eval(input('请输入酒精含量:'))
if proof<20:
print('构不成酒驾,祝您一路平安')
elif proof<80: #20<=proof<80
print('已构成酒驾,请不要开车')
else:
print('已达到了醉驾标准,请千万不要开车')
else:
print('你走吧,没你事!')
------嵌套使用-------
请问,您喝酒了吗?y
请输入酒精含量:90
已达到了醉驾标准,请千万不要开车
附:and和or连接多个选择条件
3、循环结构
①for循环
#遍历字符串
for i in 'hello':
print(i)
#range()函数,Python中的内置函数,产生一个[n,m)的整数序列,包含n,但是不包含m
for i in range(1,11):
print(i)
if i%2==0:
print(i,'是偶数')
#计算1-10之间的累加值
s=0 #用于存储累加和
for i in range(1,11):
s+=i #相当于 s=s+i
print('1-10之间的累加和为:',s)
print('---------100到999之间的水仙花数---')
'''
153=3*3*3+5*5*5+1*1*1
'''
for i in range(100,1000):
sd=i%10 #获取个位上的数字 假设153%10 --->3
tens=i//10%10 #获取十位上的数字 153//10--->15 15%10---->5
hundred=i//100 #获取百位上的数字 153//100 --->1
#判断
if sd**3+tens**3+hundred**3==i:
print(i)
#扩展形式 for...else
s=0 #用于存储累加和
for i in range(1,11):
s+=i #相当于 s=s+i
else:
print('1-10之间的累加和为:',s)
#循环正常进行了10次如何执行else操作
h
e
l
l
o
1
2
2 是偶数
3
4
4 是偶数
5
6
6 是偶数
7
8
8 是偶数
9
10
10 是偶数
1-10之间的累加和为: 55
---------100到999之间的水仙花数---
153
370
371
407
②while循环
#无限循环while的使用
#(1)初始化变量
answer=input('今天要上课吗?y/n')
while answer=='y': #条件判断
print('好好学习,天天向上') #语句块
#(4)改变变量
answer=input('今天要上课吗?y/n')
#1-100之间的累加和
s=0 #存储累加和
i=1 #(1)初始化变量
while i<=100: #(2)条件判断
s+=i #(3)语句块
#(4)改变变量
i+=1 #相当于i=i+1
print('1-100之间的累加和:',s)
#无限循环的扩展形式:while-else结构
#1-100之间的累加和
s=0 #存储累加和
i=1 #(1)初始化变量
while i<=100: #(2)条件判断
s+=i #(3)语句块
#(4)改变变量
i+=1 #相当于i=i+1
else:
print('1-100之间的累加和:',s)