栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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 条件1:
	while 条件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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1039729.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号