【风变编程-python语法】第七关(小游戏大学问)-笔记

【风变编程-python语法】第七关(小游戏大学问)-笔记

python基础语法–第一个项目实操

完成一个项目的流程
1.1 明确项目目标
1.2 分析过程,拆解项目
1.3 逐步执行,代码实现
项目实战:编写一个小游戏
2.1 版本1.0
2.2 版本2.0
2.3 版本3.0
- [ 练习作业]
(题1) 在项目基础上,选择是否再来一盘,或退出游戏
(题 2) format()函数

完成一个项目的流程

  • 正式进入项目实操
  • 互联网公司中,一般是由产品经理提出明确的项目需求,程序员来实现。

小游戏:这个游戏中,会随机生成玩家和敌人的属性,同时互相攻击,直至一方血量小于零。这样的战斗会持续三局,采取三局两胜制,最后输出战斗结果,公布获胜方。

分析过程,拆解项目:

  • 版本1.0:规定双方角色属性,战斗时认为计算口血量,并打印出战斗过程;
  • 版本2.0:随机生产双方角色属性,自动计算口血量,优化显示战斗过程的代码;
  • 版本3.0:双方进行3局PK,每局判定胜负。三局两胜,判断最终结果。

版本1.0:自定属性,人工PK

  • 版本1.0主要在于理清楚战斗逻辑。

基础元素设定

  • 1.有玩家、敌人的属性
  • 2.要能相互攻击
  • 3.攻击减少血量
  • 4.有最终胜负
    三步实现
    1.规定并显示出玩家和敌人的属性
    2.双方同时互相攻击,血量根据对方的攻击力扣除
    3.若有一方血量小于等于0,游戏结束。
#代码
#1.定义玩家属性:
print('【玩家】血量:100 攻击:50')
print('【敌人】血量:100 攻击:30')
#2.手动计算攻击第一次,双方各自所剩的血量:
print('你发起了攻击,【敌人】剩余血量50') #人工计算敌人血量:100-50=50
print('【敌人】发起了攻击,【玩家】剩余血量70') #人工计算玩家血量:100-30=70
#3.手动计算攻击第一次,双方各自所剩的血量:
print('你发起了攻击,【敌人】剩余血量0') #人工计算敌人血量:50-50=0
print('【敌人】发起了攻击,【玩家】剩余血量40') #人工计算玩家血量:70-30=40

print('敌人死翘翘了,你赢了!!')#打印结果
#显示
【玩家】血量:100 攻击:50
【敌人】血量:100 攻击:30
你发起了攻击,【敌人】剩余血量50
【敌人】发起了攻击,【玩家】剩余血量70
你发起了攻击,【敌人】剩余血量0
【敌人】发起了攻击,【玩家】剩余血量40
敌人死翘翘了,你赢了!!
#代码显示处理
print('【玩家】\n血量:100\n 攻击:50')
print('------------------------------')
print('【敌人】\n血量:100\n攻击:30')
print('------------------------------')

print('你发起了攻击,【敌人】剩余血量50')
print('【敌人】发起了攻击,【玩家】剩余血量70')
print('------------------------------')
print('你发起了攻击,【敌人】剩余血量0')
print('【敌人】发起了攻击,【玩家】剩余血量40')
print('------------------------------')
print('敌人死翘翘了,你赢了!!')
#显示
【玩家】
血量:100
攻击:50
------------------------------
【敌人】
血量:100
攻击:30
------------------------------
你发起了攻击,【敌人】剩余血量50
【敌人】发起了攻击,【玩家】剩余血量70
------------------------------
你发起了攻击,【敌人】剩余血量0
【敌人】发起了攻击,【玩家】剩余血量40
------------------------------
敌人死翘翘了,你赢了!!
  • 游戏进程感:需要 添加计时器
