第六章 流程控制语句 【Python基础】

本文详细介绍Python中的流程控制概念,包括条件判断语句(if语句)、循环语句(while和for循环)的语法与执行流程。同时,介绍了如何使用input()函数获取用户输入,并演示了if-else、if-elif-else语句的应用。此外,文章还提供了多个实例,如判断质数、打印水仙花数等,帮助读者深入理解并掌握Python编程的基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

流程控制简介

  1. Python代码在执行的时候按照自上向下的顺序执行的。
  2. 通过流程控制语言。可以改变程序的执行顺序,也可以让指定的程序反复执行多次。
    分为两大类:
  3. 条件判断语句
  4. 循环语句

一、条件判断语句(if语句)

1、语法: if 条件表达式 :语句
2、执行流程: if语句在执行时,会对条件表达式进行求值判断
1. 如果为True,则执行if后的语句
2. 如果为False,则不执行
3、默认情况下,if语句只会控制紧随其后的那条语句,如果希望if可以控制多条语句,则可以在if后跟着一个代码块
4、代码块:

  1. 代码块中保存着一组代码,同一个代码块中的代码,要么都执行要么都不执行
  2. 代码块就是一种为代码分组的机制
  3. 如果要编写代码块,语句就不能紧随其后,而是要写在下一行
  4. 代码块以缩进开始,直到这个代码恢复到之前的缩进级别结束
    5、可以使用逻辑运算符来连接多个条件
  5. 如果希望所有条件同时满足则需要使用and
  6. 如果希望只要有一个条件满足即可,则需要使用or
  7. if num >10 and num<20: 或者 if 10 < num <20 :
    6、缩进两种方式
  8. 一种是使用tab键,一种是使用空格(四个)
  9. Python官方文档推荐使用空格键缩进
  10. Python代码中使用的缩进方式必须保持统一

二、input函数

input()函数用来获取用户的输入,input()调用后,程序会立即暂停,等待用户输入。

  • 用户输入完内容以后,点击回车程序会继续向下执行
  • 用户输入完成以后,其所输入的内容会以返回值的形式返回
  • 注意:input()返回值都是字符串
  • input()函数的参数可以输入一个字符串,作为提示内容。
>>> input()
dfhjsdhfj
'dfhjsdhfj'
>>> input()
12334566
'12334566'
>>> input(请输入一个字符串)
Traceback (most recent call last):
  File "<pyshell#7>", line 1, in <module>
    input(请输入一个字符串)
NameError: name '请输入一个字符串' is not defined
>>> input('请输入一个字符串')
请输入一个字符串和解决军jj
'和解决军jj'
>>> input('请输入一个字符串:')
请输入一个字符串:1223asd
'1223asd'

三、if - else语句

语法:if 条件表达式:
代码块
else:
代码块
执行流程:if—else 执行时,先执行if 后的条件表达式进行求职判断
如果是true,则执行if后代码块
如果为false,则执行else后代码块

四、if - elif - else语句

语句:if条件表达式:
代码块
elif 条件表达式:
代码块
elif 条件表达式:
代码块
else: 代码块

五、循环语句

循环语句
循环语句可以使指定的代码块重复指定的次数
循环语句分为两种,while循环和for循环
1、while循环语法
while 条件表达式:
代码块
else
代码块
2、执行流程
while语句在执行时,会对while后的条件表达式进行求值判断,如果判断结果为true,则会执行循环体(代码块),循环体执行完毕后,继续对条件表达式进行求值判断,以此类推。直到判断结果为false,则终止循环,如果循环有对应的else,则会执行else后的代码块。

条件表达式恒为True的循环语句,称为死循环,它会一直运行,
while True:
print(‘hello’)
循环语句的三个要求(表达式)

		i = 0        //初始化表达式,通过初始化表达式来初始化一个变量

while i < 10: //条件表达式用来设置循环执行条件
i +=i //更新表达式,修改初始化变量的值
print(‘hello’)

## 3、打印水仙花数
水仙花数是指一个n位数(n>=3),它的每一位上的数字的n次幂之和等于它本身(例如 :13+53+)
求1000以内的水仙花数
获取1000以内的三位数

i = 1000

while i < 1000:
   a = i
   b = (i - a *100)
   c = (i%10)
 
    if a**3+b**3 + c**3 == i
        print(i)
    i +=1

4、质数

获取用户输入的任意数,判断其是否是质数
判断num是否是质数,只能被1和它本生整除的数就是质数

num = int(input('输入一个任意大于0的整数:'))
i = 2
flag = True
while i < num:
     if num % i == 0:
         flag = False
      i += 1
if flag :
   print(num,'是质数')
else:
   print(num,'不是质数')

5、循环嵌套
循环嵌套时,外层循环每执行一次,内层循环就要执行一圈
打印三角形:

i = 0
while i < 5:
	j = 0
	while j < i+1:
  	  print(" * ",end='')
	  j += 1
        print()
        i +=1

99乘法表

i = 0
while i < 9:
  i += 1
  j = 0
  while j < i:
    j += 1
    print(f"{j}*{i}={j*i} ",end="")
  print()

求100以内的质数:

i = 2
while i <= 100:
  flag = True
  j = 2
  while j < i:
    if i % j == 0:
      flag = False
    j += 1
  if flag:
    print(i)
  i += 1

5、break和continue
break和continue都是对离他最近的循环起作用
(1)brake :可以用来立即退出当前循环(包括else)

i = 0
while i < 5:
	if i == 3:
		break
	print(1)
	i += 1
else:
	print('循环结束')

(2)continue :continue可以用来跳过当前循环

i = 0
while i < 5:
	i += 1
	if i == 2
		continue
	print(i)
else:
	print('循环结束')

(3)**pass:**是用来在判断或者循环语句中占位

i = 0
if i < 5:
	pass  #占位,没有实际意义

错误提示:报错
综合训练:唐僧大战白骨精

print('-'*20,'欢迎光临《唐僧大战白骨精》','-'*20)
print('请选择你的身份:')
print('\t 1.唐僧')
print('\t 2.白骨精')
player_choose = input('请选择[1-2]: ')
print('*'*68)
if player_choose == '1':
	print('你已经选择了1,你可以--唐僧--的身份来进行游戏了!')
elif player_choose == '2':
	print('你尽然选择了白骨精,太不要脸了,系统将给你自动分配身份')
else:
	print('你输入的有误,太差劲了,系统将给你自动分配身份')

player_life = 2
player_attack = 2

boss_life = 10
boss_attack = 10
print('-'*68)
print(f'唐僧,你的生命值是 {player_life}, 你的攻击力是{player_attack}')
print('='*68)
print('请选择你要进行的操作:')
print('1.练级')
print('2.打BOSS')
print('3.逃跑')
game_choose = input('请选择要做的操作[1-3]:')
if game_choose == '1':
	player_life +=2
	player_attack +=2
	print('-'*68)
	print(f'恭喜你升级了!,你的生命力是{player_life},你的攻击力是{player_attack}')
elif game_choose == '2':
	print('唐僧攻击了白骨精')
	boss_life -= player_attack
	if boss_life <=0 :
		print('->白骨精受到了{player_attack}点伤害,重伤不治,死了!')
		print('->唐僧赢了!<-')
	

	player_life -= boss_attack
	print('白骨精攻击了唐僧')
	if player_life <= 0 :
		print(f'你受到了{boss_attack}点伤害,重伤不治死了!GAME OVER!')
	
elif game_choose == '3':
	print('唐僧一扭头就跑了!GAME')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值