python控制语句教程_python 流程控制语句

1、基本概念

1.1 流程控制语句

流程控制语句就是按照一定的步骤来实现某些功能的语句

python 中主要的流程控制语句:选择语句、条件表达式、循环语句、跳转语句、pass 语句

1.2 程序结构

(1)顺序结构:按照代码的顺序依次执行

(2)选择结构:根据条件表达式的结果选择执行不同的语句

通常使用 if 语句实现

(3)循环结构:在一定条件下反复执行某段程序的流程结构

2、if 语句

2.1 简单的 if 语句

语法:如果符合条件,则...

if 表达式:

语句块

# 实例:# -*- coding:utf-8 -*-

# version:python3.7

number = int(input("请输入number的值:"))

if number > 5:

print("number>5")

执行结果:

请输入number的值:6

number>5

2.2 if...else 语句

语法:如果符合条件,则...,否则...

if 表达式:

语句块1

else:

语句块2

# 实例:# -*- coding:utf-8 -*-

# version:python3.7

score = int(input("请输入你英语成绩:"))

if score >= 60:

print("你的英语成绩合格")

else:

print("你的英语成绩不合格")

执行结果:

请输入你英语成绩:56

你的英语成绩不合格

2.3 if...elif...else 语句

语法:如果符合条件,就...,否则,如果满足另一种条件,则...

if 表达式1:

语句块1

elif 表达式2:

语句块2

......

else: #如果都不满足则执行语句块n

语句块n

实例:

# -*- coding:utf-8 -*-

# version:python3.7

# 猜数游戏

number = 55

print("猜数字游戏!")

number_in = int(input("你猜的数字是:"))

if number_in == number:

print("你猜对了!")

elif number_in > number:

print("你猜的数字大了")

else:

print("你猜的数字小了")

执行结果:

猜数字游戏!

你猜的数字是:56

你猜的数字大了

实例:折中算法

# -*- coding:utf-8 -*-

# version:python3.7

# 输入一个最大5位的正整数,判断这是几位数

num = int(input("please enter this number:"))

if num >= 1000:

if num >= 10000:

print("该数为5位数")

else:

print("该数为4位数")

else:

if num >= 100:

print("该数为3位数")

elif num >= 10:

print("该数为2位数")

else:

print("该数为1位数")

注意1:如果已经定义了一个布尔类型的变量 flag,推荐使用如下判断语句:

if flag:

if not flag:

而不推荐使用如下判断语句:

if flag == True: #不推荐

if flag == False: #不推荐

注意2:判断变量是否等于数值时:

# 建议使用:

if 1== a

# 不建议使用:if a == 1,容易错写为

if a = 1

2.4 if 语句的嵌套

语法:嵌套语法可以有多种结合,此处列举一列如下

if 表达式1:

if 表达式2:

语句块2

else:

语句块3

else:

语句块1

# 实例:判断是否为酒后驾车# -*- coding:utf-8 -*-

# version:python3.7

print("为了您和家人的安全,严禁酒后驾车!")

proof = int(input("请输入每100毫升血液的酒精含量:"))

if proof < 20:

print("您还不构成饮酒驾车,可以开车,但请注意安全!")

else:

if 80 > proof >= 20:

print("已经达到酒后驾驶标准,请不要开车!")

else:

print("您已经达到醉酒驾驶标准,千万不要开车!!!")

执行结果1:

为了您和家人的安全,严禁酒后驾车!

请输入每100毫升血液的酒精含量:90

您已经达到醉酒驾驶标准,千万不要开车!!!

执行结果2:

为了您和家人的安全,严禁酒后驾车!

请输入每100毫升血液的酒精含量:19

您还不构成饮酒驾车,可以开车,但请注意安全!

3、循环语句

3.1 while 循环

一直重复,直到条件不满足时停止,语法:

while 条件表达式:

循环体

# 实例:while循环实现1+2+...+100

# -*- coding:utf-8 -*-

# version:python3.7

sum = 0

n = 0

while n <= 100:

sum = sum + n

n = += 1

print("1+2+...+100=",sum)

执行结果:

1+2+...+100= 5050

3.2 for 循环

一般重复一定次数,通常用于迭代、枚举或遍历,语法:

for 迭代变量 in 对象:

循环体

实例:for循环实现1+2+...+100# -*- coding:utf-8 -*- # version:python3.7

sum = 0 #保存累加结果的变量

for i in range(101): #range()函数实现数值循环:生成一系列连续整数

sum += i #实现累加

print("1+2+...+100=",sum)

执行结果:1+2+...+100= 5050

range() 函数实现数值循环

主要作用:生成一系列连续整数

基本语法:range(start,end,stop)

start 指起始值(包括)、end结束值(不包括)、stop

# range()实例:# -*- coding:utf-8 -*- # version:python3.7

for i in range(1,10,2): #输出1,3,5,7,9(从1开始到10结束,隔2个)

print(i,end=' ') #range默认输出到多行,end=' '指以空格分隔执行结果:1 3 5 7 9

for循环除了可以循环数值,也可以遍历字符串

# 实例:for循环遍历字符串

# -*- coding:utf-8 -*-

# version:python3.7

string = "我可以的"

print(string)

for ch in string:

print(ch)

执行结果:

我可以的

3.3 循环嵌套

# 语法1

while 条件表达式1:

while 条件表达式2:

循环体2

循环体1

# 语法2

while 条件表达式:

for 迭代变量 in 对象:

循环体2

循环体1

# 语法3

for 迭代变量 in 对象:

while 条件表达式:

循环体2

循环体1

# 语法4,5......

实例:使用循环嵌套,输出99乘法表

