程序结构
一、分支结构
- 1.分支结构的基本语法:
if 条件表达式:
语句块1
语句块2
语句块3
……
注意有个条件表达式后面有个:号,条件表达式必须为为布尔值的表达式,表达式为真执行后面语句块
注意缩进,必须是同一缩进才是同一语句块
# if案例
a = "我每天都锻炼"
if a: #只要字符串内有内容就为真。只有空字符串为假,就是"",里面什么都没有。但是" "为真,这是包含空字符。
print("我就会瘦的跟闪电一样") #如果a为真,就会输出下列语句块。
print("我就会跟黄俊华一样强壮")
print("你就想吧") #跟if语句平级,无论真不真都会输出。
- 2.双向分支:
if 条件表达式:
语句块1
语句块2
语句块3
……
else:
语句块1
语句块2
语句块3
……
为真就执行if后面的语句表达快,为假就执行else后面的语句块,只有二选一执行
# 双向分支案例
a = "我每天都锻炼"
if a:
print("我就会瘦的跟闪电一样")
print("我就会跟黄俊华一样强壮")
else:
print("那还有什么办法呢")
print("只能继续当一个快乐肥宅啦")
print("你就想吧")
- 3.input:
input负责接受用户输入并把内容返回给变量。返回的内容一定是字符串。
# input案例
gender = input("请输入你的性别") #程序执行后,下方会出现一个空格让用户输入,且现实“请输出你的性别”
if gender == "man": #判断gender这个变量是否等于"man",如果是就执行下列语句块
print("我就带你去网吧")
else: #不是就执行下列语句块
print("对不起,我们不约")
input返回的是字符串,必要时可以用到向下取整函数int来将字符串转化为整数。
# input案例2
# 考试成绩判断
# 90以上: 输出优秀
# 80-90:良
# 70-80:中
# 60-70:平
# 60以下: 输出:我没你这撒学僧
grades = int(input("请输入你的成绩")) #使用 int 对一个字符类型的数据进行强制类型转换时,要求输入的字符类型只能为整数,不能为浮点数。
if grades >= 90:
print("优")
if grades >= 80 and grades < 90:
print("良")
if grades >= 70 and grades < 80:
print("中")
if grades >= 60 and grades < 70:
print("差")
if grades < 60:
print("我没你这撒学僧")
4.多路分支
if 条件表达式:
语句块
elif:
语句块
elif:
语句块
n个elif
else:
语句块
elif为else if,即否则如果
# 多路分支案例
grades = int(input("请输出你的成绩"))
if grades >= 90:
print("A")
elif grades >= 80:
print("B")
elif grades >= 70:
print("C")
elif grades >= 60:
print("D")
elif grades < 60:
print("撒学僧")
二、循环结构
1.for循环
- 基本语法
for 变量 in 序列: (这里的意思对于序列里的每个内容,挨着挨着来)
语句块
list = [1,2,3]
for shuzi in list: #对面序列中的每一个数字1,2,3
print(shuzi) #都打印出他自己
print(shuzi+10) #都打印出他自己加10
# 结果就为1,11,2,12,3,13
list = ["黄俊华","李彧"]
for name in list:
if name == "李彧":
print("帅哥")
else:
print("麻瓜")
#结果为麻瓜。帅哥
- for…else…:
for 变量 in 序列:
语句块
else: (与for同级,即同缩进)
语句块
list = ["黄俊华""李彧""陈俊宇"]
for name in list: '''list中的每一个内容通过下面if语句,如果内容为"李彧",
结果就为帅哥,其他的内容就为"不太行".最后在序列中的内
容都循环完了过后,输出"就是这么忙自信"'''
if name == "李彧""
print("帅哥")
else:
print("不太行")
else:
print("就是这么自信")
#结果为不太行,帅哥,不太行,就是这么自信
2.循环中的一些补充(无论哪种循环都可以用)
- break:无条件停止循环
list = [666,777,111,8949,8498498498,777]
for shuzi in list:
if shuzi == 777:
print("seven的意志")
break '''确定序列中是否包含777,包含的话找到一个即可,就不需要继
续循环下去了。注意这里与上面的print是同缩进的'''
else:
print("不太行啊,小老弟")
#结果为不太行啊,小老弟;seven的意志 找到了777过后有break就无条件结束了循环。
- continue:立即结束本轮循环,进入下一次循环,后面是什么就不管了。
list = [1,2,3,4]
for a in list:
if a % 2 == 1: #如果为奇数,直接到下一轮循环。时偶数就继续执行。
continue
else:
print(a)
print("哈哈,被你找到了")
'''结果为
2
哈哈,被你找到了
4
哈哈,被你找到了
'''
- pass:只是一个占位符,没有跳过的意思。
- range函数: range(x,y)
生成一个有序的定制数列。
其数列左包括,右不包括。python中连个表示数字范围的一般就是左包括,右不包括,除了randint。
3.while循环: 表示当条件成立时就成立,适用于不知道循环多少次,但知道循环的条件的情况。
基本语法:
while 条件表达式:
语句块
或者是
while 条件表达式:
语句块
else:
语句块
#年利率是1%,本金为100000,复利算法算法。几年后本金翻倍?
base = 100000
year = 0
while base < 200000:
base = base * (1+0.01)
year += 1
else:
print(year)
三、顺序结构
按照顺序一步一步地来