程序结构
程序三种结构
顺序
循环
分支
分支结构
分支结构基本语法
if 条件表达式:
语句1
语句2
语句3
…
注:
条件表达式就是计算结果必须为布尔值的表达式
表达式后面的冒号不能少
注意if后面出现的语句,如果属于if语句块,则必须同一个缩进等级
条件表达式结果为True执行if后面的缩进的语句块
# if 语句
# 如果我变得很有钱,我就要去环游世界
a = "我很有钱"
if a:
print("我要去环游世界")
print("迎娶白富美")
print("醒醒,白天还做什么梦,这日子还得过")
#我要去环游世界
#迎娶白富美
#醒醒,白天还做什么梦,这日子还得过
# if 语句二
age = 18
if age > 16:
print("可以喝酒了,小鬼")
print("别忘了,下次请我")
#可以喝酒了,小鬼
#别忘了,下次请我
注解:字符串的真假
只有空字符为False,其余全为True
双向分支
if…else…表达
语法结构:
if条件表达式:
语句1
语句2
…
else条件表达式:
语句1
语句2
…
双向分支有两个分支,当程序执行到if… else…语句的时jingjin候,一定会执行if或else中的一个,也仅执行一个。
缩进问题,if和else一个层级,其余语句一个层级
# input的作用是
# 1.在屏幕上输出括号内的字符串
# 2.接受用户输入的内容并返回到程序
# 3. input返回的内容一定是字符串类型
gender = input("请输入您的性别")
print(gender)
if gender == "男":
print("哟,喝酒不咯")
print("打游戏也行")
else:
print("哟,女娃娃啊,跟哥喝酒不咯")
print("来嘛,快活")
结果:
多路分支
很多分支的情况,叫多路分支
if 条件表达式:
语句1
语句2
…
elif条件表达式:
语句1
语句2
…
elif条件表达式:
语句1
语句2
…
else条件表达式
语句1
语句2
…
注:elif可以由好多个,根据实际情况
else可选
多路分支最多只会执行一种情况
#考试成绩判断
#成绩由用户输入
# 90分以上: 优
#80-90:良
#70-80:中
#60-70:平
#60:我没你这个学生
#输入成绩需要用到input函数
#input输入的值全部是字符串类型
score = input("请输入成绩,必须是数字")
#解决输入是字符串的问题
score = int(score)
if score >= 90:
print("优")
elif score >= 80:
print("良")
elif score >= 70:
print("中")
elif score >= 60:
prin("平")
else:
print("我没有你这个学生")
if语句补充
if语句可以嵌套使用,但不推荐
python没有switch-case语句
循环语句
重复执行某一个固定的动作或者任务
分类:
1,for
2 ,while
for循环
语法
for变量 in序列:
语句1
语句2
…
# 比如[1,2,3,4,5,6,7]
list_one =[1,2,3,4,5,6,7]
for shuzi in list_one:
print(shuzi)
print(shuzi + 100)
print(shuzi + 1000)
###
1
101
1001
2
102
1002
3
103
1003
4
104
1004
5
105
1005
6
106
1006
7
107
1007
####
for-else语句
for循环结束的时候,有时候需要执行一些收尾工作,
else语句是可选
# for-else 语句
# 打印学生姓名列表
#如果是飒飒,那肯定是我最喜欢的
#如果没有在列表中或者列表结束了,我们需要打印出提示语,表示"高兴"
stu_list = ["绒绒", "须须", "壳哥", "障障","主唱大人"]
for stu in stu_list:
if stu == "飒飒":
print("是飒飒啊啊啊啊(慈祥的眼光")
else:
print("不是飒飒啊(虽然你也不错,暗淡的眼光")
else:
print("我高兴啊啊啊啊啊,是飒飒哈哈哈")
####
不是飒飒啊(虽然你也不错,暗淡的眼光
不是飒飒啊(虽然你也不错,暗淡的眼光
不是飒飒啊(虽然你也不错,暗淡的眼光
不是飒飒啊(虽然你也不错,暗淡的眼光
不是飒飒啊(虽然你也不错,暗淡的眼光
我高兴啊啊啊啊啊,是飒飒哈哈哈
#####
break,continue,pass
break:无条件结束整个循环,简称循环猝死
continue:无条件结束整个循环,从新进入下一轮循环
#确定一个数字队列中是否包含数字7
#确定是否包含,只有找到一个即可确定,不需要再继续找下去了,使用使用break
dig_list = [1,212,3,123,545,56,33,7,2,17,7,5,7]
for dig in dig_list:
if dig == 7:
print("hhh,被我抓住了吧")
break
else:
print(dig)
#####
1
212
3
123
545
56
33
hhh,被我抓住了吧
#######
#continue 语句
#在数字1-10中,寻找所有偶数,找到后数字后打印偶数
dig_list = [1,2,3,4,5,6,7,8,9,10]
for dig in dig_list:
if dig % 2 ==1 :
continue
print(dig)
print("hhh,你是偶数哦")
#####
2
hhh,你是偶数哦
4
hhh,你是偶数哦
6
hhh,你是偶数哦
8
hhh,你是偶数哦
10
hhh,你是偶数哦
#####
pass:只是一个占位符,代表这句话啥也不干,没有跳过功能
# pass 案例
age = 19
if age > 19:
pass
else:
print("骚年,你太年轻了,好好学习吧")
#####骚年,你太年轻了,好好学习吧
# pass 案例2
ages = [2,223,234,21,45,5643,7875]
for age in ages:
pass
print(age)
###
2
223
234
21
45
5643
7875
###
补充:range函数
生成有序数列
生成数字队列可以定制
# range案例
# 生成一个1 到 100 的数字序列
#range的生成序列的两个面数字是左包括右不包括
dig_list = range(1,101)
for dig in dig_list:
print(dig)
# range案例2
# 打印从1 到 9 的数字
for i in range(1,10):
print(i)
whlie循环
一个循环语句
表示当条件成立的时候,就循环,适应于不知道具体循环次数,但能确定在某个就循环
while语法:
while条件表达式:
语句块
另外一种表达式:
while条件表达式:
语句1
else:
语句2
# 年利率问题
# 如果说年利率是6.7%, 本利是每年翻滚,则多少年后本钱会翻倍
benqian = 10000
year = 0 # 存放需要的翻本的年数
while benqian < 20000:
benqian = benqian * (1 + 0.067)
year += 1 # 相当于 year = year + 1
print("第{0}年金额为{1}元".format(year,benqian))