python流程控制
python的三大流程为分支,循环,顺序。分支使用if语句实现,循环使用for或者while语句实现。
if条件分支语句
python条件语句是通过一条或者多条语句执行的结果(True /False)来决定执行的代码块。
- if单分支语句
if 逻辑语句:
语句(块)
demo:
print('Hello ,Python')
learning='python'
if learning == 'python':
print('我正在学习Python。')
print('Welldone.')
#输出
Hello ,Python
我正在学习Python。
Welldone.
- if双分支语句
if 逻辑语句:
语句(块)1
else:
语句(块)2
demo:
print('Hello ,Python')
learning=input('请输入你学习的编程语言:')
if learning == 'python':
print('我正在学习Python。')
else:
print('我在学习%s。'%(learning))
print('Welldone.')
#输出
Hello ,Python
请输入你学习的编程语言:C++
我在学习C++。
Welldone.
- if多分支语句
- elif:else if 缩写为elif。
if 逻辑语句1:
语句(块)1
elif 逻辑语句2:
语句(块)2
elif 逻辑语句3:
语句(块)3
...
elif 逻辑语句n:
语句(块)n-1
else:
语句(块)n
demo1:
grade = int(input('请输入你的分数:'))
if 90 <= grade <=100:
print('你的等级为A。')
elif 80 <= grade :
print('你的等级为B。')
elif 70 <= grade :
print('你的等级为C。')
elif 60 <= grade :
print('你的等级为D。')
elif 0<= grade :
print('你的等级为E。')
else:
print('输入错误!')
#输出
请输入你的分数:55
你的等级为E。
demo2:
def findnum():
for i in range(100,1000):
a = i // 100
b = int(i / 10) % 10
c = i % 10
if i == a ** 3 + b ** 3 + c ** 3:
print(i,end=' ')
number = int(input('请输入一个三位数:'))
a = number //100
b = int(number / 10 ) % 10
c = number % 10
if number == a**3+b**3+c**3:
print('这是一个水仙花数!')
else:
print('这不是一个水仙花数!')
print('水仙花数有:')
findnum()
#输出
请输入一个三位数:111
这不是一个水仙花数!
水仙花数有:
153 370 371 407
while语句
-
循环语句
- 所谓循环,就是用来执行部分代码在一定条件下重复执行的代码。
-
格式:
while 逻辑语句:
语句(块)
demo:
i = 0
while True:
print('I LOVE PYTHON')
i += 1
if i == 5:
break
#输出
I LOVE PYTHON
I LOVE PYTHON
I LOVE PYTHON
I LOVE PYTHON
I LOVE PYTHON
(1)利用while来打印1-100的数字
i = 0
while i<100:
i += 1
print(i, end=' ')
#输出
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
(2)利用while求1-100的和
i = 0
sum=0
while i<100:
i += 1
sum+=i
print('sum:',sum)
#输出
sum: 5050
(3)利用while求1-100内所有的偶数和
i = 0
sum=0
while i<100:
i += 2
sum+=i
print('sum:',sum)
#输出
sum: 2550
(4)求100-999内所有的水仙花数
i=100
while i<1000:
a = i // 100
b = int(i / 10) % 10
c = i % 10
if i == a ** 3 + b ** 3 + c ** 3:
print(i, end=' ')
i+=1
#输出
153 370 371 407
for 循环
python中for可以用来遍历任何序列(字符串,列表,元组,etc)
格式:
for i in 序列:
语句(块)
1.range()
range(end) #[0,end-1],end为整数
range(start,end) #[start,end-1],两个数均为整数,步长默认为1
range(start,end,step) #[start,end-1],步长为step,
demo:
for i in range(1,100,2):
print(i,end=' ')
#输出
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99
练习,题目如while操作:
(1)
for i in range(1,101):
print(i,end=' ' )
#输出
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
(2)
sum=0
for i in range(1,101):
sum+=i
print('sum:',sum)
#输出
sum: 5050
(3)
sum=0
for i in range(0,101,2):
sum+=i
print('sum:',sum)
#输出
sum: 2550
(4)
for i in range(100,1000):
a = i // 100
b = int(i / 10) % 10
c = i % 10
if i == a ** 3 + b ** 3 + c ** 3:
print(i,end=' ')
#输出
153 370 371 407
break和continue
-
break用来跳出循环语句
for i in range(1,10): print(i) if i == 5: break #输出 1 2 3 4 5
-
continue用来跳过本次循环,直接进行下一次循环
for i in range(1,10): if i == 5: continue print(i) #输出
1
2
3
4
6
7
8
9
## while...else....
## for...else...
- 当while或者for内的语句块执行完时(包括条件不符合,0次循环),执行else内的语句块。如果循环遇到break或者return跳出循环后不执行else内的语句块。