程序结构
- 程序三种结构
- 顺序
- 循环
- 分支
分支结构
-
分支结构基本语法
if 条件表达式:
语句1
语句2
语句3
…… -
条件表达式就是计算结果必须为布尔值的表达式
-
表达式后面的冒号不能少
-
注意if后面的出现的语句,如果属于if语句块,则必须同一个缩进等级
-
条件表达式结果为True执行if后面的缩进的语句块
# if语句练习
# 如果你们都给我钱,我就发财了
a = "都买习题课"
# 字符串有内容就是真True,空字符串就是假False
if a:
print("我就发财了")
print("真开心")
print("还得生活")
b = ""
if b:
print("真假")
print("hahah")
c = " "
if c:
print("真假")
print("你猜猜")
我就发财了
真开心
还得生活
hahah
真假
你猜猜
# if 联系二
age = 19
if age > 16:
print("成年了")
print("没有")
成年了
没有
双向分支
-
if……else……表达
-
语法结构:
if 条件表达式: 语句1 语句2 …… else: 语句一 语句二 ……
a = "你猜猜"
if a:
print("我发财了")
else:
print("继续吃苦")
我发财了
# input的作用是
# 1. 在屏幕上输出括号内的字符串
# 2. 接受用户输入的内容并返回程序
# 3. input 返回的内容一定是字符串类型
# input 负责接受用户输入并把内容返回给变量
gender = input("请输入你的性别:man 偶然 woman")
# 打印输入的内容
print(gender)
if gender == "man":
print("zouzouzou")
else :
print("kankankan ")
请输入你的性别:man 偶然 womanman
man
zouzouzou
# 考试成绩判断
# 成绩由用户输入
# 90以上: 输出优秀
# 80-90: 良
# 70-80 中
# 60-70: 平
# 60 以下:输出:我没你这个
# input 输入的内容都是字符串
grade = input("请输入分数")
# 解决输入的字符串问题
grade = int(grade)
if grade > 90:
print("优秀")
if grade >80 and grade <90:
print("良")
if grade > 70 and grade < 80:
print("中")
if grade > 60 and grade < 70:
print("平")
if grade < 60 :
print("笨")
请输入分数88
良
多路分支
-
很多分支的情况,叫多路分支
if 条件表达式: 语句1 …… elif 条件表达式: 语句1 …… elif 条件表达式: 语句1 …… else 语句1 ……
-
elif 可以有多个根据实际情况
-
else 可选
-
多路分支最多只会执行一种情况
# input 输入的内容都是字符串
grade = input("请输入分数")
# 解决输入的字符串问题
grade = int(grade)
if grade >=90:
print("优秀")
elif grade >= 80 and grade <90:
print("良")
elif grade >= 70 and grade < 80:
print("中")
elif grade >= 60 and grade < 70:
print("平")
elif grade < 60:
print("笨")
#else:
# print("什么都不是")
if语句补充
- if语句可以嵌套使用,但不推荐
- python没有switch语句
循环语句
- 重复执行某一些固定的动作或者任务
- 分类
- for
- while
for 循环
-
语法
for 变量 in 序列: 语句一 语句二 ……
# 比如 [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
# 打印学生列表姓名
# 如果是jingjing,那肯定是你的最爱
# 如果是别的学生,要冷库拒绝他
stu_list = ['王大仙','张三','李四','王晓静']
for stu in stu_list:
if stu == '王晓静':
print('你干嘛去了')
else:
print('你走开吧')
你走开吧
你走开吧
你走开吧
你干嘛去了
for-else 语句
- for循环结束的时候,有时候需要执行一些收尾的工作,此时需要使用else语句
- else 语句是可选语句
stu_list = ['王大仙','张三','李四','王晓静']
for stu in stu_list:
if stu == "王晓静":
print("hello")
else:
print("hoho")
else:
print("===========")
hoho
hoho
hoho
hello
===========
while循环
-
一个循环语句
-
表示当条件成立的时候,就循环,适应于不知道具体循环次数,但能确定再某个条件成立的情况下就循环
-
while 语法:
while 条件表达式: 语句块 # 另一种表达方法 while 条件表达式: 语句块1 else: 语句块2
# 如果说年利率是6.7%,本利是每年翻滚,则多少年会翻倍
benqian = 10000
year = 0
while benqian < 20000:
benqian = benqian * (1 + 0.067)
year +=1
print(year)
# 年利率案例2
while benqian < 20000:
benqian = benqian * (1 + 0.067)
year +=1
else:
print(year)
11
11
break、continue、pass
- break: 无条件结束整个循环,简称循环猝死
- continue: 继续
- pass: 只是占位符号,代表这句话啥也不干,没有跳过功能
# 再一个数字队列中,寻找数字7,如果找到,打印出来即可,并且结束
dig_list = [3,4,5,6,7,8,9,1]
for dig in dig_list:
if dig == 7:
print("哈哈哈哈,可以了呀")
break
else:
print(dig)
3
4
5
6
哈哈哈哈,可以了呀
# continue语句练习
# 在数字1-10中,寻找所有偶数,找到偶数后打印偶数
dig_list = [3,4,5,6,7,8,9,1]
for dig in dig_list:
if dig % 2 == 0:
print(dig)
print("双数")
else:
continue
4
双数
6
双数
8
双数
# pass 案例一
age = 19
if age > 19:
pass
else:
print('还有旷么')
还有旷么
# pass 案例二
ages = [2,3,4,5,6,7,8,]
for age in ages:
pass
print(age)
2
3
4
5
6
7
8
range 函数
- 生成有序数列
- 生成数字队列可以定制
# range 案例1
# 生成一个从1到100的数字序列表
dig_list= range(0,21)
for dig in dig_list:
print(dig)
# 界限 左包括,右不包括, randint 是个特例
# range 函数python2和python3有大区别
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# range函数
for i in range(1,10):
print(i)
1
2
3
4
5
6
7
8
9