天天看点

python从入门到精通--------第一个练习--------

第一个项目所使用的知识点,

print()

where循环

for循环和range

seep函数

random(随机生成整数)

if与else与elif

\n 换行

在练习第一个小项目之前,我们需要学习几个新的函数

1.range()range是进行可规定次数的循环

让个有三种形式:

如图

python从入门到精通--------第一个练习--------

2.seep函数

作用,seep是让打印的速度变得可以控制

import time
print('hhhh')
time.sleep(2)
print("??")
           

3.random(随机生成整数)

import random
s1=random.randint(30,100)#random.randint(a,b)表示在(a,b)的范围内随机生成一个数
print(s1)
           

现在让我们开始做第一个项目吧

任务:做一个这样的人机PK小游戏,并且可以循环4次

具体情况如下面的动图

python从入门到精通--------第一个练习--------

是不是感觉无从下手呢?

不慌,我们可以一步步来

1.先用print()来制作

如图

print('【玩家】\n血量:100\n攻击:50')#自定义血量和攻击
print('----------------')#辅助功能
print('【敌人】\n血量:100\n 攻击:30')#自定义血量和攻击
print('-------------------------')
print('你发起了攻击,【敌人】剩余血量50') #玩家攻击敌人血量100-50=50
print('敌人想你发起了攻击,【玩家】剩余血量70')#敌人攻击玩家血量100-30=70
print('----------------------------')
print('你发起了攻击,【敌人】剩余血量0')
print('敌人发起了攻击,【玩家】剩余血量40')
print('----------------------------')
print('敌人死了,起飞,我起飞了')
           

但是这样感觉有点now呀!

而且一点也不自动化?(而且敌人一定打不过你,有黑幕)

当然,这只是给你用来练手的

2.随机的数据和间隔的时间

现在我们就会用到sleep和retrun了

import random
import  time
a=random.randint(10,100)#玩家攻击
b=random.randint(10,50)#敌人攻击
c=random.randint(50,100)#玩家血量
d=random.randint(50,100)#敌人血量
print('【玩家】\n+血量:'+str(c)+'【玩家】\n+攻击:'+str(a))
print('【敌人】\n血量:'+str(b)+'\n 攻击:'+str(d))
print('----------------')
time.sleep(2)
print('你发起了攻击,【敌人】剩余血量:'+str(d))
print('敌人想你发起了攻击,【玩家】剩余:'+str(c))
print('----------------------------')
time.sleep(2)
print('你发起了攻击,【敌人】剩余血量:'+str(c))
print('敌人发起了攻击,【玩家】剩余血量:'+str(d))
print('----------------------------')
time.sleep(2)
print('敌人死了,起飞,我起飞了')
           

但是不是要进行3局吗?那我应该怎么办呢?

简单,我们可以使用for循环和range

for i in range(1,4):
           

我们可以发现,有好几行都是重复出现的结构,除了数字是灵活变动之外,其余是一毛一样的。

所以我们可以使用where循环来进行操作

while c > 0 and d > 0:
        c = c-b
        d = d-a
        print('你发起了攻击,【敌人】剩余血量:' + str(d))
        print('敌人想你发起了攻击,【玩家】剩余:' + str(c))
        print('----------------------------')
        time.sleep(2)
           

现在我们就差一小局的结果和总结果了

#一小局的结果
    if d<0 and c>=0:
        print('恭喜你赢了,芜湖起飞')
        c+=1
    elif d>=0 and c<0:
        print('我这波在第5程')
        d+=1
    else:
        print('一换一不亏')
#最终结果
if c>d:
    print('选皮肤了,芜湖,起飞')
elif d>c:
    print('我自闭了')
else:print('放战歌,然我们期待假赛吧!')
           

最后把上面所使用的加起来就可以得到最后的结果了

​
import random
import  time
c=0
d=0
for i in range(1,4):
    time.sleep(2)
    print('\n-----现在是第'+str(i)+'局,go,go,go!-----')
#1玩家和敌人的随机属性
    a=random.randint(10,100)#玩家攻击
    b=random.randint(10,50)#敌人攻击
    c=random.randint(50,100)#玩家血量
    d=random.randint(50,100)#敌人血量
    print('【玩家】\n+血量:'+str(c)+'【玩家】\n+攻击:'+str(a))
    print('----------------')
    time.sleep(2)
    print('【敌人】\n血量:'+str(b)+'\n 攻击:'+str(d))
    print('------------------')
    time.sleep(2)
#对抗开始
    while c > 0 and d > 0:
        c = c-b
      d = d-a
        print('你发起了攻击,【敌人】剩余血量:' + str(d))
        print('敌人想你发起了攻击,【玩家】剩余:' + str(c))
     print('----------------------------')
        time.sleep(2)
        #一小局的结果
      if d<0 and c>=0:
        print('恭喜你赢了,芜湖起飞')
        c+=1
      elif d>=0 and c<0:
        print('我这波在第5程')
        d+=1
     else:
        print('一换一不亏')
#最终结果
if c>d:
    print('选皮肤了,芜湖,起飞')
elif d>c:
    print('我自闭了')
else:print('放战歌,然我们期待假赛吧!')

​
           

继续阅读