shu‘s Python学习(3):流程控制

循环语句while

程序三种执行结构:
1. 顺序结构
2. 分支机构:依据条件是否成立,选择不同的代码执行
3. 循环结构:一段代码会重复执行多次
循环四要素:
1. 循环变量的初始值
2. 循环条件
3. 循环体代码
4. 让循环变量趋近于结束的代码
循环执行过程
1-2-3-4-2-3-4-2------2(不满足条件时退出循环)

例子:1-100的输出

#定义一个函数 
def test_func():
	# 定义一个循环变量并有初始值
	i = 1
	#判断条件
	while i <= 100:
		#循环体
		print(i)
		#改变循环变量 语句必须写到循环体里
		i += 1 

test_func()

不能用在循环外的语句

break

  • break只能用在循环里
  • 作用是用来结束循环,不管循环还有多少次
while True: # 死循环
	print('hello')
	break  # 跳出循环
	print('world')

print('over')

输出结果:hello over

continue

  • continue只能用在循环里
  • 作用是来结束本次循环,无论这次循环还有多少代码均不执行
while True  # 死循环
	print('hello')
	continue  # 跳出循环
	print('world')

print('over')

输出结果:无休止打印hello

猜拳游戏

分析

a、两个角色 玩家player+电脑robot
b、动作:石头 0 、剪刀 1 、布 2
c、我的出拳:由输入完成
d、电脑的出拳头:随机数完成
e、比较出拳头
f、判断输赢(尽量少地去写代码)
相等—平局
玩家赢:p0:r1 p1:r2 p2:r0
剩下的都是电脑赢

实现

#导入随机数模块
#导入随机数模块
import random

#定义一个函数 编写框架过程中可以用pass来当占位符
def game():
	# 定义一个玩家变量从键盘输入值
	player = int(input('请输入一个状态(石头 0,剪刀 1,布 2):'))
	# 定义一个电脑变量,使用随机数获取状态
	robot = random.randint(0,2)
	# 比较状态
	#先判断平局
	if player==robot:
		print('平局')
	# 在判断玩家赢的状态
	elif((player == 0 )and (robot == 1)) or ((player == 1)and(robot == 2)) or ((player ==2)and(robot == 0)) :
		print('玩家赢')
	# 剩下的是电脑赢的状态
	else:
		print('电脑赢')

#函数调用开始游戏
game()

while循环嵌套

格式:

while 条件1while 条件2:
		循环体...

执行过程:
外层循环循环一次,内层循环循环一圈

示例:外层循环循环三次,内层循环循环五次

i = 0
while i < 3:
	print('i --',i)
	j = 0
	while j < 5:
		print('j--',i)
		j += 1
	i += 1 

循环嵌套中应用break和continue

i = 0
while i < 3:
	print('i --',i)
	j = 0
	while j < 5:
		print('j--',i)
		break # break会跳出最近的循环
		j += 1
	i += 1 

输出结果:
i – 0
j— 0
i – 1
j— 0
i – 2
j— 0

i = 0
while i < 3:
	print('i --',i)
	break # 整个循环结束
	j = 0
	while j < 5:
		print('j--',i)
		j += 1
	i += 1 

输出结果:
i – 0

i = 0
while i < 3:
	print('i --',i)
	continue # 结束本次循环
	j = 0
	while j < 5:
		print('j--',i)
		j += 1
	i += 1 

输出结果:
i – 0
i – 0
i – 0

无数次

示例:打印偶数

def print_even(n):
	i = 0
	while i < n:
		i += 1
		if i % 2 == 1:
			continue 
		print(i)

print_even(10)

输出结果:
2
4
6
8
10

练习:打印矩形(注意换行)

def print_rect():
	i = 0
	while i < 5: #外层循环打印行数
		j = 0
		while j < 5:
		# 在print函数中,使用end=的形式来给print函数设置一个结束符号,end默认的结束符号是\n换行
			print('*',end='  ')
			j += 1
		print() # end恢复默认值
		i +=1

print_rect()

外层循环执行五次内层循环执行五遍

练习:打印99乘法表

def nine_nine_table():
	#外层循环用来控制行
	i = 1
	while i <= 9:
		#内层循环用来控制每一列的表达式 
		j = 1
		while j <= i:
			print('%d*%d=%-2d '%(j,i,j*i),end = ' ') # 用-2d在指定宽度内左对齐
			j += 1
		#这个print负责换行
		print()
		i += 1
	

nine_nine_table()		
	

运行结果:

1 * 1 = 1   
1 * 2 = 2   2 * 2 = 4   
1 * 3 = 3   2 * 3 = 6   3 * 3 = 9   
1 * 4 = 4   2 * 4 = 8   3 * 4 = 12  4 * 4 = 16  
1 * 5 = 5   2 * 5 = 10  3 * 5 = 15  4 * 5 = 20  5 * 5 = 25  
1 * 6 = 6   2 * 6 = 12  3 * 6 = 18  4 * 6 = 24  5 * 6 = 30  6 * 6 = 36  
1 * 7 = 7   2 * 7 = 14  3 * 7 = 21  4 * 7 = 28  5 * 7 = 35  6 * 7 = 42  7 * 7 = 49  
1 * 8 = 8   2 * 8 = 16  3 * 8 = 24  4 * 8 = 32  5 * 8 = 40  6 * 8 = 48  7 * 8 = 56  8 * 8 = 64  
1 * 9 = 9   2 * 9 = 18  3 * 9 = 27  4 * 9 = 36  5 * 9 = 45  6 * 9 = 54  7 * 9 = 63  8 * 9 = 72  9 * 9 = 81  

for-in循环 &range

for-in 循环是一种增强型循环
range()用来去一个范围
格式:

for 循环变量 in range(a,b) # 循环变量 [a,b-1]
	循环代码	

示例:

def test_fune():
	for i in range(10): #range会得到1-9这样一个数值
	print(i)

输出:
0
1
2
3
4
5
6
7
8
9

for-in实现99乘法表:

def nine_nine_table():
	for i in range(1,10): # i的范围是1-9
		for j in range(1,i+1):
			print('%d*%d*%-3d',%(j,i,j*i),end='')
		print()

nine_nine_table()	

if语句实现三目运算符

C语言: 条件?值1:值2
Python实现:
值1 if条件? else 值2
执行过程:判断条件是否成立,成立得到值1;否则得到值2

# if实现三目运算符
def test_func():
	#输入一个数,判断奇偶
	n = int(input('number:'))
	s='偶数' if n % 2 ==0 else'奇数'
	print(s)

test_func()

循环-else

无论是 for - in - else 还是 while - else
都是在循环结束后再执行else后面的代码,若循环遇到break中断执行则不会执行else后面的代码
用途:在数列中寻找一个数字,若没有找到则用else给出反馈

def for_in_else_test():
	for i in range(5):
		print(i)
	else:
		print('over')

for_in_else_test()

输出结果:
1
2
3
4
over

def while_else_test():
	i = 0
	while i < 3:
		print(i)
		i += 1
	else:
		print('while over')
while_else_test()

输出结果:
0
1
2
while over

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿花小朋友

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值