首页 > 编程语言 >python第5天

python第5天

时间:2023-12-21 12:56:07浏览次数:40  
标签:fractions 10 False python 代码 denominator Fraction

0. 请问 Python 是否支持链式比较?voC~RW
^dUP)G.5,YBf0[?J:r;13e_|cZ*
答:支持。来自:
[8C(nHWfYQI.]#al3=m% p!"2_
解析:像 3 < 4 < 5 这种就叫链式比较,事实上相当于 3 < 4 and 4 < 5 这么流弊的技能,不是所有语言都支持的哦。+Q{wX
@X(`'tb:hd}~ay"7 AP)0f&JQ
5e3+x#GbS1'8n(<QOB-p*TqI@N|0^A
1. 请问下面两段代码有什么区别呢?]m|nV
+s1dLE}gV3Z`=<JTwBnp
代码 A:来自

  1. >>> if bool(250):
  2. ...     print("Yeah, you are right.")
复制代码
代码 B:版权属于:https://fishc.com.cn
&;c@5<|U:32b`~A6k>g {M,FXDo[
  1. >>> if 250:
  2. ...     print("Yeah, you are right.")
复制代码
答:没有区别。版权属于:https://fishc.com.cn
Mn#"U$RS!|Gu=C)Owkz5VpD@Qq43i
解析:Python 的真值测试它是会自动进行的,所以不使用 bool() 函数也没有任何问题。_(Gmh
^mzOd-N(sTUeGfatR)5_%Z:
zoZF$uyne!&g4Br6Ti-*]GMdPq^k
2. 在 Python 中,所有的对象都可以进行真值检测,对吗?<Pw"U!(3`K
?$U4K*8k)>-MY[}&`Qp^=3C91l] %!
答:对的。Powered 、
#I>p|4'O{@<~Lmwn" Ph:Ykl7E
解析:请相信上面的答案是对的。Powered】
OYSe9-dJD% ]Tk"Z6ql~
pC-y0T,*o@$cG;6)H94e#`mgfP
3. 请问下面表达式的值是什么??CA2Y@_
YXH"%0h#94+$R@{QoPw?pfx;u!
  1. >>> not 3 == 5
复制代码
答:True。来自:https://fishc.com.cn
Blg,W-PidX3&`rmIOz)<jTKhu
解析:由于 3 == 5 的结果是 False,not False 即 True。那肯定有童鞋会问:“为啥不是从左到右,先运算 not 3 的结果是 False,然后 False == 5 是 False 才对丫?”,嗯,这涉及到一个优先级问题,这一点在下一节课中有仔细的讲解,带着疑问继续快乐地学习吧^o^NvW'Qf5
p,?mr;%1KxM hTynlWoXa
}^jh@-(xwmeNM|,{n+]1roL"
4. 在 Python 中,True 和 False 两个关键字是完全等值于 1 和 0 的,对吗?"~9Pq[Y36
Fz^r?60LR-_enE>S;Cuh!f{
答:对的。来自
)H?$*]tIQR@-+Z8>cunl4=Y
解析:其实布尔类型其实就是特殊的整数类型,True 和 False 就是 1 和 0 的别称,但作为条件,使用 True 和 False 显然比 1 和 0 要更好理解。 kKc!&1
6Ru@G+o;eIh|E04pM{}t
7,"s6)l9@O*+m|iMe'p[10?Z:g-#V
5. 请问下面代码打印的内容是什么?<dhUyE
S| 6t_C%z):sf`"-a(?!yG[
  1. >>> print(5 > 3 and 4)
复制代码
答:4。Powered by https://fishc.com.cn
6 b0P!jO:prm`q"y2cF.~<owu]W
解析:你是不是觉得它应该返回个 True 什么的丫?!不的,逻辑运算符的计算结果不一定是 True 或者 False。这一点在下一节课中有仔细的讲解,带着疑问继续快乐地学习吧^o^5_jhU
R`dzGaJ"8V-]LCf&0Ub^;%<u,g3
P3~qj-pB2!;%I0dwix6FL*$^rh
6. 请问下面代码打印的内容是什么?Vj;T_,w
dC!#~FSR=xuO+5h]-"1r
  1. >>> from fractions import Fraction
  2. >>> print(Fraction(1, 2) * 2)
复制代码


答:1。来自:
.]?}'ik0T(dg)mU^9Ba_p
解析:Fraction(a, b) 表示分子为 a,分母为 b 的分数,Fraction(1, 2) 就是二分之一的意思啦,所以乘以 2 的结果当然是等于 1 啦。 {

JISUANUAN pr9@?g

计算:

1708227363155544, 4636617128565048的约分结果

 

from fractions import Fraction
Fraction(1708227363155544, 4636617128565048)

  计算结果:Fraction(7, 19)

fractions -- 有理数

fractions 模块提供了对有理数运算的支持。

一个 Fraction 实例可以由一对整数,或者一个有理数,或者字符串进行构造。


class fractions.Fraction(numerator=0, denominator=1)

解析:numerator 和 denominator 参数是 numbers.Rational 的实例,并且返回一个值为 numerator / denominator 的 Fraction 实例。如果 denominator 参数为 0,将抛出 ZeroDivisionError 异常。


class fractions.Fraction(other_fraction)

解析:other_fraction 参数(另一个分数)是 numbers.Rational 的实例,并返回具有相同值的 Fraction 实例。


class fractions.Fraction(float)

解析:返回一个与 float 参数具有相同值的 Fraction 实例。

注意:由于众所周知的浮点数问题,导致 Fraction(1.1) 并不完全等于 11 / 10,所以 Fraction(1.1) 也不会返回 Fraction(11, 10)。


class fractions.Fraction(decimal)

解析:返回一个与 decimal.Decimal 参数具有相同值的 Fraction 实例。

注意:由于众所周知的浮点数问题,导致 Fraction(1.1) 并不完全等于 11 / 10,所以 Fraction(Decimal(1.1)) 也不会返回 Fraction(11, 10)。


class fractions.Fraction(string)

解析:参数是一个 string 或 unicode 实例,其常见形式如下。

  1. [sign] numerator ['/' denominator]
复制代码
可选的 sign 可以是 + 或 -,然后 numerator 和 denominator(可选)是十进制数字。

无论哪种形式,输入字符串都可能有前导和/或尾随空格。

下面是一些例子,大家可以参考一下 fraction 模块的用法:

  1. >>> from fractions import Fraction
  2. >>> Fraction(16, -10)
  3. Fraction(-8, 5)
  4. >>> Fraction(123)
  5. Fraction(123, 1)
  6. >>> Fraction()
  7. Fraction(0, 1)
  8. >>> Fraction('3/7')
  9. Fraction(3, 7)
  10. >>> Fraction(' -3/7 ')
  11. Fraction(-3, 7)
  12. >>> Fraction('1.414213 \t\n')
  13. Fraction(1414213, 1000000)
  14. >>> Fraction('-.125')
  15. Fraction(-1, 8)
  16. >>> Fraction('7e-6')
  17. Fraction(7, 1000000)
  18. >>> Fraction(2.25)
  19. Fraction(9, 4)
  20. >>> Fraction(1.1)
  21. Fraction(2476979795053773, 2251799813685248)
  22. >>> from decimal import Decimal
  23. >>> Fraction(Decimal('1.1'))
  24. Fraction(11, 10)
复制代码
Fraction 类继承自抽象基类 numbers.Rational,并实现该类的所有方法和操作。

Fraction 实例是可哈希的,所以应该被视为不可变对象。

另外,Fraction 拥有下面这些属性和方法:

numerator

分数的分子。

denominator

分数的分母。

from_float(flt)

构造并返回一个分数,用于表示 flt 参数的确切值。

flt 参数必须是一个浮点数。

注意:由于众所周知的浮点数问题,Fraction.from_float(0.3) 跟 Fraction(3, 10) 不是相同值。

from_decimal(dec)

构造并返回一个分数,用于表示 dec 参数的确切值。

dec 参数必须是一个 decimal.Decimal 实例。

limit_denominator(max_denominator=1000000)

查找并返回与自身最接近的分数,max_denominator 参数指定分母可以接受的最大值。

这种方法对于寻找给定浮点数的有理逼近是有很用的:

  1. >>> from fractions import Fraction
  2. >>> Fraction('3.1415926535897932').limit_denominator(1000)
  3. Fraction(355, 113)
复制代码
或者用于恢复表示为浮点数的有理数:

  1. >>> from math import pi, cos
  2. >>> Fraction(cos(pi/3))
  3. Fraction(4503599627370497, 9007199254740992)
  4. >>> Fraction(cos(pi/3)).limit_denominator()
  5. Fraction(1, 2)
  6. >>> Fraction(1.1).limit_denominator()
  7. Fraction(11, 10)
复制代码
__floor__()

返回一个小于或等于 self 的最大整数。

也可以通过 math.floor() 函数来实现该方法:

  1. >>> from math import floor
  2. >>> floor(Fraction(355, 113))
  3. 3
复制代码
__ceil__()

返回一个大于或等于 self 的最小整数。

也可以通过 math.ceil() 函数来实现该方法。

__round__()

返回一个最接近 self 的整数,四舍五入。

__round__(ndigits)

返回一个最接近 self 的有理数,ndigits 参数指定小数部分四舍五入的位数。

 

评分

彩蛋:
有鱼油提出 “3200 年不是闰年,应该是平年”,

由于涉及到历史和未来的问题,三言两语说不清楚,

这里小甲鱼这里花了两天的时间写了一篇文章进行回复,

写一段代码,输入3次,判断是闰年还是平年

i=0
while   i<3:
    temp = input("请输入任意年份:")
    year = int(temp)
    i+=1
    if year % 4 == 0 and year % 100 == 0:
        print(str(year)+'是世纪闰年')
    elif year % 4 == 0 and year % 100!= 0:
        print(str(year)+'是普通闰年')
    else:
        print(str(year)+'是平年')

print('验证年份试验结束!')

标签:fractions,10,False,python,代码,denominator,Fraction
From: https://www.cnblogs.com/mmjmaomaochong/p/17918736.html

相关文章

  • Mac os安装python3.10
    当你使用Homebrew安装新版本的Python后,python命令通常会链接到新版本。但有时候,系统会维持对默认Python版本的引用,这可能导致python命令仍然指向旧版本。你可以尝试以下步骤来确保正确的Python版本被使用:确认Python3.10是否成功安装:brewinfopython@......
  • Python编写接口测试文档(以豆瓣搜索为例)
    前言很多人会使用postman工具,或者熟悉python,但不一定会使用python来编写测试用例脚本,postman里面可以完整的将python代码复制出来。(以下所有内容以豆瓣网站搜索功能为例子)一、postman接口用例转换为python测试用例打开postman,点击右侧的</>图标,页面右边会显示脚本,顶部修改导出的语......
  • Python接口测试get请求过程详解
    python做接口测试用到的是requests模块,首先要导入requests库,pipinstallrequests1、get直接请求方式以豆瓣网为例:url='https://read.douban.com/'respose=requests.get(url=url)#status_code为返回的状态码print(respose.status_code)#text为返回的数据print(res......
  • 用Python进行websocket接口测试
    我们在做接口测试时,除了常见的http接口,还有一种比较多见,就是socket接口,今天讲解下怎么用Python进行websocket接口测试。现在大多数用的都是websocket,那我们就先来安装一下websocket的安装包。pipinstallwebsocket-client 安装完之后,我们就开始我们的websocket之旅了。我们先来看......
  • Python接口自动化浅析logging封装及实战操作
    一、yaml配置文件将日志中的常用配置,比如日志器名称、日志器等级及格式化放在配置文件中,在配置文件config.yaml中添加:logger:name:ITesterlevel:DEBUGformat:'%(filename)s-%(lineno)d-%(asctime)s-%(levelname)s-%(message)s'封装logging类,读取yaml中的日志配置。二、读取y......
  • Python接口自动化之文件上传/下载接口详解
    〇、前言文件上传/下载接口与普通接口类似,但是有细微的区别。如果需要发送文件到服务器,例如:上传文档、图片、视频等,就需要发送二进制数据,上传文件一般使用的都是Content-Type:multipart/form-data数据类型,可以发送文件,也可以发送相关的消息体数据。反之,文件下载就是将二进制格式......
  • python+excel接口自动化获取token并作为请求参数进行传参操作
    1、登录接口登录后返回对应token封装:importjsonimportrequestsfromutil.operation_jsonimportOperationJsonfrombase.runmethodimportRunMethodclassOperationHeader:def__init__(self,response):self.response=json.loads(response)defget_response_token(......
  • Python中Selenium模块的使用详解
    Selenium的介绍、配置和调用Selenium(浏览器自动化测试框架) 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7,8,9,10,11),Firefox,Safari,GoogleChrome,Opera等。这个工具的主要功能包括:测试浏览器的兼容性——......
  • ERROR: Could not build wheels for opencv-python, which is required to install py
    目录系统环境问题描述问题解决问题二参考文章系统环境#macOS系统版本$sw_versProductName:MacOSXProductVersion:10.14.4BuildVersion:18E2035#Python版本$python--versionPython3.9.13问题描述安装opencv-python报错,安装失败#安装opencv-python的命令......
  • python初识
    一、何为编程语言编程:用代码指挥计算机做事,编写一个特定的程序程序:根据据一堆指令,告诉计算机该做什么代码:写给计算机看的/处理的一条命令,写代码就是给计算机下命令语言:分自然语言和编程语言。自然语言,本质上是人与人之间的交流;编程语言,本质上是计算机跟人的交流。计算机和人都......