计时器:
import time   #调用time模块
time.sleep(secs)   
#使用time模块下面的sleep()函数,括号里填的是间隔的秒数(seconds,简称secs)
#time.sleep(1.5)就表示停留1.5秒再运行后续代码

完整的版本1.0代码:

import time   #调用time模块

print('【玩家】\n血量:100\n 攻击:50')
print('------------------------------')
time.sleep(1.5)
print('【敌人】\n血量:100\n攻击:30')
print('------------------------------')
time.sleep(1.5)

print('你发起了攻击,【敌人】剩余血量50')
print('【敌人】发起了攻击,【玩家】剩余血量70')
print('------------------------------')
time.sleep(1.5)

print('你发起了攻击,【敌人】剩余血量0')
print('【敌人】发起了攻击,【玩家】剩余血量40')
print('------------------------------')
time.sleep(1.5)

print('敌人死翘翘了,你赢了!!')
  • 版本1.0 明显缺陷
  • 1玩家设定自己说了算,胜负没有悬念;
  • 2战斗过程血量手动计算

版本2.0:随机属性,自动PK

  • 版本2.0增加【随机属性】和【自动战斗】功能

流程

  • 1.随机生成玩家和敌人的属性

  • 2.显示玩家和敌人属性

  • 3.PK过程展示,自动攻击扣血

  • 1 生成随机角色:生成随机整数(百度一下)用到random模块里的**randint()**函数

------------基本代码------------

#代码
import random
a=random.randint(1,100)#随机生成1-100的整数,可多试几次代码
print(a)
#显示
多次运行出现1-100(包含)的随机整数
  • 正式使用;
  • 1)定义两个变量,储存玩家的血量、攻击力数值
  • 2)血量是100-150随机数,攻击力是30-50的随机数
  • 3)将两个变量打印出来、

-----------角色属性—随机设定代码------------

#代码
import random
import time
#生成敌人随机属性
player_blood=random.randint(100,150)#定义玩家血量:100-150随机
player_attact=random.randint(30,50)#定义玩家攻击力:30-50随机
enemy_blood=random.randint(100,150)#定义玩家血量:100-150随机
enemy_attact=random.randint(30,50)#定义玩家攻击力:30-50随机
print('【玩家】\n'+'血量: '+str(player_blood)+'\n攻击: '+str(player_attact))
print('------------------------------------------')
time.sleep(1)
print('【敌人】\n'+'血量: '+str(enemy_blood)+'\n攻击: '+str(enemy_attact))
print('------------------------------------------')
time.sleep(1)
  • 2 自动PK
  • 从版本1.0的人为战斗寻找规律:战斗的过程是重复代码!!—利用循环结构:for…in…还是 while…??
  • 由于血量和攻击是随机的,因此,战斗回合未知,即循环次数未知,故使用while循环
  • 直到一方血量为0,结束战斗。故执行while循环的条件,双方血量均大于0,不死不休。

while内部填充?
攻击力不变,血量更新:
【玩家】当前血量=【玩家】血量-【敌人】攻击
【敌人】当前血量=【敌人】血量-【玩家】攻击

------------------------------------------------自动PK-代码-------------------------------------------------------------------------

#代码
import time
#生成敌人随机属性
player_blood=random.randint(100,150)#定义玩家血量:100-150随机
player_attact=random.randint(30,50)#定义玩家攻击力:30-50随机
enemy_blood=random.randint(100,150)#定义玩家血量:100-150随机
enemy_attact=random.randint(30,50)#定义玩家攻击力:30-50随机
print('【玩家】\n'+'血量: '+str(player_blood)+'\n攻击: '+str(player_attact))
print('------------------------------------------')
time.sleep(1)
print('【敌人】\n'+'血量: '+str(enemy_blood)+'\n攻击: '+str(enemy_attact))
print('------------------------------------------')
time.sleep(1)

