三分薄地,认真耕耘

导航

 

day005:总结和练习

1、寻找水仙花数

'''

title:寻找水仙花数
date:20190515
author:老杨

'''

from math import floor

for n in range(100,1000):
    x = floor(n / 100)
    y = floor(n / 10) - (x * 10)
    z = n - (x * 100) - (y * 10)
    if x** 3 + y ** 3 + z** 3 == n:
        print('水仙花数是:%d' % n,end='\n')
水仙花数是:153
水仙花数是:370
水仙花数是:371
水仙花数是:407

2、寻找”完美数

'''

title:寻找完美数
date:20190515
author:老杨

'''

print('寻找正整数范围内的\"完美数\"')
n = int(input('请输入一个正整数:'))

for x in range(2, n):
    counter = 0
    for y in range(1, x):
        if x % y == 0:
            counter += y
    if counter == x:
        print('完美数是%d' % x, end='\n')

print('结束')

寻找正整数范围内的"完美数"
请输入一个正整数:12121
完美数是6
完美数是28
完美数是496
完美数是8128
结束

3、"百鸡百钱"问题

'''

title:百鸡百钱问题
date:20190515
author:老杨

'''

for x in range(0,20):
    for y in range(0,33):
        if 7*x + 4*y == 100:
            z = 100 - x - y
            print('供给数量是%d,母鸡数量是%d,小鸡数量是%d' % (x, y, z), end='\n')
print('结束')
供给数量是0,母鸡数量是25,小鸡数量是75
供给数量是4,母鸡数量是18,小鸡数量是78
供给数量是8,母鸡数量是11,小鸡数量是81
供给数量是12,母鸡数量是4,小鸡数量是84
结束

4、生成“斐波那契数列

'''

title:生成“斐波那契数列”
date:20190515
author:老杨

'''

n = int(input('请输入一个正整数:'))
i = 1
j = 1
for x in range(2,n):
    k = i + j
    i = j
    j = k
print('斐波那契数列数列的第%d项为%d' % (n, k))

请输入一个正整数:13
斐波那契数列数列的第13项为233

5、Craps赌博游戏

Craps赌博游戏 - 两个色子

第一次摇色子

如果摇出了7点或11点 - 玩家胜

如果摇出了2点、3点或12点 - 庄家胜

如果摇出其他点数 - 游戏继续

继续

如果摇出了7点 - 庄家胜

如果摇出了第一次摇的点数 - 玩家胜

如果摇出了其他点数 - 游戏继续

from random import randint


# =====掷色子
def roll_dice(*, num=1):  # "*," -->命名关键字参数,传参是需给出参数名
    total = 0
    for _ in range(num):
        total += randint(1, 6)
    return total


def main():
    money = 1000
    while money > 0:
        while True:
            print('total assets %d' % money)
            debt = int(input('please bet:'))
            if 0 < debt <= money:
                break
        first = roll_dice(num=2)
        print('玩家摇出了%d点' % first)
        game_over = True
        if first == 7 or first == 11:
            money += debt
            print('player win!')
        elif first == 2 or first == 3 or first == 11:
            money -= debt
            print('banker win!')
        else:
            game_over = False
        while not game_over:
            current = roll_dice(num=2)
            print('player roll %d point' % current)
            if current == 7:
                money -= debt
                print('banker win!')
                game_over = True
            elif current == first:
                money += debt
                print('player win!')
                game_over = True

        print(money)
    print('you\'re broke game over!')

if __name__ == '__main__':
    main()
total assets 1000
please bet:200
玩家摇出了8点
player roll 8 point
player win!
1200
total assets 1200
please bet:300
玩家摇出了8点
player roll 11 point
player roll 5 point
player roll 11 point
player roll 9 point
player roll 8 point
player win!
1500
total assets 1500
please bet:500
玩家摇出了7点
player win!
2000
total assets 2000
please bet:600
玩家摇出了6点
player roll 10 point
player roll 7 point
banker win!
1400
total assets 1400
please bet:600
玩家摇出了4点
player roll 2 point
player roll 10 point
player roll 11 point
player roll 6 point
player roll 4 point
player win!
2000
total assets 2000
please bet:200
玩家摇出了9点
player roll 7 point
banker win!
1800
total assets 1800
please bet:1500
玩家摇出了9点
player roll 4 point
player roll 6 point
player roll 6 point
player roll 7 point
banker win!
300
total assets 300
please bet:300
玩家摇出了3点
banker win!
0
you're broke game over!

END
2019-05-16 10:33:24
posted on 2019-05-16 10:34  平复心态  阅读(297)  评论(0编辑  收藏  举报