精华内容
下载资源
问答
  • 浅谈Python里面None True False之间的区别,近似值,分数,浮点数,区别,浮点浅谈Python里面None True False之间的区别易采站长站,站长之家为您整理了浅谈Python里面None True False之间的区别的相关内容。None虽然跟...

    浅谈Python里面None True False之间的区别,近似值,分数,浮点数,区别,浮点

    浅谈Python里面None True False之间的区别

    易采站长站,站长之家为您整理了浅谈Python里面None True False之间的区别的相关内容。

    None虽然跟True False一样都是布尔值。

    虽然None不表示任何数据,但却具有很重要的作用。

    它和False之间的区别还是很大的!

    例子:>>> t = None>>> if t:... print("something")... else:... print("nothing")...nothing

    区分None和False.使用is来操作!>>> if t is None:... print("this is None!")... else:... print("this is ELSE!")...this is None!>>>

    虽然是个小小的区别!但是在Python里面是重要的。你需要将None和不含任何值的空数据结构区分开。

    0值的整型/浮点型,空字符串(‘ '),空列表([]),空元组({}),空集合(set())都是等价于False,但是不等于None。

    现在,写一个函数:>>> def oj(t):... if t is None:... print("this is None")... elif t:... print("this is True")... else:... print("this is False")...

    进行数据测验:>>> oj(None)this is None>>> oj(True)this is True>>> oj(False)this is False>>> oj(0)this is False>>> oj(0.0)this is False>>> oj([])this is False>>> oj(())this is False>>> oj({})this is False

    以上说明,None,False,True还是有很大不同的~

    补充知识:python "0.3 == 3 * 0.1" 为False的原因

    一.引入

    如果你在你的解释器中输入以下第一行代码:>>> 0.3 == 3 * 0.1

    False

    你会发现,输出为False。

    对于CS小白而言,对此表示费解。

    因此我查了相关的资料,进行了一下总结。

    二.浮点算法的问题和局限

    1.计算机硬件对于浮点数的处理方式

    首先,我们必须明白一件事情。浮点数在计算机硬件中表示为基数2(二进制)的分数。

    例如:0.125(10) == 1/10 + 2/100 + 5/1000

    0.001(2) == 0/2 + 0/4 + 0/8

    这两个分数具有相同的值,唯一的实际区别是,第一个分数以10为基数的分数表示,第二个分数以2为基数。当我们输入0.125时,计算机硬件会以第二种方式表示,而不是第一种。

    但是不幸的是,大多数十进制分数不能完全表示为二进制分数。

    结果是,通常我们输入的十进制浮点数仅由计算机中实际存储的二进制浮点数

    近似。但是在十进制不能完全表示为二进制分数的情况下,无论多么近似,终究不是确切值。

    2.例子:对于0.1的处理

    例如0.1(10),无论我们愿意使用多少个2位数字,十进制值0.1都不能精确表示为2进制小数,即以2为底的1/10是无限重复的分数。0.1(10) == 0.0001100110011001100110011001100110011001100110011...(2)

    当我们让它停在某个有限的位数,就可以得出一个近似值。

    因为Python浮点数可使用 53位精度 ,

    因此输入十进制数时计算机内部存储的值0.1是0.00011001100110011001100110011001100110011001100110011010(2)

    这个值接近但是不等于1/10.

    这也是造成print(0.3 == 3 * 0.1)输出为False的原因。

    如果要强制使用python输出计算机内保存的0.1的真实十进制值,应该为>>> 0.1

    0.1000000000000000055511151231257827021181583404541015625

    由于这一串数字实在太长了,所以Python通过显示舍入的值来保持数字的可管理性。所以实际上我们看到是:>>> 0.1

    0.1

    但是我们要明白,机器中的值不完全是1/10,这只是舍入了真实机器值的显示。

    3.一点有趣的东西

    上面我们提到了Python通过显示舍入的值来保持数字的可管理性,我们看到的只是舍入了真实机器值的显示。通过下面的例子,我们就可以更加清楚这一事实。

    当我们用python写下下面的代码时,就会发现这个神奇的现象。

    这本质上是二进制浮点数:这不是Python中的bug,也不是代码中的bug。在支持硬件浮点算术的所有语言中,都会看到同一种东西(尽管某些语言在默认情况下或在所有输出模式下可能不会显示差异)。

    1)0.1+0.2>>> 0.1 + 0.2

    0.30000000000000004

    2)round(2.675, 2)

    i)round( x [, n] )的用法

    作用: 返回浮点数x的四舍五入值。

    参数:

    x – 数值/数值表达式。

    n – 要保留的小数位数,可以省略。若省略,n默认为0,即四舍五入到整数。

    ii)round( 2.675, 2)

    按照我们的逻辑来看,输入round( 2.675, 2 ),输出应该为2.68。但是实际上是:>>> round(2.675, 2)

    2.67

    三.表示错误(选读)

    在这里我们详细说明“ 0.1”示例,并说明我们如何自己对此类情况进行准确的分析。如果你不想深究其背后的原因,下面的可以忽略。

    1.表示错误的概念、影响和原因

    (1)概念

    表示错误是指某些(在实际中为大多数)小数部分不能完全表示为二进制(基数为2)分数。

    (2)影响

    使得Python(或Perl,C,C ++,Java,Fortran和其他许多语言)经常不显示我们所期望的确切十进制数字。

    (3)原因

    如今,几乎所有机器都使用IEEE-754浮点算法,并且几乎所有平台都将Python浮点数映射到IEEE-754“双精度”。754个double包含53位精度,因此在输入时,计算机会努力将浮点数转换为J / 2 ** N形式的最接近分数, 其中J是一个正好包含53位的整数。

    2."0.1"的具体分析

    转化目标:1 / 10 ~= J / (2 ** N)

    所以:J ~= 2 ** N / 10

    1)求解N

    因为J是一个正好包含53位的整数(但是实际上最后我们用的是J的近似值( >=2 ** 52 and < 2 ** 53)是通过N计算出来的),并且N是一个整数,所以我们可以得到N的最佳值是56>>> 2**524503599627370496>>> 2**539007199254740992>>> 2**56/107205759403792793

    2)求解我们要用的J的近似值

    我们通过N来求解实际的J,我们实际上用的J其实是(2**N /10)四舍五入之后的值。

    i)divmod(a, b)

    功能: 接收两个数字类型(非复数)参数,返回一个包含商和余数的元组(a // b, a % b)。

    参数:

    a – 被除数

    b – 除数

    ii)求解J近似值>>> q, r = divmod(2**56, 10)>>> r6

    因为余数为6>5,所以我们用的J的近似值是>>> q+1

    7205759403792794

    3)求解"0.1"的近似值

    因此,在754倍精度中,最接近1/10的最佳近似值是7205759403792794 / 72057594037927936

    【注】由于我们四舍五入,因此实际上比1/10大一点;如果我们不进行四舍五入,则商将小于1/10。但是在任何情况下都不能完全是 1/10!

    4)获取计算机存储值

    通过上面的分析,我们可以看到计算机永远不会“看到” 1/10:它看到的是上面给出的精确分数,它可以得到的最佳754倍近似值(即J的近似值)>>> .1 * 2**56

    7205759403792794.0

    如果我们将该分数乘以10 ** 30,我们可以看到其30个最高有效十进制数字的(截断)值:>>> 7205759403792794 * 10**30 // 2**56

    100000000000000005551115123125L

    在Python 2.7和Python 3.1之前的版本中,Python将该值四舍五入为17个有效数字,即为'0.10000000000000001'。

    在最新版本中,Python会基于最短的十进制分数显示一个值,该值会正确舍入为真实的二进制值,并仅得出'0.1'。以上就是关于对浅谈Python里面None True False之间的区别的详细介绍。欢迎大家对浅谈Python里面None True False之间的区别内容提出宝贵意见

    展开全文
  • basically, I have some code like this:while True:number = int(len(oilrigs)) * 49number += moneytime.sleep(1)In front of this I have a start up screen. However because of this while true loop, it block...

    basically, I have some code like this:

    while True:

    number = int(len(oilrigs)) * 49

    number += money

    time.sleep(1)

    In front of this I have a start up screen. However because of this while true loop, it blocks it from running the actual start up screen. Instead, it just displays this.

    So how do you put the code in the background?

    解决方案

    Try multithreading.

    import threading

    def background():

    while True:

    number = int(len(oilrigs)) * 49

    number += money

    time.sleep(1)

    def foreground():

    # What you want to run in the foreground

    b = threading.Thread(name='background', target=background)

    f = threading.Thread(name='foreground', target=foreground)

    b.start()

    f.start()

    展开全文
  • 我有一个方法,目的是从...+ img_url + " ***") self.log.debug("********** img size = " + str(img_size) + " **********") elem.set("style","width:100%") changed_text = True break if changed_text == True: ...

    我有一个方法,目的是从一些html中获取所有img元素,并添加css样式,以确保如果图像很大,可以调整其大小。在最后一个测试之前,它的效果非常好:最大尺寸&lt;img_size-我尝试过各种不同的方法来表达这个简单的东西,但是它总是正确的-这意味着所有图像都会调整大小,而不管它们的原始大小。在

    代码:def adjust_html(self, html_text):

    # pull image links and adjust those larger than 30k

    # to be width=100%

    html = etree.HTML(html_text)

    r = html.xpath('.//img')

    changed_text = False

    for elem in r:

    for tag, value in elem.attrib.iteritems():

    if tag == 'src':

    largest_size = 30720

    img_size = 0

    img_url = value

    if self.bad_urls.has_key(img_url):

    break

    try:

    usock = urllib2.urlopen(img_url)

    img_size = usock.info().get('Content-Length')

    except:

    self.log.debug("***** 406 for " + img_url)

    self.bad_urls[img_url] = True

    break

    if img_size is None:

    break

    else:

    **if (largest_size < img_size):**

    self.log.debug("*** " + img_url + " ***")

    self.log.debug("********** img size = " + str(img_size) + " **********")

    elem.set("style","width:100%")

    changed_text = True

    break

    if changed_text == True:

    html_text = etree.tostring(html)

    return html_text

    我知道这里一定有一些简单的错误-我只是不明白:)

    展开全文
  • 所以在我的项目中,我遇到了这段美丽的代码from CoreDefaults import FALSE, TRUE在查看CoreDefaults模块后,我看到了这一点TRUE = 1 == 1 # some part of my mind was blown hereFALSE = 0 == 1 # which I honestly...

    我想我只是目睹了一些非常可怕的东西,而且很难消化!

    所以在我的项目中,我遇到了这段美丽的代码

    from CoreDefaults import FALSE, TRUE

    在查看CoreDefaults模块后,我看到了这一点

    TRUE = 1 == 1     # some part of my mind was blown here

    FALSE = 0 == 1    # which I honestly thought was clever and it really is!

    但后来它提出了一个问题,当python给出默认的True和False时,为什么有人会评估True和False的值然后分配给这些变量但是我得到了预感,任何人都会做的唯一原因是这些值是否可以重新分配!

    所以我尝试了以下内容

    >>> True

    True

    >>> False

    False

    >>> True = False   # True is assigned to False and it is NOT OK ?

    >>> True

    False              # Python, I think it's over between you and me.

    这种行为是否正常?这是应该实施的方式吗?为什么不让它不可编辑?使用python时这是一个安全风险还是与其他语言一样?任何聪明的方式使它更像不可编辑,就像我需要覆盖的任何内置?我今晚怎么睡着了?

    我正在使用python 2.6.6。

    编辑1:

    那么我们可以使用0和1代替False和True吗?我认为这更难以证明了吗?

    好像它在python 3.6中不起作用:"无法分配给关键字"

    制作不可编辑的东西是创造一个特例。 Python试图避免特殊情况。如果你真的坚持下去,Python可以让你自己动手。

    是的,在Python2 True和False中是简单变量,可以使用新值进行分配。没什么好担心的,因为每个模块都有自己的全局范围。

    如果您使用的是2010年8月发布的Python版本,那么担心重新绑定内置版本是您遇到的最少问题。

    @Daniel:所以在一个模块中True可能是True而在其他模块范围内True可能是False?那将更加疯狂!

    @ d-coder:True和False是简单名称,因此属于某个范围,与任何其他变量一样。你为什么不担心任何其他常数被覆盖?

    @Daniel:我没有尝试过其他变量,但我(或任何其他python狂热分子)希望True为真,因为关键字/ constant / variable表示它是!

    @ d-coder:和True将是真的,直到你有意识地改变它。当她/他寻找True = something时,每个人都会立刻看到它。

    @Daniel:嗯。那么我们应该使用0和1而不是True和False吗?这听起来确实是失败的。

    @ d-coder:它总是失败证明,因为你控制你的代码,所以没有人覆盖True。

    在Python 2中,True和False内置"常量"。你说它不安全是对的。但是Python实际上并没有常量,所以为了不可能分配不同的值,它们需要是关键字。 True和False是Python 3中的关键字。但是将这些新关键字添加到Python 2本身就具有破坏性。

    "你说这不安全是对的。"从安全的角度来看?也许我正在遭受想象力的失败,但你能详细说明吗?请记住,任何以"首先,攻击者获得对源代码的写入权限"开头的攻击策略都将生效,无论True和False是否可写。

    谁说了一个关于攻击者的事情?这是不安全的,因为它可以意外地改变你知道的东西的价值(或者在这种情况下,相信你知道)是一个常数。考虑一个传递给函数的布尔值列表,然后错误地将值赋给该列表的元素(因为您得到的参数顺序错误)。等等。

    我怀疑"你是不是很安全"是从代码可靠性的角度来看,虽然OP确实询问了安全性。人们是否应该能够用脚射击自己是绝对主观的,而Python倾向于让程序员有能力做任何事情。

    "谁对攻击者说了什么?" - 哦,我以为你回答了OP的问题,"这是一个安全风险[?]"。如果你只是在谈论一个用户如何指责任务并获得一堆真正奇怪的错误,我同意这是可能的。

    BoarGules答案大多正确但不完整。内置的bool类型和内置的False和True是在2.2.z版本之一中添加的。 (这是在"维护版本中没有新功能"规则之前。事实上,中期版本添加引起的混乱是规则的原因之一。)

    在此之前,想要使用False和True的人必须在代码顶部附近编写类似下面的内容。

    False, True = 0, 1

    使False和True不可编辑的关键字会破坏现有代码。这确实是令人厌恶的。添加后,人们可以选择编辑他们的代码

    try:

    False

    except NameError:

    False, True = 0, 1

    按顺序,当运行较新的2.x版本时,要使False和True为bool,并打印为'False'和'True',而是打印为0和1。

    在3.0中,当大多数人已经放弃对2.2及之前的支持,因此不再需要分配备选方案时,False和True成为关键字。

    展开全文
  • [true, true, true, true, true, true, true], 'times': {'start_time': '12:00', 'end_time': '10:00'}}], 'space_usages': ['Fitness', 'Events', 'Classes', 'Performance']} 这也不管用{'id': 'c8d5185667f', '...
  • What is the difference betweenmylist = reversed(sorted(mylist))vsmylist = sorted(mylist, reverse=True)Why would one be used over the other?How about for a stable sort on multiple columns such asmylist...
  • SELECT if( if(1=1,null,0) = if(1=1,null,0),1,2) ; -- 2 if(表达式,true时的结果,非true时的结果)
  • 15 16 17 神器的print函数 py赋值 布尔(true false)第一课 神奇的print函数# coding:utf-8# 神奇的print函数 支持可变参数print("hello world") #结果为 hello worldprint("a","b","c","d","e") #结果为 a b c d e#...
  • c++中-1是true呢还是false呢

    千次阅读 2021-05-22 04:40:35
    今天想看一下引用c++中的,然后看到网上有问c++中-1是true or false呢?用vc6.0是了一下,是true。vc6.0中应该是非0的都是true,0为false。java我也试了一下,if(1)这种语句编译都不能通过,java中if()里面只能放...
  • true是什么意思

    2021-03-23 23:56:50
    计算机编程语言中有很多单词都是有特殊的含义,比如说false和true,你知道他们一般情况下代表着什么含义吗?下面请听小编给你说说。实际上编程语言中的true一般定义为“真”,而false代表为“假”。他们通常用于对...
  • PHP中false和true问题

    2021-03-23 23:57:01
    举个例子var_dump(true == -1);//truePHP中的true和false到底对应的个啥?回复内容:举个例子var_dump(true == -1);//truePHP中的true和false到底对应的个啥?我感觉这个问题你可以看看手册给了和详细的说明在PHP中...
  • 返回true或false随机

    2021-07-16 22:37:57
    I need to create a Java method to return true or false randomly. how can i do this ?解决方案The class java.util.Random already has this functionality:public boolean getRandomBoolean() {Random random =...
  • What operation do I need to do to always get a False value to become True or to get a True value to become False?In other words, what do I do to switch the Boolean value of a given variable?new_dict =...
  • False Positive (简称FP):判断...(实际为正)True Positive (简称TP):判断为正,且实际为正。True Negative (简称TN):判断为负,且实际为负。 解释: 不管是false positive,false nagitive还是true positive或者t...
  • java中true是关键字吗

    2021-03-08 09:02:59
    随机推荐 贝赛尔曲线UIBezierPath(后续) 使用CAShapeLayerUIBezierPath可以实现不在view的drawRect方法中就画出一些想要的图形 . 1:UIBezierPath: UIBezierPath是在 UIKit 中 ... 代码性能优化——task var t1 = ...
  • true 是 bash 的内建命令,它的返回值($? 的值)是 0(代表执行成功)。和 true 相对应的命令是 false 命令,它也是 bash 的内建命令,它的返回值是 1(代表执行失败)。true 和 false 这两个命令常用于在 script 中作为...
  • 1.说明:xxx?xxx:xxx;第一个'xxx'是写条件语句,条件自己根据需求定第二个'xxx'是当条件为真时会得到的值第三个'xxx'...true:false;String result2="abc"=="abc"?"aa":"bb";int result3="ABC".equals("abc")?0:1;Sys...
  • JAVA参数TRUE/FALSE值

    2021-03-04 01:00:03
    在应用中添加一个关闭音量的按钮,实现功能是,当用户调节框时判断true还是false,然后设置为相反。我觉得只要简单改变SharedPreference的truefalse。最开始的框架代码如下:SharedPreferencesgetPrefs=...
  • 由于我已经多次访问该页面,因此我决定发布一个示例比较测试。结果:"" ->... true0 -> false0 -> false0.1 -> true1 -> true1.1 -> true25 -> truenull -> false[] -> false[1]...
  • 开始的时候,需要用以下函数来做一个判断,根据返回的值来做一些后续判断处理:def is_success(param):if not param:return Falsereturn Truedef process():ret = is_sucess('p')if ret:print 'success'else:print '...
  • 1.首先,他们的默认值都是false auto_now_add=True 无论是update还是.save()都不能更改他的值,一般用于记录数据的创建时间 auto_now=True update方法不能改变其时间 .sava() 能够改变其时间
  • 设置索引的时候,我们给某些字段的store属性设置为true,在查询时,请求中可以携带stored_fields参数,指定某些字段,最后,这些字段会被包含在返回的结果中。如果请求中携带的字段没有被储存,将会被忽略。 示例...
  • 解析Python中while true的使用

    千次阅读 2021-01-28 19:52:30
    无限循环如果条件判断语句永远为 true,循环将会无限的执行下去,如下实例: #!/usr/bin/python# -*- coding: UTF-8 -*-var = 1while var == 1 : # 该条件永远为true,循环将无限执行下去num = raw_input("Enter a ...
  • 记得以前的windows 任务定时是可以的正常使用的,今天试了下,发现不能正常使用...首先最容易的是while true死循环挂起,上代码import osimport timeimport sysfrom datetime import datetime, timedeltadef One_Pl...
  • 而在数据库的配置中,已经有autoReconnect=true 看来不起作用。。。 临时解决方法,就是重启应用。 但是不是解决之道. 网上搜索,说是修改mysql数据库的wait_timeout 。但遭到了DBA的强烈抵制,会影响其他的mysql的...
  • 想问一下就是while(true)发挥了什么作用。class Rnd_36_7{public static void main(String[] args){int a[] = new int[7];for( int i=0;i{one_num:while(true){a[i] = (int)( Math.random()*36 ) +1;...
  • self.bodySearched = True print "You find a keycard that says 'storage' on it." self.lab_room() elif self.choice == "go back": self.main_hallway() newGame = Game() 现在newGame是一个类型为Game的对象,...
  • not x in y 被评估为 x not in y您可以通过反汇编代码来确切了解发生了什么 . 第一种情况按预期工作:>... x = lambda: False in [False, True]>>> dis.dis(x)1 0 LOAD_GLOBAL 0 (False)3 LOAD_GLOBAL ...
  • 如果行匹配,则语句SELECT TRUE返回1。让我们首先创建一个表-mysql>createtableDemoTable(Namevarchar(100));使用插入命令在表中插入一些记录-mysql>insertintoDemoTablevalues('Chris');mysql>...
  • Python3中真真假假True、False、None等含义是什么发布时间:2020-11-19 14:27:34来源:亿速云阅读:71作者:小新小编给大家分享一下Python3中真真假假True、False、None等含义是什么,相信大部分人都还不怎么了解,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,511,063
精华内容 3,804,425
关键字:

true与true的区别