while(player_blood>0 and enemy_blood>0):
   player_blood=player_blood-enemy_attact
   enemy_blood=enemy_blood-player_attact
   print('你发起了攻击,【敌人】剩余血量:'+str(enemy_blood))
   print('【敌人】发起了攻击,【玩家】剩余血量:' + str(player_blood))
   print('------------------------------------------')
   time.sleep(2.0)

------------------------------------------------显示结果-------------------------------------------------------------------------

【玩家】
血量: 104
攻击: 30
------------------------------------------
【敌人】
血量: 145
攻击: 35
------------------------------------------
你发起了攻击,【敌人】剩余血量:115
【敌人】发起了攻击,【玩家】剩余血量:69
------------------------------------------
你发起了攻击,【敌人】剩余血量:85
【敌人】发起了攻击,【玩家】剩余血量:34
------------------------------------------
你发起了攻击,【敌人】剩余血量:55
【敌人】发起了攻击,【玩家】剩余血量:-1
------------------------------------------

版本3.0:打印战果,三局两胜

  • 版本3.0增加功能:
  • 1.【打印战果】:每局战斗后,根据胜负平的结果打印出不同的提示
  • 2.【三局两胜】:双方战斗三局,胜率高的为最终赢家

流程

  • 游戏开始
  • a.随机生成属性
  • b.显示属性
  • c.PK过程展示
  • d.输出单局PK胜负结果
  • f.输出三局两胜结果(e.循环三次(a-d步骤))
  • 游戏结束

------------------------------------------------单局战果打印-------------------------------------------------------------------

  • 战果1【玩家】赢了:玩家血量>0 and 敌人血量<=0
  • 战果2【敌人】赢了:敌人血量>0 and 玩家血量<=0
  • 战果3 平局:玩家血量<=0 and 敌人血量<=0
#打印战果:
if(player_blood>0 and enemy_blood<=0):
   print('敌人死翘翘了,【玩家】赢了')
elif(player_blood<=0 and enemy_blood>0):
   print('悲剧了,你被敌人消灭,【敌人】赢了')
else:
   print('【玩家】和【敌人】同归于尽,平局')

------------------------------------------------三局两胜循环-------------------------------------------------------------------

  • 来三局:固定循环3次,for…in…循环
  • 保存每局战果:计分法
  • 判断最终结果:

for 循环

  • 固定3次,用 for i in range(1,4)
  • 每次开局做区分: print(’\n—&&&&&&—现在是第’+str(i)+‘局,战斗开始!!—&&&&&&—’)
  • 注意缩进格式!!

计分判定结果

  • 计分变量:player_victory、enemy_victory
  • 计分规则:每局赢的人计一分,平局不计分(因此,变量更新放在判断每一局结果之后,累加1)
  • 输出最后结果:计分高者赢,或者平局。
#计分规则:

if(player_blood>0 and enemy_blood<=0):
       player_victory += 1
       print('敌人死翘翘了,【玩家】赢了')
   elif(player_blood<=0 and enemy_blood>0):
       enemy_victory += 1
       print('悲剧了,你被敌人消灭,【敌人】赢了')
   else:
       print('【玩家】和【敌人】同归于尽,平局')

#最终结果输出:

if(player_victory>enemy_victory):
   print('最终结果:【玩家】获胜!')
elif(player_victory < enemy_victory):
   print('最终结果:【敌人】获胜!')
else:
   print('最终结果:平局!')

------------------------------------------------完整代码-------------------------------------------------------------------

