跟着博主:川川菜鸟学Python——第八天打卡 P81综合练习

好久没更新了,最近忙着MATLAB复现论文代码,今天终于抽空做完了第四章的练习,有挺多不会的(圈起来的就是,横线的是会一些,卡住了一些),不过还是要继续努力,毕竟自己想要的生活是自己争取来的。

欢迎大家一起交流学习。我也是个新手,偶尔发发博客记录一下自己的努力过程。

以下是部分题目的代码,欢迎交流学习

# 第一题
import random

while int(input("是否开始游戏?(0->退出,1->开始):")):
    print("<欢迎来到大冒险>")
    print("1.石头")
    print("2.剪刀")
    print("3.布")
    select = int(input("请输入你的选择:"))
    robot = random.randint(1, 3);  # 随机生成一个1-3的数字
    if select == 1:
        if robot == 3:
            print("你出的是石头,机器人出的布。你输了!")
            continue
        elif robot == 2:
            print("你出的是石头,机器人出的剪刀,你赢了!")
            break
        else:
            print("你和机器人都出的石头。平局!")
            continue
    elif select == 2:
        if robot == 1:
            print("你出的剪刀,机器人出的石头。你输了!")
            continue
        elif robot == 3:
            print("你出的剪刀,机器人出的布。你赢了!")
            break
        else:
            print("你和机器人都出的剪刀。平局")
            continue
    else:
        if robot == 2:
            print("你出的布,机器人出的剪刀。你输了!")
            continue
        elif robot == 1:
            print("你出的布,机器人出的石头。你赢了!")
            break
        else:
            print("你和机器人都出的布。平局!")
            continue
# 出了while循环
print("\n")  # 打印空行
print("---再见---")

# help(random)
# 第四题
while int(input("是否开始判断几位数(0->退出,1->开始):")):
    num = int(input("请输入你要判断是几位数的数字: "))
    if num >=1000 or num <=-1000:
        print(f"{num}是大等于四位数的数字")
    elif num >=100 or num <-100:
        print(f"{num} 是三位数的数字")
    elif num >= 10 or num < -10:
        print(f"{num} 是两位数的数字")
    else:
        print(f"{num} 是个位数")

print("\n")
print("---再见---")
# 第八题
def triangles(x, y):
    """
    这个函数用于计算杨辉三角中指定位置的数值。

    参数:
    x:表示杨辉三角中的行数,从1开始计数。
    y:表示杨辉三角中某一行内的位置,从1开始计数。

    返回值:
    根据杨辉三角的规律返回对应位置的数值。
    """
    if y == 1 or y == x:
        # 当y等于1或者y等于x时,即在杨辉三角的每行开头或结尾位置,函数返回值为1
        return 1
    else:
        # 当y为其他值时,根据杨辉三角的递推公式来计算当前位置的值
        z = triangles(x - 1, y - 1) + triangles(x - 1, y)
        return z


if __name__ == "__main__":
    n = int(input("请输入杨辉三角的行数:"))
    # 外层循环用于控制输出杨辉三角的行数,从第1行开始,到输入的n行结束
    for i in range(1, n + 1): # 包左不包右
        # 内层第一个循环用于在每行输出前添加适当的空格,以形成杨辉三角的等腰三角形形状
        for j in range(0, n - i + 1):
            print("   ", end=" ") #end=" " 不换行,增加一个空格
        # 内层第二个循环用于输出杨辉三角当前行的每个数值
        for j in range(1, i + 1):
            # 调用triangles函数,计算并输出第i行的第j个值,每个值占6个字符宽度并靠右对齐
            print("%6d  " % (triangles(i, j)), end=" ")#end=" " 不换行,增加一个空格
        print()
# 十三题
num = 0
str = "mfmefmrrom"
for i in str:
    # print(i)
    # if "m" in str:  这个错误是因为,判断第i次循环,str整个中是否包含“m”
    if i == "m":
        num = num +1
    else:
        continue
print(f"字符串 {str} 中m的个数为 {num}" )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值