python菜鸟学习Day3(结构实例)

python简单实例

1水仙花数
说明:水仙花数也被称为超完全数字不变数、自恋数、自幂数、阿姆斯特朗数,它是一个3位数,该数字每个位上数字的立方之和正好等于它本身,例如: 1 3 + 5 3 + 3 3 = 153 1^3 + 5^3+ 3^3=153 13+53+33=153

for num in range(100,1000):
    low = num % 10
    mid = (num // 10)%10
    high = num // 100
    if num == low**3 + mid**3 + high**3:
        print(num,end='\t')

2翻转数字

num = int(input("请输入需要翻转的数字:"))
reverse_num = 0
while num >0 :
    reverse_num = reverse_num*10 + num%10
    num = num//10
print(reverse_num)

3百钱白鸡
公鸡5元一只,母鸡3元一只,小鸡1元三只,用100块钱买一百只鸡,问公鸡、母鸡、小鸡各有多少只?

for i in range(0,20):
    for j in range(0,int((100-5*i)/3)):
        k = 100-i-j
        if 5*i + 3*j + k/3 == 100:
            print("公鸡%d只,母鸡%d只,小鸡%d只!" % (i,j,k))

4 CRAPS。该游戏使用两粒骰子,玩家通过摇两粒骰子获得点数进行游戏。简单的规则是:玩家第一次摇骰子如果摇出了7点或11点,玩家胜;玩家第一次如果摇出2点、3点或12点,庄家胜;其他点数玩家继续摇骰子,如果玩家摇出了7点,庄家胜;如果玩家摇出了第一次摇的点数,玩家胜;其他点数,玩家继续要骰子,直到分出胜负。

import random
play_flag = False

play_time = 1
play_money = 1000
while play_money>0:
    debt = 0
    while True:
        debt_money = int(input('请输入金额:'))
        if debt_money>0 and debt_money<= play_money:
            debt = debt_money
            break
    num = random.randint(1,7) + random.randint(1,7)
    if num == 7 or num == 11:
        print('第一次的筛子数是%d,玩家胜出' % num)
        play_money += debt
    elif num in (2,3,12):
        print('第一次的筛子数是%d,庄家胜出' % num)
        play_money -= debt
    else:
        print('第一次的筛子数是%d,请继续' % num)
        play_flag = True
    while play_flag:
        play_flag = False
        play_time += 1
        num_rand = random.randint(2,13)
        if num_rand==7:
            print('第%d次的筛子数是%d,庄家胜出' % (play_time,num_rand))
            play_money -= debt
        elif num_rand==num:
            print('第%d次的筛子数是%d,玩家胜出' % (play_time,num_rand))
            play_money += debt
        else:
            print('第%d次的筛子数是%d,请继续' % (play_time,num_rand))
            play_flag = True
    print('玩家剩余钱数是%d' % play_money)

5 斐波那契数列

num_lst = [1,1]
nums = int(input('请输入数列个数'))
if nums>=3:
    for i in range(2,nums):
        num_num = num_lst[i-1] + num_lst[i-2]
        num_lst.append(num_num)
print('%d个斐波那契数列:' % nums)
print(num_lst)

6完美数又称为完全数或完备数,它的所有的真因子(即除了自身以外的因子)的和(即因子函数)恰好等于它本身。例如:6( 6 = 1 + 2 + 3 6=1+2+3 6=1+2+3)和28( 28 = 1 + 2 + 4 + 7 + 14 28=1+2+4+7+14 28=1+2+4+7+14)就是完美数。完美数有很多神奇的特性,有兴趣的可以自行了解。

per_lst = []
for num in range(1,10000):
    num_sqrt = int(sqrt(num))
    zhi_sum = 0
    for num_devide in range(1,num_sqrt+1):
        if num%num_devide==0:
            zhi_sum += num_devide
            if num_devide>1 and num_devide!= num//num_devide:
                zhi_sum += num//num_devide
    if zhi_sum == num:
        per_lst.append(num)
print('10000内的完美数:')
print(per_lst)

7素数指的是只能被1和自身整除的正整数(不包括1)

from math import sqrt
su_lst = []
for num in range(2,100):
    su_flag = True
    num_sqrt = int(sqrt(num))
    for i in range(2,num_sqrt+1):
        if num%i==0:
            su_flag = False
            break
    if su_flag:    
        su_lst.append(num)
print('100内的素数:')
print(su_lst)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值