Python学习

Python学习刷题系列,这个系列会一直更新,前面是基础,后面会有面向对象,web编程等,学习Python有什么难题也可以关注我的微信公众号“FIsh小站”


1、寻找水仙花数:这是一个三位数,每个位上的数字的立方之和刚好等于它本身

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)

 2、百钱买百鸡:公鸡五元一只,母鸡三元一只,小鸡三只一元2,百元买百鸡,问各多少只

for x in range(0, 21): 
    # x表示公鸡总数
    for y in range(0, 34): 
        # y表示母鸡总数
        z = 100 - x - y 
        # 剩余的为小鸡
        if 5 *x + 3*y +z/3 == 100 and z% 3 == 0:     
            # 小鸡三元一只,小鸡的数目应该是3 的整数倍
            print(f'公鸡: {x}只, 母鸡: {y}只, 小鸡: {z}只')

3、CRAPS 赌博游戏:玩家第一次摇骰子如果摇出了7点或11点,玩家胜;玩家第一次如果摇出2点、3点或12点,庄家胜;玩家如果摇出其他点数则玩家继续摇骰子,如果玩家摇出了7点,庄家胜;如果玩家摇出了第一次摇的点数,玩家胜;其他点数玩家继续摇骰子,直到分出胜负

from random import randint

money = 1000
while money > 0:
    print(f"总资产为:{money}元")
    go_on = False
    # 下注金额必须大于0小于等于玩家总资产
    while True:
        debt = int(input("请下注:"))
        if 0 > debt or debt > money:
            print("您的输入有误,请重新输入")
            break
        # 第一次摇骰子
        first = randint(1, 6) + randint(1, 6)
        print(f"\n玩家摇出了{first}点")
        if first == 7 or first == 11:
            print("玩家胜出\n")
            money += debt
        elif first == 2 or first == 3 or first == 12:
            print("庄家胜出\n")
            money -= debt
        else:
            go_on = True

        while go_on:
            go_on = False
            current = randint(1, 6) + randint(1, 6)
            print(f'玩家摇出了{current}点')
            if current == 7:
                print("庄家胜出\n")
                money -= debt
            elif current == first:
                print("玩家胜出\n")
                money += debt
            else:
                go_on = True
        print(f"总资产为:{money}元")
        if money == 0:
            print("你破产了,游戏结束")
            break

4、斐波那契数列:打印斐波那契数列的前20个

a,b = 0,1
for temp in range(20):
    a,b= b,a+b    # 组包和拆包
    print(a)

5、字符串切割:接收从键盘输入的字符串,遇到空格进行切割,以列表形式输出

str = input ("请输入字符串:")
print(str.split(' '))

6、打印九九乘法表

for i in range(1,10):
    for j in range(1,i+1):
        print(f"{j} * {i} = {i*j}\t",end = '')
        j += 1
    print()
    i += 1

上一篇:java并发编程笔记(三)--管程(二)


下一篇:设计模式——工厂模式和策略模式相结合