《练习100》21~25

这篇具有很好参考价值的文章主要介绍了《练习100》21~25。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

题目21

# 两个乒乓球队,进行比赛,各处三人,甲队为abc,乙队为xyz。a不和x比,c不和xz比。编程找出三队选手名单
team_a = ['a','b','c']

# 站在乙队的角度,从甲队中挑选对手
for i in team_a:        # 为x挑选对手
    for j in team_a:    # 为y挑选对手
        for k in team_a:# 为z挑选对手
            # 首先每位选手的对手不能相同
            if i == j or i == k or j == k:
                continue 
            
            # 然后根据选手喜好挑选
            if i == 'a' or i == 'c' or k == 'c':
                continue
            
            print(f'x vs {i}, y vs {j}, z vs {k}')

team_b = ['x', 'y', 'z']
# 站在甲队的角度,从乙队中为甲队队员挑选选手
for i in team_b:        # 为a挑选对手
    for j in team_b:    # 为b挑选对手
        for k in team_b:# 为c挑选对手
            # 对手不能是同一人
            if i == j or i == k or j == k:
                continue 
            
            if i == 'x' or k == 'x' or k == 'z':
                continue
            print(f'a vs {i}, b vs {j}, c vs {k}')  

# 先生成所有对局可能,然后依次为甲队的三个选手挑选比赛
match=[]
for i in team_a:
    for j in team_b:
        match.append((i,j))

#挑选三场比赛
for i,j in match:
    for k,l in match:
        for m,n in match:
            # 一个选手只能参加一场
            if i == k or i == m or k == m:
                continue
            if j == l or j == n or l == n:
                continue 
            
            # 依次为甲队的三位选手挑选比赛
            if i != 'a' or k != 'b' or m != 'c':
                continue
            
            # a不和x比,c不和xz比
            if i == "a" and j == 'x':
                continue
            
            if m == 'c' and (n == 'x' or n == 'z'):
                continue
            
            print(f'{i} vs {j}, {k} vs {l}, {m} vs {n}') 

题目22

# 打印一个棱形
#   *
#  ***
# *****
#*******
# *****
#  ***
#   *

# 规则 空白和*的数量和为7,*数量为奇数,总的行数也是7

star_cnt = 1
for i in range(7):
    half_space = (7 - star_cnt)//2
    print((' ' * half_space) + ("*" * star_cnt))
    if i < 7//2:
        star_cnt += 2
    else:
        star_cnt -= 2

题目23

# 有一个分数序列,2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列前20项之和
# 分开分析:
# 次数:1,2,3,4,5,6
# 分子:2,3,5,8,13,21, ...
# 分母:1,2,3,5, 8,13, ...

# 下列式子中出现的n-1,n-2 均为下角标
# 分子,起始f1 = 2, f2 = 3, f3 = f2 + f1, fn = fn-1 + fn-2 (n >2)
# 分子:f1 = 1, f2 = 2, f3 = f1 + f2 = 3, f4 = f3+f2 = 5, f5 = f4 + f3 = 8, fn = fn-1 + fn-2 (n>2)

def get_num(f1: int, f2: int, n: int):
    if n == 1:
        return f1
    if n == 2:
        return f2

    for i in range(3, n+1):
        f1, f2 = f2, f1+f2

    return f2


# 一起分析:
# 后一项的分子:是前一项的分子+分母
# 后一项的分母,是前一项的分子

def get_num1(n: int):
    f1 = 2
    f2 = 1
    sum = f1/f2
    if n == 1:
        return sum
    for i in range(1, n):
        f2, f1 = f1, f1+f2
        sum += f1/f2
    return sum


while True:
    try:
        n = int(input("请输入重复的次数:\n"))
        sum = 0.0
        for i in range(1, n+1):
            sum += get_num(2, 3, i)/get_num(1, 2, i)
            if i == n:
                print(f' {get_num(2,3,i)}/{get_num(1,2,i)}', end='')
            else:
                print(f' {get_num(2,3,i)}/{get_num(1,2,i)} +', end='')
        print(" = ", sum)
        print(get_num1(n))
    except ValueError:
        print("请输入一个整数")
        break

题目24

# 求1+2!+3!+4!+...+20!之和
sum = 0
for i in range(1, 21):
    product = 1
    for j in range(1, i+1):
        product *= j
    sum += product
    print(f"i = {i}, product = {product}")
print("1+2!+3!+4!+...+20! =",sum)

题目25

# 利用递归的方法求5!
# 5!= 1*2*3*4*5
def fact(j):
    if j == 0:
        return 1
    else:
        return  j*fact(j-1)