import random,time
player_victory=0
enemy_victory=0
print('---------让我们来玩一个三局两胜的游戏吧,每局属性随机呦,ready go!------')
for i in range(1,4):
   print('\n---&&&&&&---现在是第'+str(i)+'局,战斗开始!!---&&&&&&---')
   player_blood=random.randint(100,150)#定义玩家血量:100-150随机
   player_attact = random.randint(30, 50)  # 定义玩家攻击力:30-50随机
   enemy_blood=random.randint(100,150)#定义玩家血量:100-150随机
   enemy_attact=random.randint(30,50)#定义玩家攻击力:30-50随机
   print('【玩家】\n'+'血量: '+str(player_blood)+'\n攻击: '+str(player_attact))
   print('------------------------------------------')
   time.sleep(1)
   print('【敌人】\n'+'血量: '+str(enemy_blood)+'\n攻击: '+str(enemy_attact))
   print('------------------------------------------')
   time.sleep(1)

   while(player_blood>0 and enemy_blood>0):
       player_blood=player_blood-enemy_attact
       enemy_blood=enemy_blood-player_attact
       print('你发起了攻击,【敌人】剩余血量:'+str(enemy_blood))
       print('【敌人】发起了攻击,【玩家】剩余血量:' + str(player_blood))
       print('------------------------------------------')
       time.sleep(1.5)
#打印战果:
   if(player_blood>0 and enemy_blood<=0):
       player_victory += 1
       print('敌人死翘翘了,【玩家】赢了')
   elif(player_blood<=0 and enemy_blood>0):
       enemy_victory += 1
       print('悲剧了,你被敌人消灭,【敌人】赢了')
   else:
       print('【玩家】和【敌人】同归于尽,平局')

print('-------@@@@@@@@@@@@@@@@@@@@@@@@------------')
print('------------三局战斗结束,请看最终结果-------')
if(player_victory>enemy_victory):
   print('最终结果:【玩家】获胜!')
elif(player_victory < enemy_victory):
   print('最终结果:【敌人】获胜!')
else:
   print('最终结果:平局!')

------------------------------------------------显示结果-------------------------------------------------------------------

可以运行多次,每次结果随机。

---------让我们来玩一个三局两胜的游戏吧,每局属性随机呦,ready go!------

---&&&&&&---现在是第1局,战斗开始!!---&&&&&&---
【玩家】
血量: 116
攻击: 49
------------------------------------------
【敌人】
血量: 116
攻击: 48
------------------------------------------
你发起了攻击,【敌人】剩余血量:67
【敌人】发起了攻击,【玩家】剩余血量:68
------------------------------------------
你发起了攻击,【敌人】剩余血量:18
【敌人】发起了攻击,【玩家】剩余血量:20
------------------------------------------
你发起了攻击,【敌人】剩余血量:-31
【敌人】发起了攻击,【玩家】剩余血量:-28
------------------------------------------
【玩家】和【敌人】同归于尽,平局

---&&&&&&---现在是第2局,战斗开始!!---&&&&&&---
【玩家】
血量: 127
攻击: 40
------------------------------------------
【敌人】
血量: 119
攻击: 32
------------------------------------------
你发起了攻击,【敌人】剩余血量:79
【敌人】发起了攻击,【玩家】剩余血量:95
------------------------------------------
你发起了攻击,【敌人】剩余血量:39
【敌人】发起了攻击,【玩家】剩余血量:63
------------------------------------------
你发起了攻击,【敌人】剩余血量:-1
【敌人】发起了攻击,【玩家】剩余血量:31
------------------------------------------
敌人死翘翘了,【玩家】赢了

---&&&&&&---现在是第3局,战斗开始!!---&&&&&&---
【玩家】
血量: 148
攻击: 37
------------------------------------------
【敌人】
血量: 145
攻击: 37
------------------------------------------
你发起了攻击,【敌人】剩余血量:108
【敌人】发起了攻击,【玩家】剩余血量:111
------------------------------------------
你发起了攻击,【敌人】剩余血量:71
【敌人】发起了攻击,【玩家】剩余血量:74
------------------------------------------
你发起了攻击,【敌人】剩余血量:34
【敌人】发起了攻击,【玩家】剩余血量:37
------------------------------------------
你发起了攻击,【敌人】剩余血量:-3
【敌人】发起了攻击,【玩家】剩余血量:0
------------------------------------------
【玩家】和【敌人】同归于尽,平局
-------@@@@@@@@@@@@@@@@@@@@@@@@------------
------------三局战斗结束,请看最终结果-------
最终结果:【玩家】获胜!

