程序结构
•三种结构◾顺序
◾循环
◾分支
分支结构
•分支结构基本语法◾if (如果) 条件表达式:
◾语句1
◾语句2
◾语句3
◾…
•条件表达式就是计算机结果必须为 布尔值 的表达式
•表达式后面的:冒号不能少(英文输入法)
•注意if后面出现的语句,如果属于if语句块,则必须同一个缩进等级(4空格/1TAB键)
•条件表达式结果为 True 执行if后面的缩进语句块
# if 语句例子1
# 如果我和una一辈子不分开,我就太幸福了。
love1 = "我和una一辈子不分开"
if love1:
print ("我就太幸福了")
print ("我要让她幸福一辈子")
print ("我们都要幸福啊!")
# 字符串的真假:
#只有空字符串(长度为0的练空格都没有的)为False,其余为True
love2 = ""
if love2:
print ("我就太幸福了")
print ("我要让她幸福一辈子")
print ("我们都要幸福啊!")
love3 = " "
if love3:
print ("我就太幸福了")
print ("我要让她幸福一辈子")
print ("我们都要幸福啊!")
输出:
我就太幸福了
我要让她幸福一辈子
我们都要幸福啊!
我们都要幸福啊!
我就太幸福了
我要让她幸福一辈子
我们都要幸福啊!
双向分支
•if…else… 如果…就…
•语法结构:
◾if: 条件表达式◦语句1
◦语句2
◾else:◦语句1
◦语句2
# if 语句例子2
age = 19
if age > 18:
print ("可以去网吧")
else:
print ("禁止上网")
输出:可以去网吧
input 的作用
#1、在屏幕上输出括号内的字符串
#2、 接受用户输入的内容并返回到程序进行判断
#3、input返回的内容一定是字符串类型
input负责接受用户的输入并把内容返回给变量
gender = input("请输入你的性别")
# 打印输入的内容
print (gender)
if gender == "man":
print ("走抽烟喝酒打游戏去")
else:
print ("你是男是女啊")
输出:
请输入你的性别man
man
走抽烟喝酒打游戏去
#考试成绩判断
#成绩由用户输入
#90以上:输出优秀
#80-90;良
#70-80:中
#60-70:平
#60以下:输出:学渣
#输入成绩需要用到input函数
#input 输入的值全是字符串类型
score = input ("请输入你的成绩必须是数字")
#解决输入是字符串的问题
score = int (score)
if score >= 90:
print ("优秀")
if score >= 80 and score < 90:
print ("良")
if score >= 70 and score < 80:
print ("平")
if score < 60:
print ("学渣")
输出:
请输入你的成绩必须是数字100
优秀
多路分支
•就是很多分支/判断的情况,就叫多路分支
•elif语句允许检查多个表达式是否为TRUE,并在其中一个条件求值为TRUE时立即执行对应代码块。
•与else语句类似,elif语句是可选的。 但是,与else语句不同的是,else语句最多可以有一个语句,在if之后可以有任意数量的elif语句。
- if…elif…else
- 语法结构:
- if: 条件表达式
- 语句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:
print ("差")
else:
print("学渣")
请输入你的成绩必须是数字100
优秀
if 语句补充
•if 语句可以嵌套使用,但是不推荐如; ◾if score >= 90:
◾print (“优秀”)
◾if score >= 80 and score < 90:
◾print (“良”)
◾if score >= 70 and score < 80:
◾print (“平”)
◾if score < 60:
◾print (“学渣”)
•python里面没有switch语句
循环语句
•重复执行某个固定的动作或者任务叫做循环
•分类◾for
◾while
for 循环
•语法◾for 变量 in 序列:◦语句1
◦语句2 …
# for循环案例
#比如 [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+10)
print (shuzi+100)
#案例2
#如果是una,那就是我的最爱
#如果不是,就是普通人
xingming_list = ["abc","efg","una"]
for love in xingming_list:
if love == "una":
print("我的最爱")
else:
print ("普通人")
for-else语句
•for循环结束的时候,有时候需要执行一些收尾工作,此时需要使用else语句进行收尾
•else语句是可选的
#案例
#如果是una,那就是我的最爱
#如果不是,就是普通人
#如果没有una,就不再爱了
xingming_list = ["abc","efg","hij"]
for love in xingming_list:
if love == "una":
print("我的最爱")
else:
print ("普通人")
else:
print ("不再爱了")
break,continue,pass
•break: 无条件结束整个循环,简称循环猝死
•continue: 继续
•pass: 占位符 代表这句话啥也不干,但是不是跳过
# 确定一个数字队列中是否包含数字7
# 确定是否包含,只要找到1个7即可确定,不需要继续往下查找,使用 break进行收尾
dig_list = [1,2,7,3,4,7,5,6,7]
for dig in dig_list:
if dig == 7:
print ("找到了一个7")
break
else:
print (dig)
# continue 语句练习
# 在数字1-10中,寻找所有偶数,找到偶数后打印偶数
dig_list = [1,2,3,4,5,6,7,8,9,10]
'''
# continue案例1
'''
for dig in dig_list:
if dig % 2 == 0:
print (dig)
print ("偶数")
else:
continue
'''
# continue案例2
'''
for dig in dig_list:
if dig % 2 == 1:
print (dig)
print ("奇数")
else:
continue
# 以下代码和上面代码等价(一样)
for dig in dig_list:
if dig % 2 == 1:
continue
print (dig)
print ("奇数")
#pass案例1
age = 18
if age > 18:
pass
else:
print("未成年")
#pass案例2
shuzi = [1,2,3,4,5]
for aa in shuzi:
pass
print(aa)
while循环
•一个循环语句
•表示当条件成立的时候就循环,适应于不知道具体循环次数,但能确定在某个条件成立的情况下就循环
•while 语法◾while 条件表达式:◦语句1
另外一种表达方法
◾while 条件表达式:◦语句1
◾else:◦语句2
# 案例1
# 如果说年利率是6.7%,本利是每年翻滚,则多少年后本钱会翻倍
benjin = 10000
year = 0 #存放需要翻本的年数
while benjin <20000:
benjin = benjin * (1 + 0.067)
year += 1 #(缩写year=year+1)
print (year)
# 案例2
#该案例中循环没有被循环,改如何修改?
while benjin <20000:
benjin = benjin * (1 + 0.067)
year += 1 #(缩写year=year+1)
else:
print (year)
11
11
# 九九乘法表
# version 01
for o in range (1,10):#控制外循环,从1到9
for i in range (1,o + 1):#内循环,每次从第一个数字开始,打印到跟行数相同的数量
print (o * i,end=" ") #行是o 列是i
print ()
1
2 4
3 6 9
4 8 12 16
5 10 15 20 25
6 12 18 24 30 36
7 14 21 28 35 42 49
8 16 24 32 40 48 56 64
9 18 27 36 45 54 63 72 81
#使用函数打印九九乘法表
def jiujiu():
for o in range (1,10):#控制外循环,从1到9
for i in range (1,o + 1):#内循环,每次从第一个数字开始,打印到跟行数相同的数量
print (o * i,end=" ") #行是o 列是i
print ()
return None
jiujiu()
jiujiu()
1
2 4
3 6 9
4 8 12 16
5 10 15 20 25
6 12 18 24 30 36
7 14 21 28 35 42 49
8 16 24 32 40 48 56 64
9 18 27 36 45 54 63 72 81
1
2 4
3 6 9
4 8 12 16
5 10 15 20 25
6 12 18 24 30 36
7 14 21 28 35 42 49
8 16 24 32 40 48 56 64
9 18 27 36 45 54 63 72 81
#函数嵌套使用
def printline(line_num):
'''
line_num:代表行号
'''
for i in range(1, line_num + 1):
print (line_num * i,end = " ")
print ()
def jiujiu():
for o in range (1,10):
printline(o)
return None
jiujiu()
1
2 4
3 6 9
4 8 12 16
5 10 15 20 25
6 12 18 24 30 36
7 14 21 28 35 42 49
8 16 24 32 40 48 56 64
9 18 27 36 45 54 63 72 81