精华内容
下载资源
问答
  • python如何表示分数

    2020-11-29 11:43:17
    python如何表示分数 Fraction函数是python中实现分数的一个模块(module),可以被拿来直接使用的代码程序,包括类、函数以及标签的定义,是python标准函数库的一部分。 使用是必须先插入模块。 from fractions ...

    python如何表示分数

    Fraction函数是python中实现分数的一个模块(module),可以被拿来直接使用的代码程序,包括类、函数以及标签的定义,是python标准函数库的一部分。
    使用是必须先插入模块。

    from fractions import Fraction
    #插入模块

    f =Fraction(1,2)
    #创建Fraction 类,并初始化为1/2

    print(f )
    #输出分数类对象Fraction(1, 2)

    输入分数时,Fraction开头字母必须大写,否则会报错。
    Fraction(2,8)+1+1.52.75运算中如果出现float数据类型,最终的结果将是float类型数据。如果运算式中只有integer类型和fraction类型,输出结果将是fraction类型。>>> >>> Fraction(2,8)+Fraction(2,5)+3
    #输出:Fraction(73, 20)
    Fraction()方法,非常有意思,可以直接接收分数字符串变成输入。注意输入的分数要加引号。

    a = Fraction(‘1/5’)
    print(a)
    #输出:Fraction(1, 5)

    直接输入小数,Fraction方法直接把小数变成分数。

    from decimal import Decimal
    Fraction(1.1)
    #输出:Fraction(11, 10)

    把字符串变成小数,需要用到decimal类,然后把小数变成分数。

    from decimal import Decimal
    Fraction(Decimal(‘1.1’))
    #输出:Fraction(11, 10)
    先把1.1字符串变成小数,然后在变成分数。

    相关推荐:《Python视频教程》
    特性1:自动约分
    分子分母中有负号时,自动约分并最终 将负号归于分子

    Fraction(10, -5)
    Fraction(-2, 1)

    特性2:二元运算:
    两个分数相加得到一个分数
    一个分数加一个整数得到一个分数
    一个分数加一个浮点数得到一个浮点数
    其他二元运算同加法
    特性3:获取Fraction对象属性
    字面意思,numerator获取分子,denominator获取分母
    特性4:gcd快速获取最大公约数

    from fractions import gcd
    gcd(9, 6)
    #输出:3

    例题:s=1+1/2+1/3+1/4+…+1/9

    s =1
    for i in range(1,10):
    s=s+Fraction(1,i)

    print(s)
    #输出:9649/2520

    学习笔记
    来源于:在这里插入图片描述

    展开全文
  • Python编程要点 import语句 调用模块函数 使用\表示换行 8.1 图解九章 “减分”就是由较大的分数减去较小的分数而求其差。“减分术”即分数减法。 图8-1 问题一之问答 提示 图8-1所示由图解九章源码中的...

    第8章 减分术

    Python编程要点

    • import语句
    • 调用模块函数
    • 使用\表示换行

    8.1 图解九章

    “减分”就是由较大的分数减去较小的分数而求其差。“减分术”即分数减法

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PZWtpQbL-1579141624007)(/api/storage/getbykey/original?key=19113c50e758d17c1b44)]
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vAxn6Krz-1579141624008)(/api/storage/getbykey/original?key=191106a478f78c39686e)]

    图8-1 问题一之问答

    提示

    图8-1所示由图解九章源码中的“图解减分术.py”自动绘制而成,我们可运行脚本文件,查看动态的绘制过程。

    问题一今有九分之八,减其五分之一,问余几何?

    答曰:四十五分之三十一。

    问题二又有四分之三,减其三分之一,问余几何?

    答曰:十二分之五。

    减分术曰:母互乘子,以少减多,余为实。母相乘为法。实如法而一。

    问题一今有八分之五,二十五分之十六,问孰多?多几何?

    答曰:二十五分之十六多,多二百分之三。

    问题二又有九分之八,七分之六,问孰多?多几何?

    答曰:九分之八多,多六十三分之二。

    问题三又有二十一分之八,五十分之十七,问孰多?多几何?

    答曰:二十一分之八多,多一千五十分之四十三。

    课分术(“课分”就是比较两分数的大小,并考核较大分数比较小分数大多少)曰:母互乘子,以少减多,余为实。母相乘为法。实如法而一,即相多也。

    8.2 减分术.py源码

    课分术和减分术的算法相同,只是输出不同。这里只列出减分术的源码。

    我们首先需要在同目录下新建一个“common.py”文件,把前几章的约分函数yue_fen(),数据转换函数shu_hanzi()、hanzi_shu()复制粘贴到这个文件中,供其他.py文件使用。

    # 导入common模块                  批注:
    import common                    使用import语句导入common模块,模块就是common.py文件,
                                     导入后,就可以调用文件中所定义的函数
    # 获取各个分数的分子、分母
    print('请输入分数,以空格分隔:')    这一部分程序逻辑与合分术相同
    l_fenshu = input().split()       用户输入要求中文,如九分之八五分之一
    l_fz=[]
    l_fm=[]
    for f in l_fenshu:
        fm,fz = f.split('分之')              以“分之”为分隔符,将输入的分数分隔成分母、分子
        l_fz.append(common.hanzi_shu(fz))    调用common模块中的hanzi_shu函数将汉字分子转换成数字
        l_fm.append(common.hanzi_shu(fm))    调用common模块中的hanzi_shu函数将汉字分母转换成数字
                                             调用模块函数时,需在函数名前加模块名和.
    # 母互乘子,以少减多,余为实
    cheng1=l_fm[0]*l_fz[1]                       分母的列表和分子的列表中的元素互乘
    cheng2=l_fm[1]*l_fz[0]
    if cheng1 > cheng2:                           比较乘积大小,
        shi = cheng1-cheng2                       以少减多,余值赋予变量shi(实)
    else:
        shi = cheng2-cheng1
    
    # 母相乘为法                                   这部分同合分术
    fa=1
    for m in l_fm:
        fa=fa*m
    
    # 实如法而一                                   这部分同合分术
    zheng=shi//fa
    # 不满法者,以法命之
    fz=shi%fa
    fm=fa
    
    # 打印结果                                    这部分程序逻辑同合分术
    if fz == 0:                                  调用common模块中的shu_hanzi函数
         print("余",common.shu_hanzi(zheng))     将整数部分数字转换成汉字
    else:
        fz_jian,fm_jian=common.yue_fen(fz,fm)    调用common模块中的yue_fen函数约简分母、分子
        if zheng == 0:
            str = common.shu_hanzi(fm_jian)\     用+连接打印字符串,赋值语句太长,一行无法显示,
            +'分之'+common.shu_hanzi(fz_jian)    使用\表示换行,这两行是一条语句
        else:
            str = common.shu_hanzi(zheng)+"又"\    这三行是一条语句
             +common.shu_hanzi(fm_jian)\
             +'分之'+common.shu_hanzi(fz_jian)
        print("余",str)
    

    8.3 运行结果

    运行“减分术.py”来解决减分术中的问题一、问题二、以及课分术的问题一、问题二、问题三,运行结果如图8-2所示。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eFGpclDq-1579141624008)(/api/storage/getbykey/original?key=19115641813148d3c6b3)]
    图8-2 减分术运行结果

    结果显示前两个是减分术的问题,后三个是课分术的问题。

    8.4 练一练

    课分术和减分术的算法相同,只是输出不同。修改减分术代码,将代码的输出部分修改成课分术,结果回答“孰多?多几何?”

    提示:课分术是比较分数大小,所以要记录哪一个是较大的分数。

    展开全文
  • 贪心法:输入一个真分数,编写程序输出其表示为埃及分数之和的形式。如7/8=1/2+1/3+1/24,15/16=1/2+1/3+1/10+1/240,分母和分子分别由键盘分两次输入。 帮同学写实验报告,这是众多题目里面比较中意的一题,也是...

    贪心法:输入一个真分数,编写程序输出其表示为埃及分数之和的形式。如7/8=1/2+1/3+1/24,15/16=1/2+1/3+1/10+1/240,分母和分子分别由键盘分两次输入。

    帮同学写实验报告,这是众多题目里面比较中意的一题,也是花时间比较多的一题。

    解题思路

    设原数值为f,f减去比该数值小一点或相等的最大的埃及分数1/c(<=f),其结果作为新的f=f-1/c,直到f=0。如何找到这个埃及分数呢?其实很简单,c=⌈1/f⌉(⌈⌉表示上取整)。

    核心函数

    核心函数

    解释:round()函数是用来砍掉误差项的,ceil()函数是上取整函数。因为运算过程中会产生形如4.000000000004这样的数,如果不先砍掉误差项的话,ceil(4.000000000004)得到的结果是5,这显然是错的。

    代码

    import math
    a=int(input('分子:'))
    b=int(input('分母:'))
    f=a/b
    s='%d/%d='%(a,b)
    while f > 1e-8:
        c=math.ceil(round(1/f,8))
        s+='1/%d+'%(c)
        f=f-1/c
    s=s[:-1]
    print(s)
    

    代码原图,我平时是用Jupyter Notebook/python 3.0的,因为老师教学用这个。
    全部代码

    写在最后

    读者觉得代码有什么漏洞欢迎指出。我这里是取8位精度,你们可以试着修改完善。不敢说我的代码100%完美,但绝对兼顾了简洁+效用。

    在开始之前我也参考过网络上的解法,不过很少看到有用python做的,即使有也做得挺复杂,特别是用c语言做的,哇真的是觉得太长了,看不进去,对一个用惯python的人,简直受不了。于是我就自己捣鼓,并且花了很多时间去完善,想法、思路、代码都是自己想的,如有雷同纯属巧合。

    也正因花了不少精力,不忍心仅仅为了帮别人完成一次作业,所以决定发表出来。第一次写博客,排版什么的都很简陋,喜欢大家多多包涵、多多支持。

    @Tin立志当程序猿

    展开全文
  • Python编程要点 import语句 调用模块函数 使用\表示换行 8.1 图解九章 “减分”就是由较大的分数减去较小的分数而求其差。“减分术”即分数减法。 图8-1 问题一之问答 提示 图8-1所示由图解九章源码中的...

    第8章 减分术

    Python编程要点

    • import语句
    • 调用模块函数
    • 使用\表示换行

    8.1 图解九章

    “减分”就是由较大的分数减去较小的分数而求其差。“减分术”即分数减法

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Qz16S168-1579049629719)(/api/storage/getbykey/original?key=19113c50e758d17c1b44)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o6YToU9g-1579049629720)(/api/storage/getbykey/original?key=191106a478f78c39686e)]

    图8-1 问题一之问答

    提示

    图8-1所示由图解九章源码中的“图解减分术.py”自动绘制而成,我们可运行脚本文件,查看动态的绘制过程。

    问题一今有九分之八,减其五分之一,问余几何?

    答曰:四十五分之三十一。

    问题二又有四分之三,减其三分之一,问余几何?

    答曰:十二分之五。

    减分术曰:母互乘子,以少减多,余为实。母相乘为法。实如法而一。

    问题一今有八分之五,二十五分之十六,问孰多?多几何?

    答曰:二十五分之十六多,多二百分之三。

    问题二又有九分之八,七分之六,问孰多?多几何?

    答曰:九分之八多,多六十三分之二。

    问题三又有二十一分之八,五十分之十七,问孰多?多几何?

    答曰:二十一分之八多,多一千五十分之四十三。

    课分术(“课分”就是比较两分数的大小,并考核较大分数比较小分数大多少)曰:母互乘子,以少减多,余为实。母相乘为法。实如法而一,即相多也。

    8.2 减分术.py源码

    课分术和减分术的算法相同,只是输出不同。这里只列出减分术的源码。

    我们首先需要在同目录下新建一个“common.py”文件,把前几章的约分函数yue_fen(),数据转换函数shu_hanzi()、hanzi_shu()复制粘贴到这个文件中,供其他.py文件使用。

    # 导入common模块                  批注:
    import common                    使用import语句导入common模块,模块就是common.py文件,
                                     导入后,就可以调用文件中所定义的函数
    # 获取各个分数的分子、分母
    print('请输入分数,以空格分隔:')    这一部分程序逻辑与合分术相同
    l_fenshu = input().split()       用户输入要求中文,如九分之八五分之一
    l_fz=[]
    l_fm=[]
    for f in l_fenshu:
        fm,fz = f.split('分之')              以“分之”为分隔符,将输入的分数分隔成分母、分子
        l_fz.append(common.hanzi_shu(fz))    调用common模块中的hanzi_shu函数将汉字分子转换成数字
        l_fm.append(common.hanzi_shu(fm))    调用common模块中的hanzi_shu函数将汉字分母转换成数字
                                             调用模块函数时,需在函数名前加模块名和.
    # 母互乘子,以少减多,余为实
    cheng1=l_fm[0]*l_fz[1]                       分母的列表和分子的列表中的元素互乘
    cheng2=l_fm[1]*l_fz[0]
    if cheng1 > cheng2:                           比较乘积大小,
        shi = cheng1-cheng2                       以少减多,余值赋予变量shi(实)
    else:
        shi = cheng2-cheng1
    
    # 母相乘为法                                   这部分同合分术
    fa=1
    for m in l_fm:
        fa=fa*m
    
    # 实如法而一                                   这部分同合分术
    zheng=shi//fa
    # 不满法者,以法命之
    fz=shi%fa
    fm=fa
    
    # 打印结果                                    这部分程序逻辑同合分术
    if fz == 0:                                  调用common模块中的shu_hanzi函数
         print("余",common.shu_hanzi(zheng))     将整数部分数字转换成汉字
    else:
        fz_jian,fm_jian=common.yue_fen(fz,fm)    调用common模块中的yue_fen函数约简分母、分子
        if zheng == 0:
            str = common.shu_hanzi(fm_jian)\     用+连接打印字符串,赋值语句太长,一行无法显示,
            +'分之'+common.shu_hanzi(fz_jian)    使用\表示换行,这两行是一条语句
        else:
            str = common.shu_hanzi(zheng)+"又"\    这三行是一条语句
             +common.shu_hanzi(fm_jian)\
             +'分之'+common.shu_hanzi(fz_jian)
        print("余",str)
    

    8.3 运行结果

    运行“减分术.py”来解决减分术中的问题一、问题二、以及课分术的问题一、问题二、问题三,运行结果如图8-2所示。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iotRzuzY-1579049629721)(/api/storage/getbykey/original?key=19115641813148d3c6b3)]

    图8-2 减分术运行结果

    结果显示前两个是减分术的问题,后三个是课分术的问题。

    8.4 练一练

    课分术和减分术的算法相同,只是输出不同。修改减分术代码,将代码的输出部分修改成课分术,结果回答“孰多?多几何?”

    提示:课分术是比较分数大小,所以要记录哪一个是较大的分数。

    展开全文
  • 由于list是一个有序集合,所以,我们可以用一个list按分数从高到低表示出班里的3个同学: &gt;&gt;&gt; L = ['Adam', 'Lisa', 'Bart'] 那我们如何从list中获取指定第 N 名的同学呢?方法是通过索引来...
  • 由于list是一个有序集合,所以,我们可以用一个list按分数从高到低表示出班里的3个同学: L = ['Adam', 'Lisa', 'Bart'] 那我们如何从list中获取指定第 N 名的同学呢?方法是通过索引来获取list中的指定元素。 ...
  • 由于list是一个有序集合,所以,我们可以用一个list按分数从高到低表示出班里的3个同学: >>> L = ['Adam', 'Lisa', 'Bart'] 那我们如何从list中获取指定第 N 名的同学呢?方法是通过索引来获取list中的...
  • 由于list是一个有序集合,所以,我们可以用一个list按分数从高到低表示出班里的3个同学: >>> L = ['Adam', 'Lisa', 'Bart'] 那我们如何从list中获取指定第 N 名的同学呢?方法是通过索引来获取list中的...
  • Python按照索引访问list

    2019-09-25 22:55:20
    由于list是一个有序集合,所以,我们可以用一个list按分数从高到低表示出班里的3个同学: >>> L = ['Adam', 'Lisa', 'Bart'] 那我们如何从list中获取指定第 N 名的同学呢?方法是通过索引来获取list中的...
  • 由于list是一个有序集合,所以,我们可以用一个list按分数从高到低表示出班里的3个同学:&gt;&gt;&gt; L = ['Adam', 'Lisa', 'Bart']那我们如何从list中获取指定第 N 名的同学呢?方法是通过索引来获取...
  • Python基础篇之List二.(顺序访问List)

    千次阅读 2017-12-04 09:29:32
    Python按照索引访问list由于list是一个有序集合,所以,我们可以用一个list按分数从高到低表示出班里的3个同学: L = [‘Adam’, ‘Lisa’, ‘Bart’] 那我们如何从list中获取指定第 N 名的同学呢?方法是...
  • 根据朋友的优秀不优秀如何评判目标任务优秀不优秀(分类算法),是否不同优秀程度的朋友和不同的接近程度要考虑一下(距离权重),看几个朋友合适(k值),能否以分数的形式表示优秀度(概率分布)。 K最近邻概念: ...
  • 昔日的小提琴恩师在之前的学习群里艾特我 视频中有两个xgg 两个xjj演奏同一首曲子的片段 本来想着直接鉴赏一下下然后给个评分滴 然而最近刚好在学人工智能...关键在于评判分数的指标怎么定 用于训练的数据集如何获取
  • PLRMM提供了一种算法的Python实现,该算法可用于在一定数量的排名者中查找聚类并学习其排名功能。 我们称这类簇为首选项组。 每个排名由它在某些项目集上产生的排名集表示。 这些项目由其功能定义。 PLRMM是一种概率...
  • 工具/ IDE:Python / Google Colab / Jupyter Notebook技术:任务1-使用监督ML的预测(级别-初学者)根据编号预测学生的百分比。 学习时间。 这应该通过线性回归完成,因为我们将仅使用2个变量。 该模型的数据可以...
  • 图片文件名是直接用公式行号来命名的,比如1234.png 1234表示第1234行公式的公式图片是1234.png。所以知道了行号,就知道了公式图片路径。 通过公式生成图片稍微复杂一点,需要用到几个库:latex、ghostscript和...
  • sklearn (scikit-learn) 是基于 Python 语言的机器学习工具 简单高效的数据挖掘和数据分析工具 可供大家在各种环境中重复使用 建立在 NumPy ,SciPy 和 matplotlib 上 开源,可商业使用 - BSD许可证 组织构建...
  • sklearn (scikit-learn) 是基于 Python 语言的机器学习工具 简单高效的数据挖掘和数据分析工具 可供大家在各种环境中重复使用 建立在 NumPy ,SciPy 和 matplotlib 上 开源,可商业使用 - BSD许可证 组织构建...

空空如也

空空如也

1 2
收藏数 27
精华内容 10
关键字:

python如何表示分数

python 订阅