day-005--构造程序逻辑

构造程序逻辑

1.练习清单
    1. 寻找“水仙花数”。
    1. 寻找“完美数”。
    1. “百钱百鸡”问题。
    1. 生成“斐波拉切数列”。
    1. Craps赌博游戏。
2.直接上代码
import math
from random import randint
import time
# 水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆
#斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。
#do no.1
print('###')
print('水仙花数')
print('###')
for Answer_num in range(100,1000):
    num = Answer_num%10
    num_ten = Answer_num//10%10
    num_hun = Answer_num//100
    if num ** 3 + num_ten ** 3 + num_hun ** 3 == Answer_num:
        print('Narcissistic number is %d' % Answer_num)

# 完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。
# 如果一个数恰好等于它的因子之和,则称该数为“完全数”。第一个完全数是6,第二个完全数是28,第三个完全数是496,后面的完全数还有8128、33550336等等
print('###')
print('完美数')
print('###')
for Perfect_num in range(1,10000):
    sum = 0
    for Result in range(1,int(math.sqrt(Perfect_num) + 1)):
        if Perfect_num % Result == 0:
            sum = sum + Result
            if Result > 1 and Perfect_num/Result != Result:
                sum = sum + Perfect_num/Result
    if sum == Perfect_num:
        print('Perfect num is %d ' % Perfect_num)

# 鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,
print('###')
print('百鸡百钱')
print('###')
for Gj in range(0,20):
    for Mj in range(0,33):
        Xj = 100 - Gj - Mj
        if 5*Gj+3*Mj+Xj/3 == 100:
            print('公鸡{0}只,母鸡{1}只,小鸡{2}只'.format(Gj,Mj,Xj))

#斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,
# 故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递推的方法定义:
# F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,
# 美国数学会从1963年起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。
a = 0
b = 1
print('###')
print('斐波那契数列')
print('###')
for _ in range(10):
    a,b = b,a + b
    print(a,end=' ')
#s上面的这个有点骚

# Craps赌博游戏:
# 玩家摇两颗色子 如果第一次摇出7点或11点 玩家胜
# 如果摇出2点 3点 12点 庄家胜 其他情况游戏继续
# 玩家再次要色子 如果摇出7点 庄家胜
# 如果摇出第一次摇的点数 玩家胜
# 否则游戏继续 玩家继续摇色子
# 玩家进入游戏时有1000元的赌注 全部输光游戏结束
print('###')
print('赌博游戏')
print('###')
money = 1000
need_go_on = False
while money > 0:
    print('你的资产为:',money)
    if need_go_on == False:
        while True:
            debt = int(input('下注咯:'))
            if debt > 0 and debt <= money:
                need_go_on = True
                break
    else:
        debt_num = randint(1,6)+randint(1,6)
        print('骰子摇出 %d 点' % debt_num)
        if debt_num == 7 or debt_num ==11:
            print('玩家胜利!!')
            money = money + debt
            need_go_on = False
        elif debt_num == 2 or debt_num == 3 or debt_num == 12:
            print('庄家胜利!!')
            money = money - debt
            need_go_on = False
        else:
            print('重新摇!!!')
            print('....')
            time.sleep(1)
            need_go_on = True
print('你输了,结束了!!!')

**结果: **

D:\python\venv\Scripts\python.exe D:/python/day005.py
###
水仙花数
###
Narcissistic number is 153
Narcissistic number is 370
Narcissistic number is 371
Narcissistic number is 407
###
完美数
###
Perfect num is 1 
Perfect num is 6 
Perfect num is 28 
Perfect num is 496 
Perfect num is 8128 
###
百鸡百钱
###
公鸡0只,母鸡25只,小鸡75只
公鸡4只,母鸡18只,小鸡78只
公鸡8只,母鸡11只,小鸡81只
公鸡12只,母鸡4只,小鸡84只
###
斐波那契数列
###
1 1 2 3 5 8 13 21 34 55 ###
赌博游戏
###
你的资产为: 1000
下注咯:1000
你的资产为: 1000
骰子摇出 8 点
重新摇!!!
....
你的资产为: 1000
骰子摇出 2 点
庄家胜利!!
你输了,结束了!!!

Process finished with exit code 0

没有赌 博的天分。。。。

文集传送门 学习python100天


整个学习python100天的目录传送门


无敌分割线


再最后面附上大神的链接
传送门

你可能感兴趣的:(day-005--构造程序逻辑)