有时候需要将分数化简,比如:3/12就应该表示为:1/4

12/3就应该表示为:4

等等,今天就简单使用python实现一下,思想很简单:

1.判断分母是否为0,为0则终止,输入错误

2.判断分子是否可以整除分母,是这说明输入的形式实际为一个整数,化简输出即可

3.找到二者中较小的数字,以此为基准,遍历从1到该数,看原始数字分母分子是否可以同时整数遍历到的数字,若能则更新分子分母,否则继续遍历

实现如下:

#!usr/bin/env python

#encoding:utf-8

'''

__Author__:沂水寒城

功能:输入两个整数,转化为不可约分数形式

'''

import random

def random_pair_num_generator(total_num=20, max_value=1000):

'''

生成随机数对作为分子分母,用于测试

'''

num_list=[]

for i in range(total_num):

num1=random.randint(1,max_value)

num2=random.randint(1,max_value)

num_list.append([num1,num2])

return num_list

def transform_num2_ratio(num1, num2):

'''

输入:分子,分母

输出:不可约分数形式

'''

if num2==0:

print '分母不能为0,重新输入!'

elif num2%num1==0:

print num2/num1

else:

temp=min(num1, num2)

for i in range(1,temp):

if num1%i==0 and num2%i==0:

num1/=i

num2/=i

print str(num1)+'/'+str(num2)

def main_func(num_list):

'''

主调用函数

'''

for i in range(len(num_list)):

one_num=num_list[i]

print '------------------------------------------------------------------'

transform_num2_ratio(one_num[0], one_num[1])

if __name__ == '__main__':

transform_num2_ratio(4,6)

transform_num2_ratio(4,12)

transform_num2_ratio(4,0)

num_list=random_pair_num_generator(total_num=20, max_value=1000)

main_func(num_list)

结果如下:

2/3

3

分母不能为0,重新输入!

------------------------------------------------------------------

49/45

------------------------------------------------------------------

127/60

------------------------------------------------------------------

190/473

------------------------------------------------------------------

951/254

------------------------------------------------------------------

47/313

------------------------------------------------------------------

676/387

------------------------------------------------------------------

255/563

------------------------------------------------------------------

124/87

------------------------------------------------------------------

325/43

------------------------------------------------------------------

694/293

------------------------------------------------------------------

369/295

------------------------------------------------------------------

311/317

------------------------------------------------------------------

89/91

------------------------------------------------------------------

13/103

------------------------------------------------------------------

74/149

------------------------------------------------------------------

5/48

------------------------------------------------------------------

759/277

------------------------------------------------------------------

721/125

------------------------------------------------------------------

979/644

------------------------------------------------------------------

179/38

[Finished in 0.3s]

python怎么实现分数形式_python实现将将输入的可约分数化简为不可约分数相关推荐

  1. python怎么实现分数形式_python分数怎么表示什么

    详细内容 Fraction函数是python中实现分数的一个模块(module),模块是由别人写的,并且可以被拿来直接使用的代码程序,包括类.函数以及标签的定义,是python标准函数库的一部分.使用 ...

  2. python怎么进行分数运算_Python中的分数运算

    Python中的分数运算,在Python标准库fractions中的Fraction对象支持分数运算.具体操作如下: 在windows下,通过cmd进到dos shell,输入python3进入到py ...

  3. python逆序输出字符串_python实现对指定输入的字符串逆序输出的方法

    这篇文章主要介绍了python实现对指定输入的字符串逆序输出的6种方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 对于一个给定的字符串,逆序输出,这个任务对于python来说是一种很简单的操作 ...

  4. python函数调用的一般形式_Python的函数的定义与使用示例

    Python培训分享函数的定义与使用示例,结合实例形式分析了Python函数的定义.参数.变量作用域.返回值等相关概念与使用技巧. Python定义函数使用def关键字,一般格式如下: def 函数名 ...

  5. python列表的表示形式_python 列表推导式

    1.列表推导式书写形式: [表达式  for  变量 in  列表]   或者 [表示式   for  变量  in  列表 if 条件] 1 #!/usr/bin/python 2 #-*- cod ...

  6. python字符串的表示形式_python - 如何为类对象创建自定义字符串表示形式?_class_酷徒编程知识库...

    当前python 3的更新如下:class MC(type): def __repr__(self): return 'Wahaha!' class C(object, metaclass=MC): ...

  7. python二分之紧凑形式_python实现二分查找算法

    介绍 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法.但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列. 前提 必须待查找的序列有序 时间复杂 ...

  8. python判断手机号码是否正确_Python.弄清楚如何输入正确的电话号码

    因此,我是python的新手,我正在编写一个程序,该程序接受XXX-XXX-XXXX格式的电话号码,并将所有字母更改为相应的数字.我需要检查条目并确保其格式正确,如果不正确,请允许其重新输入.我很难让 ...

  9. python逆序输出字符串_python实现对指定输入的字符串逆序输出的6种方法

    编写一个Python程序,提示用户输入一个字符串,程按照你的要分享编写的逆序显示字符串的Python3程序如下 s = input("请输入一个字符串:")print(s[::-1 ...

  10. python匿名函数的作用_Python中的匿名函数及递归思想简析

    匿名函数 前言 上次咱们基本说了一下函数的定义及简单使用,Python中的基本函数及其常用用法简析,现在咱们整点进阶一些的.同样都是小白,咱也不知道实际需要不,但是对于函数的执行顺序以及装饰器的理解还 ...

最新文章

  1. Array.slice 8 种不同用法
  2. 基本拖拽效果,使用 mousedown , mousemove , mouseup实现
  3. Spring Boot (4)---配置文件详解
  4. 人脸表情识别从0到部署,猜猜『轮到你了』的微笑狼人到底是谁!
  5. 【正点原子STM32连载】第十章 STM32CubeMX简介 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
  6. 基于java的商店销售管理系统
  7. java socket 连接异常_JAVA Socket连接服务器时可能抛出的异常
  8. Well-ordered String
  9. vue的微信语音功能,录音+对接口返回amr音频播放
  10. UVM基本介绍(UVM class hierarchy、验证平台、树状图)
  11. FinTech头条丨神州信息分布式核心助力广西北部湾银行科技惠民,打造“广西自己的银行”!
  12. Arduino库 <TFT_eSPI> 中文字库的制作与使用
  13. cad图纸怎么看懂_如何看懂CAD图?
  14. 在线课程推荐(国外篇)
  15. 血氧仪语音芯片,超低功耗待机语音IC方案,可自己烧写语音WT588F
  16. ggplot2--geom_smooth和曲线拟合画图
  17. python os.path.split_python 中的split()函数和os.path.split()函数
  18. Linux系统下利用Impost3r劫持sudo命令窃取凭据
  19. 使用iSCSI搭建共享存储服务
  20. COM ATL IDispatchEx InvokeEx 钩子

热门文章

  1. 转换到coff期间_error LNK1123: 转换到 COFF 期间失败
  2. 小程序超过2M限制的方法——分包加载
  3. 微信小程序表格前后台分页
  4. OpenGL着色器程序解析--点光源
  5. Mac好用的截图工具:Snipaste
  6. python jinja2_Python jinja2
  7. 小谈 Ubuntu 联网
  8. 机器视觉是什么,未来前景怎么样?
  9. 微信小店开发(1) 获取分类
  10. 数据分析中的统计学知识