# -*- coding:utf-8 -*-

# version:python3.7

for i in range(1,10): #控制行数

for j in range(1,i+1): #输出与行数相等的列,range不包括结束值,所以i+1

print(str(j)+"X"+str(i)+"="+str(j*i)+"\t",end='') #\t:转义字符一个Tab键,end='':在一行输出

print("") #转行

执行结果:

1X1=1

1X2=2 2X2=4

1X3=3 2X3=6 3X3=9

1X4=4 2X4=8 3X4=12 4X4=16

1X5=5 2X5=10 3X5=15 4X5=20 5X5=25

1X6=6 2X6=12 3X6=18 4X6=24 5X6=30 6X6=36

1X7=7 2X7=14 3X7=21 4X7=28 5X7=35 6X7=42 7X7=49

1X8=8 2X8=16 3X8=24 4X8=32 5X8=40 6X8=48 7X8=56 8X8=64

1X9=9 2X9=18 3X9=27 4X9=36 5X9=45 6X9=54 7X9=63 8X9=72 9X9=81

4、跳转语句

4.1 break 语句

直接跳出循环

# 实例:电影院座位五行七列,你的座位为第二行第三列,请找出你的座位

# -*- coding:utf-8 -*-

# version:python3.7

for row in range(1,5):

print("当前所在排:",row)

if row == 2:

print("这是您座位所在排")

for column in range(1,8):

print("当前所在列:",column)

if column == 3:

print("这是您的座位")

break

break

执行结果:

当前所在排: 1

当前所在排: 2

这是您座位所在排

当前所在列: 1

当前所在列: 2

当前所在列: 3

这是您的座位# 如果不使用break跳转语句跳出循环,会将所有排数都打印一遍

4.2 continue 语句

不能跳出整个语句,只能退出本次循环,提前进入下次循环

# 实例:逢七过游戏(叫数游戏:遇到七的倍数和以七结尾的数过)

# -*- coding:utf-8 -*-

# version:python3.7

total = 99 #假定99次都过

for number in range(1,100): #从1循环到99

if number % 7 == 0: #是七的倍数

continue #继续下一次叫数

else:

string = str(number)

if string.endswith('7'): #判断是否以七结尾

continue #继续下一次循环

total -= 1 #可过次数-1

print("从1到99可以过",total,"次")

执行结果:

从1到99可以过 22 次

4.3 pass 语句

表示空语句,不做任何事情,起占位作用

# 实例:输出1-10之间的偶数,不是偶数的先使用pass空语句占位

# -*- coding:utf-8 -*-

# version:python3.7

for i in range(1,11):

if i % 2 == 0:

print(i,end=' ') #输出1-10之间的偶数,中间使用空格隔开

else:

pass #不是偶数的先占位

执行结果:

2 4 6 8 10

5、算法入门

5.1 打印九九乘法表

# -*- coding:utf-8 -*-

# version:python3.7

for i in range(1, 10):

for j in range(1, i+1):

print("{}X{}={}".format(j, i, j*i), end='\t') #格式化字符串,后续篇幅讲解

print("")

#执行结果:

1X1=1

1X2=2 2X2=4

1X3=3 2X3=6 3X3=9

1X4=4 2X4=8 3X4=12 4X4=16

1X5=5 2X5=10 3X5=15 4X5=20 5X5=25

1X6=6 2X6=12 3X6=18 4X6=24 5X6=30 6X6=36

1X7=7 2X7=14 3X7=21 4X7=28 5X7=35 6X7=42 7X7=49

1X8=8 2X8=16 3X8=24 4X8=32 5X8=40 6X8=48 7X8=56 8X8=64

1X9=9 2X9=18 3X9=27 4X9=36 5X9=45 6X9=54 7X9=63 8X9=72 9X9=81

5.2 打印菱形

#分析:

* #3个空格 + 1个*号

*** #2个空格 + 3个*号

***** #1个空格 + 5个*号

******* #0个空格 + 7个*号

***** #1个空格 + 5个*号

*** #2个空格 + 3个*号

* #3个空格 + 1个*号

# -*- coding:utf-8 -*-

# version:python3.7

n = 7 #定义菱形最长行*数

e = n//2

for i in range(-e, e+1):

print("{}{}".format(abs(i)*" ", (n-(2*abs(i)))*"*"))

#执行结果:

*

***

*****

*******

*****

***

*

5.3 打印100以内的斐波那契数列

# 打印100以内的斐波那契数列# -*- coding:utf-8 -*-

# version:python3.7a2 = 1

a1 = 1

print(a2,end=' ')

print(a1,end=' ')

while True:

a = a2 + a1

if a > 100:

break

else:

print(a,end=' ')

a2 = a1

a1 = a执行结果:1 1 2 3 5 8 13 21 34 55 89

5.4 求斐波那契数列的第101项

# 求斐波那契数列的第101项

# -*- coding:utf-8 -*-

# version:python3.7

a2 = 1

a1 = 1

count = 2

while True:

a = a2 + a1

if count == 100:

print(a,end=' ')

break

count += 1

a2 = a1

a1 = a

执行结果:

573147844013817084101

5.5 求10万以内的所有质数

一般考虑时间复杂度,算法最优,但开始刚接触算法,先不用考虑这么多

# 先求20以内的所有质数,再求10万以内的所有质数

# -*- coding:utf-8 -*-# version:python3.7

for i in range(2,20):

count = 0

for j in range(1,i):

if i % j == 0:

count += 1

if count == 1:

print(i,end=' ')执行结果:2 3 5 7 11 13 17 19

来源:https://www.cnblogs.com/zyybky/p/12435931.html


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部