python学习记录——day6

2018-03-05  本文已影响0人  Jason_c8d4

函数

我们可以把程序中相对独立的功能模块抽取出来
这样做的好处一是减少重复代码的编写
二是将来可以重复的使用这些功能模块
python中的函数就是代表了这样的功能模块
数学上 y = f(x) f是函数名 x是自变量 y是因变量
当需要这个功能的时候直接调用已经定义好的函数就行了

craps赌博游戏升级版

from random import *
def row_dice(num=2):#参数可以设置默认值
    """
    摇骰子
    :param num: 骰子数量
    :return: 点数和
    """
    total = 0
    for _ in range(num):
        r = randint(1, 6)
        print(r,end=' ')
        total += r
    print(total)
    return total

def roe_result(result,player_money,computer_money):
    """
    游戏结果,金额计算

    :param result: 游戏结果
    :param player_money: 玩家金额
    :param computer_money: 电脑金额
    :return: 计算后的玩家金额和电脑金额
    """
    if result == True:
        print('\033[0;35m玩家获胜\033[0m')
        player_money += stake
        computer_money -= stake
        return player_money,computer_money
    else:
        print('\033[0;35m电脑获胜\033[0m')
        player_money -= stake
        computer_money += stake
        return player_money,computer_money

player_money = 1000
computer_money = 1000
while  True:
    stake = int(input('请下注:'))
    if computer_money >= stake and player_money >= stake:
        is_result = True
        frist_r = row_dice()
        if frist_r==7 or frist_r==11:
            player_money,computer_money = roe_result(True, player_money, computer_money)
        elif frist_r==2 or frist_r==3 or frist_r==12:
            player_money, computer_money = roe_result(False, player_money, computer_money)
        else:
            while is_result:
                r = row_dice()
                if frist_r == r:
                    player_money, computer_money = roe_result(True, player_money, computer_money)
                    is_result = False
                elif r == 7:
                    player_money, computer_money = roe_result(False, player_money, computer_money)
                    is_result = False
        print('玩家剩余余额为:¥%d'%(player_money))
        print('电脑剩余余额为:¥%d' % (computer_money))
    else:
        print('押注金额不能大于余额!')
    if player_money <= 0:
        print('\033[1;35m电脑获得游戏胜利!!!\033[0m')
        break
    elif computer_money <= 0:
        print('\033[1;35m玩家获得游戏胜利!!!\033[0m')
        break

特别的:

def add(*args):
    """
    计算多个数相加

    :param args: 可变加数
    :return: 相加的和
    """
    total = 0
    for i in args:
        total += i
    return total
(x,y) = (y,x) if x>y else (x,y)#这个好一些!
(x,y) = x>y and (y,x) or (x,y)
from sushu import *
def is_palindrome(num):
    """
    判断一个数是不是回文数

    :param num: 一个正整数
    :return: 返回判断结果
    """
    # l = len(str(num))
    # for i in range(l//2):
    #     if str(num)[i]!=str(num)[-(i+1)]:
    #         return '不是回文数'
    # return '是回文数'
    temp = num
    total = 0
    while temp>0:
        total = total * 10 + temp % 10
        temp //= 10
    return num == total

老师名言:

科学的边界是哲学

哲学的边界是神学

上一篇 下一篇

猜你喜欢

热点阅读