Python函数定义和调用小试身手

题目:编写一个函数paint(n),根据输入参数n(行数)不同,输出下面图形(n=4),并测试。

       *

      ***

     *****

    *******

个人一些理解:这东西在我学C,C++,数据结构的时候都能遇到,老熟人了,这次用python来实现了,这个没啥太多难点主要是注意这玩意居中,也就是要用到一个format操作方法{0:^100},这里用100主要是保险起见,100个绝对够用的了。下面就是个人写的一些代码。

代码:

def P(n):
    for i in range(1,n+1):
        a=2*i-1
        print('{0:^100}'.format('*'*a))
print(P(4))

题目:编程实现豆堆游戏。堆里有16颗豆子,有两个玩家(假设一个玩家是电脑)。每个玩家都可以从堆中的16颗豆子中取出1颗,2颗或者3颗豆子。每个玩家在每回合中必须从堆中取出一定数目的豆子。玩家轮流取出豆子,取到最后一颗豆子的玩家是输家。

提示: 帮电脑玩家设计一个算法,实现取豆子的函数;再写一个人取豆子的函数;在主程序中进行输流调用,谁最后拿到1粒豆子谁就输。

个人理解:这个看着多但是仔细想想也不是什么难的题,主要是要细心抓住一些关键点,比如一次只能取1或2或3颗豆子,对于真人这里个人首先想到用if来限制,对于电脑个人首先想到的是用randint来限制,因为电脑这玩意是死的人是活的可以灵活变通;然后就是只有16颗,并且取到最后一颗的就输了,所以最后可能去完是负的豆子数这个也要考虑在内的,因为这个实际上是输了的。然后就是循环操作了不是很难,下面展示个人写的一些代码。

代码:

import random
#真人玩家取豆子
def people(n):
    #用while循环来实现真人玩家取豆子
    while 1:
        x_people=int(input("真人玩家取出豆子数: "))
        #用if来限定一次只能取1或2或3颗豆子
        if (1<=x_people<=3):
            break
        else:
            print("每次取出的豆子数应该属于(1,2,3),请重新输入!")
            continue
    print("豆子剩余数量:",n-x_people)
    return (n - x_people)
#电脑玩家取豆子
def computer(n):
    #这里用randint让电脑玩家只能取1或2或3颗豆子
    y_computer=random.randint(1,3)
    print("电脑玩家取出豆子数:",y_computer)
    print("豆子剩余数量:",n-y_computer)
    return (n-y_computer)
def main():
    z=16
    print("豆子的总数为:",z)
    while 1:
        z=people(z)
        if z<=0:
            print("电脑玩家胜利!")
            break
        z=computer(z)
        if z<=0:
            print("真人玩家胜利赢!")
            break
main()

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值