for i in  range(5+1):
    print(f"{i}! = {fact(i)}")

文章来源地址https://www.toymoban.com/news/detail-610191.html

到了这里,关于《练习100》21~25的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 100道python练习题(九)

    请看以下第81到90题的代码示例: 编写一个程序,判断一个字符串是否是回文字符串。 编写一个程序,判断一个数是否是质数。 编写一个程序,生成斐波那契数列的前n项。 编写一个程序,找出一个列表中最大的元素。 编写一个程序,判断两个字符串是否互为字母异位词。

    2024年02月12日
    浏览(38)
  • 第二章:25+ Python 数据操作教程(第十三节NUMPY 教程与练习)

    NumPy(“Numerical Python”或“Numeric Python”的缩写)是 Python 中对数组和矩阵进行快速数学计算的最基本的软件包之一。在处理多维数据时它也非常有用。集成C、C++和FORTRAN工具是一件幸事。它还提供了许多傅里叶变换 (FT) 和线性代数函数。   人们可能会想到为什么我们应该更喜

    2024年02月12日
    浏览(34)
  • 【Python基础练习100题--第二篇:文件篇】

    这些题都是在B站的练习题,链接在这 对于刚学python的新手来说十分的适合, 可以加强和巩固我们的基础。 嘿嘿 一起噶油吧!🍉 🍉 学无止境,都看到这了,点个赞关注支持一下呗!嘿嘿(* ̄︶ ̄)

    2024年02月02日
    浏览(45)
  • 100+Python挑战性编程练习系列 -- day 23

    Question 92 根据参加者在大学运动会的成绩表,你必须找出亚军的分数。你会得到分数。将它们存储在列表中并查找亚军的分数。 如果将以下字符串作为程序的输入: 5 2 3 6 6 5 然后,程序的输出应该是: 5 方法1: 方法2: Question 93 给定字符串S和宽度W。你的任务是将字符串包

    2024年02月07日
    浏览(39)
  • 100+Python挑战性编程练习系列 -- day 2

    Question 4 编写一个程序,从控制台接收一个逗号分隔的数字序列,并生成一个列表和一个包含每个数字的元组。假设向程序提供以下输入:34,67,55,33,12,98 然后,输出应为:[‘34’, ‘67’, ‘55’, ‘33’, ‘12’, ‘98’] (‘34’, ‘67’, ‘55’, ‘33’, ‘12’, ‘98’) Question 5 定义

    2024年02月02日
    浏览(36)
  • 100+Python挑战性编程练习系列 -- day 11

    Question 38 对于给定的元组(1,2,3,4,5,6,7,8,9,10),编写一个程序,在一行中打印前半部分值,在一行中打印后半部分值。 方法1: 方法2: 方法3: Question 39 编写一个程序来生成并打印另一个元组,其值是给定元组中的偶数(1,2,3,4,5,6,7,8,9,10)。 Questi

    2024年02月04日
    浏览(57)
  • 爆肝更新 Python 100道基础入门练习题(附答案)

    前言 大家早好、午好、晚好吖 ❤ ~ 更多精彩内容、资源皆可点击文章下方名片获取此处跳转 实例001:数字组合 题目: 有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少? 程序分析: 遍历全部可能,把有重复的剃掉。 实例002:“个税计算”

    2024年02月07日
    浏览(45)
  • 【100天精通python】Day21:文件及目录操作_文件的权限处理和批量处理

    目录 专栏导读  1. 文件的权限处理 1.1 查询文件权限 1.2 修改文件权限

    2024年02月14日
    浏览(42)
  • web安全学习笔记【21】——安全开发

    安全开发-PHP应用留言板功能超全局变量数据库操作第三方插件引用 #知识点: 1、 PHP留言板前后端功能实现 2、 数据库创建架构 增删改查 3、 内置超全局变量HTMLJS混编 4、 第三方应用插件传参对象调用 DAY1 #章节点 PHP: 功能: 新闻 列表, 会员中心 , 资源下载 , 留言 版,

    2024年04月14日
    浏览(51)
  • 飞书开发学习笔记(二)-云文档简单开发练习

    首先还是进入开放平台 飞书开放平台:https://open.feishu.cn/app?lang=zh-CN 云文档相关API都在“云文档”目录中,之下又有\\\"云空间\\\",“文档”,“电子表格”,“多维表格”等子模块, 各自有对应的功能API。 2.1 获取我的空间目录下的文件清单 对于一个企业用户而言,他拥有一个

    2024年02月05日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包