彩蛋:用%s代替+ str(),更方便!(字符串用 %s,浮点数用 %f,整数用 %d

 # 字符代替方式

print('血量:'+str(player_blood)+' 攻击:'+str(player_attack))
print('血量:%s 攻击:%s' % (player_blood,player_attack))

故上述代码可以精简

import random,time
player_victory=0
enemy_victory=0
print('---------让我们来玩一个三局两胜的游戏吧,每局属性随机呦,ready go!------')
for i in range(1,4):
   print('\n---&&&&&&---现在是第%s局,战斗开始!!---&&&&&&---'%i)
   player_blood=random.randint(100,150)#定义玩家血量:100-150随机
   player_attact = random.randint(30, 50)  # 定义玩家攻击力:30-50随机
   enemy_blood=random.randint(100,150)#定义玩家血量:100-150随机
   enemy_attact=random.randint(30,50)#定义玩家攻击力:30-50随机
   print('【玩家】\n' + '血量: %s \n攻击: %s'%(player_blood,player_attact))
   #print('【玩家】\n'+'血量: '+str(player_blood)+'\n攻击: '+str(player_attact))
   print('------------------------------------------')
   time.sleep(1)
   print('【敌人】\n' + '血量: %s \n攻击: %s'%(enemy_blood, enemy_attact))
   #print('【敌人】\n'+'血量: '+str(enemy_blood)+'\n攻击: '+str(enemy_attact))
   print('------------------------------------------')
   time.sleep(1)

   while(player_blood>0 and enemy_blood>0):
       player_blood=player_blood-enemy_attact
       enemy_blood=enemy_blood-player_attact
       print('你发起了攻击,【敌人】剩余血量:%s'%(enemy_blood))
       print('【敌人】发起了攻击,【玩家】剩余血量:%s'%(player_blood))
       #print('你发起了攻击,【敌人】剩余血量:'+str(enemy_blood))
       #print('【敌人】发起了攻击,【玩家】剩余血量:' + str(player_blood))
       print('------------------------------------------')
       time.sleep(1.5)
#打印战果:
   if(player_blood>0 and enemy_blood<=0):
       player_victory += 1
       print('敌人死翘翘了,【玩家】赢了')
   elif(player_blood<=0 and enemy_blood>0):
       enemy_victory += 1
       print('悲剧了,你被敌人消灭,【敌人】赢了')
   else:
       print('【玩家】和【敌人】同归于尽,平局')

print('-------@@@@@@@@@@@@@@@@@@@@@@@@------------')
print('------------三局战斗结束,请看最终结果-------')
if(player_victory>enemy_victory):
   print('最终结果:【玩家】获胜!')
elif(player_victory < enemy_victory):
   print('最终结果:【敌人】获胜!')
else:
   print('最终结果:平局!')

【练习题】

1 选择是否再来一盘,或退出游戏

  • 问题:
    我在项目1代码的基础上,添加一个新功能:
    每盘(3局)游戏结束后,游戏会问我们是否要继续游戏,再加一盘。我们可以选择再来一盘,也可以选择退出游戏。

分析:
方案1:while True+break 开启一个无限循环,设定跳出条件。
方案2:while 变量名+变量名的布尔值判断,在开头设某变量的布尔值为True,input后开启判断变量的布尔值是否改变。

------------------------------------------------方案一-------------------------------------------------------------------

#
import random,time
player_victory=0
enemy_victory=0
print('---------让我们来玩一个三局两胜的游戏吧,每局属性随机呦,ready go!------')
while True:
    for i in range(1,4):
        print('\n---&&&&&&---现在是第%s局,战斗开始!!---&&&&&&---'%i)
        player_blood=random.randint(100,150)#定义玩家血量:100-150随机
        player_attact = random.randint(30, 50)  # 定义玩家攻击力:30-50随机
        enemy_blood=random.randint(100,150)#定义玩家血量:100-150随机
        enemy_attact=random.randint(30,50)#定义玩家攻击力:30-50随机
        print('【玩家】\n' + '血量: %s \n攻击: %s'%(player_blood,player_attact))

        print('------------------------------------------')
        time.sleep(1)
        print('【敌人】\n' + '血量: %s \n攻击: %s'%(enemy_blood, enemy_attact))
        print('------------------------------------------')
        time.sleep(1)

        while player_blood>0 and enemy_blood>0:

            player_blood=player_blood-enemy_attact
            enemy_blood=enemy_blood-player_attact
            print('你发起了攻击,【敌人】剩余血量:%s'%enemy_blood)
            print('【敌人】发起了攻击,【玩家】剩余血量:%s'%player_blood)
            print('------------------------------------------')
            time.sleep(1.5)
#打印战果:
        if player_blood>0 and enemy_blood<=0 :
            player_victory += 1
            print('敌人死翘翘了,【玩家】赢了')
        elif player_blood<=0 and enemy_blood>0 :
            enemy_victory += 1
            print('悲剧了,你被敌人消灭,【敌人】赢了')
        else:
            print('【玩家】和【敌人】同归于尽,平局')

    print('-------@@@@@@@@@@@@@@@@@@@@@@@@------------')
    print('------------三局战斗结束,请看最终结果-------')
    if player_victory>enemy_victory :
        print('最终结果:【玩家】获胜!')
    elif player_victory < enemy_victory :
        print('最终结果:【敌人】获胜!')
    else:
        print('最终结果:平局!')

    choose=input('是否再来一盘?回答:再来一盘/结束游戏')
    if choose=='结束游戏':
        break

#输出显示:

---------让我们来玩一个三局两胜的游戏吧,每局属性随机呦,ready go!------

---&&&&&&---现在是第1局,战斗开始!!---&&&&&&---
【玩家】
血量: 103 
攻击: 32
------------------------------------------
【敌人】
血量: 105 
攻击: 35
------------------------------------------
你发起了攻击,【敌人】剩余血量:73
【敌人】发起了攻击,【玩家】剩余血量:68
------------------------------------------
你发起了攻击,【敌人】剩余血量:41
【敌人】发起了攻击,【玩家】剩余血量:33
------------------------------------------
你发起了攻击,【敌人】剩余血量:9
【敌人】发起了攻击,【玩家】剩余血量:-2
------------------------------------------
悲剧了,你被敌人消灭,【敌人】赢了

---&&&&&&---现在是第2局,战斗开始!!---&&&&&&---
【玩家】
血量: 132 
攻击: 48
------------------------------------------
【敌人】
血量: 115 
攻击: 37
------------------------------------------
你发起了攻击,【敌人】剩余血量:67
【敌人】发起了攻击,【玩家】剩余血量:95
------------------------------------------
你发起了攻击,【敌人】剩余血量:19
【敌人】发起了攻击,【玩家】剩余血量:58
------------------------------------------
你发起了攻击,【敌人】剩余血量:-29
【敌人】发起了攻击,【玩家】剩余血量:21
------------------------------------------
敌人死翘翘了,【玩家】赢了

---&&&&&&---现在是第3局,战斗开始!!---&&&&&&---
【玩家】
血量: 102 
攻击: 46
------------------------------------------
【敌人】
血量: 111 
攻击: 36
------------------------------------------
你发起了攻击,【敌人】剩余血量:65
【敌人】发起了攻击,【玩家】剩余血量:66
------------------------------------------
你发起了攻击,【敌人】剩余血量:19
【敌人】发起了攻击,【玩家】剩余血量:30
------------------------------------------
你发起了攻击,【敌人】剩余血量:-27
【敌人】发起了攻击,【玩家】剩余血量:-6
------------------------------------------
【玩家】和【敌人】同归于尽,平局
-------@@@@@@@@@@@@@@@@@@@@@@@@------------
------------三局战斗结束,请看最终结果-------
最终结果:平局!
是否再来一盘?回答:再来一盘/结束游戏j再来一盘

---&&&&&&---现在是第1局,战斗开始!!---&&&&&&---
【玩家】
血量: 146 
攻击: 40
------------------------------------------
【敌人】
血量: 141 
攻击: 41
------------------------------------------
你发起了攻击,【敌人】剩余血量:101
【敌人】发起了攻击,【玩家】剩余血量:105
------------------------------------------
你发起了攻击,【敌人】剩余血量:61
【敌人】发起了攻击,【玩家】剩余血量:64
------------------------------------------
你发起了攻击,【敌人】剩余血量:21
【敌人】发起了攻击,【玩家】剩余血量:23
------------------------------------------
你发起了攻击,【敌人】剩余血量:-19
【敌人】发起了攻击,【玩家】剩余血量:-18
------------------------------------------
【玩家】和【敌人】同归于尽,平局

---&&&&&&---现在是第2局,战斗开始!!---&&&&&&---
【玩家】
血量: 135 
攻击: 37
------------------------------------------
【敌人】
血量: 125 
攻击: 49
------------------------------------------
你发起了攻击,【敌人】剩余血量:88
【敌人】发起了攻击,【玩家】剩余血量:86
------------------------------------------
你发起了攻击,【敌人】剩余血量:51
【敌人】发起了攻击,【玩家】剩余血量:37
------------------------------------------
你发起了攻击,【敌人】剩余血量:14
【敌人】发起了攻击,【玩家】剩余血量:-12
------------------------------------------
悲剧了,你被敌人消灭,【敌人】赢了

---&&&&&&---现在是第3局,战斗开始!!---&&&&&&---
【玩家】
血量: 108 
攻击: 31
------------------------------------------
【敌人】
血量: 110 
攻击: 35
------------------------------------------
你发起了攻击,【敌人】剩余血量:79
【敌人】发起了攻击,【玩家】剩余血量:73
------------------------------------------
你发起了攻击,【敌人】剩余血量:48
【敌人】发起了攻击,【玩家】剩余血量:38
------------------------------------------
你发起了攻击,【敌人】剩余血量:17
【敌人】发起了攻击,【玩家】剩余血量:3
------------------------------------------
你发起了攻击,【敌人】剩余血量:-14
【敌人】发起了攻击,【玩家】剩余血量:-32
------------------------------------------
【玩家】和【敌人】同归于尽,平局
-------@@@@@@@@@@@@@@@@@@@@@@@@------------
------------三局战斗结束,请看最终结果-------
最终结果:【敌人】获胜!
是否再来一盘?回答:再来一盘/结束游戏结束游戏

Process finished with exit code 0

2 format()函数

  • 问题:
    将代码中字符串格式化的代码改成format()函数的方法,改完后运行一下,检验是否正确.
  • format()函数是从 Python2.6 起新增的一种格式化字符串的函数,功能更强大。
  • format()函数用来占位的是大括号{},不用区分类型码(%+类型码)
  • 语法是:‘str.format()’,而不是课堂上提到的’str % ()’。对后面数据的引用更灵活,不限次数,也可指定对应关系。
#代替
 print('【玩家】\n' + '血量: %s \n攻击: %s'%(player_blood,player_attact))
 print('【玩家】\n血量:{}\n攻击:{}'.format(player_blood,player_attack))

 print('\n---&&&&&&---现在是第%s局,战斗开始!!---&&&&&&---'%i)
 print('\n---&&&&&&---现在是第{}局,战斗开始!!---&&&&&&---'.format(i))
 

 #运行正确

你可能感兴趣的:(python基础语法学习)