1、str == null; 2、"".equals(str); 3、str.length <= 0; 4、str.isEmpty(); 注意:length是属性,一般集合类对象拥有的属性,取得集合的大小...length(); 说明: 1、null表示这个字符串不指向任何的东西,如果这时候你调用它的方法,那么就会出现空指针异常。 2、""表示它指向一个长度为0的字符串,这时候调用它的方法是安全的。 3....str1还不是一个实例化的对象,而str2已经实例化。...如果str1=null;下面的写法错误: if(str1.equals("")||str1==null){ } 正确的写法是 if(str1==null||str1.equals("")){ //所以在判断字符串是否为空时...所以,判断一个字符串是否为空,首先就要确保他不是null,然后再判断他的长度。 String str = xxx; if(str != null && str.length() !
总的来说 str():将传入的值转换为适合人阅读的字符串形式 repr():将传入的值转换为 Python 解释器可读取的字符串形式 传入整型 # number resp = str(1) print(...resp, type(resp), len(resp)) resp = str(1.1) print(resp, type(resp), len(resp)) resp = repr(1) print...resp, type(resp), len(resp)) resp = repr(1.1) print(resp, type(resp), len(resp)) # 输出结果 1 str...'> 1 1.1 str'> 3 1 str'> 1 1.1 str'> 3 传入字符串 # string resp = str("test") print...'> 4 'test' str'> 6 repr() 会在原来的字符串上面加单引号,所以字符串长度会 +2
支持高达500万QPS、千亿向量规模;覆盖腾讯视频、QQ浏览器、QQ音乐等百个业务场景,每日调用量超千亿!
第3条:知道bytes和str的区别 Item 3: Know the Differences Between bytes and str 写在前面:我们一般用字符串(str)表示字符序列,但是还有另一种包含原始数据的字符序列...Python中有2种表示字符序列的类型:bytes和str。...第一个问题是bytes和str看起来很像,但是它们不兼容。所以你必须明确字符序列的类型。...2种表示字符序列的类型:bytes和str。...• 使用helper方法确保你的操作对象是你期望的(8bit值,UTF-8编码字符串,Unicode码点,etc)。 • bytes和str不能一起用在运算符两端。
下面看两个例子:修改字符串中的字符 示例1: #include int main(void) { char str[20] = "hello"; str[0] = 'H';..."hello"; str[0] = 'H'; printf("%s\n",str); return 0; } 运行结果: 无打印信息输出 可见,使用(1)方式定义的字符串其字符是可以修改的,...(2)中可以成功编译和链接,但运行时可能会出现错误,我编译与运行的平台是window10平台,运行结果是无打印信息输出,在其他不同的平台运行可能会出现段错误(Segment Fault)或者写入位置错误...这两种表示字符串的方式的主要区别是:字符串指针指向的内容是不可修改的,字符数组是可以修改的,即(2)方式定义的字符串保存在常量区,是不可更改的,(1)方式定义的字符串保存在全局数据区或栈区,是可修改的。...内存的分配方式: 内存分配可分为三种:静态存储区、栈区、堆区。 1、静态存储区:该内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在,它主要存放静态数据、全局数据和常量。
简而言之: __str__ 的目标在于可读性(对用户更友好) __repr__ 的目标在于无歧义(更有助于调试) 举个栗子(Difference between str and repr?)...>>> repr(today) 'datetime.datetime(2020, 3, 28, 11, 6, 49, 580643)' 注:str()和repr()函数分别调用的是 __str__ 和...__repr__ 从上面不难看出, __str__ 强调对于用户的可读性,而 __repr__则倾向于描述对象本身。...另外在《流畅的Python》一书中提到如果这两个方法只实现一个的话,那么 __repr__ 会是更好的选择。因为如果一个对象没有 __str__ 函数,解释器会用 __repr__代替,反之则不成立。...Sic(object): def __str__(object): return 'foo' print str(Sic()) print repr(Sic()) 输出: foo foo
前言 在学习BeautifulSoup文档的时候发现了一个以前不常见的Python内建函数repr(),带着好奇对这个内建函数进行了一番搜索和学习。...总结 str()与repr()都是Python的内建函数,通过它们可以方便地以字符串的方式获取对象的内容、类型、数值属性等信息。...大多数情况下他们的效果相同,但是既然是不同的函数肯定有不同的地方,概括起来可以这样说str()会将对象转化为可读性较好的字符串,而repr()会将对象转化为供解释器读取形式的字符串。...一个对象没有适于人阅读的解释形式的话,str()会返回与repr()相同的值。 其中,数值或list、tuple、字典等这样的结构,针对各种函数都有着统一的解读方式。...举例 在下列情况下两者效果相同: 123456789101112131415161718192021222324>>> str(123)'123'>>> repr(123)'123'>>> str(
在stackoverflow有一个很精辟的回答解释这两个内置方法的区别,简单来说,__str__方法是表现给使用者使用的,而__repr__方法是给程序员用的。...先从一个简单的例子来看看,这两个方法的使用: class book: def __init__(self): pass def __str__(self):...return '__str__' def __repr__(self): return '__repr__' my_book=book() print(my_book) __...str__ my_book Out[13]: __repr__ 我们可以简单的看出print方法调用的是__str__,因为这是展现给使用者的,而直接在python的解释器,返回的是__repr__方法...(2018, 2, 15)' 管中窥豹,str(today)返回的是2018-02-15,我们可以看出来具体的时间,而repr(today)返回的是datetime.date这个方法,显然我们可以直接使用这个方法实例化
利用MySQL 字符串函数 find_in_set(); SELECT * FROM users WHERE find_in_set('aa@email.com', emails); 这样是可以的,...mysql有很多字符串函数 find_in_set(str1,str2)函数是返回str2中str1所在的位置索引,str2必须以","分割开。...注:当str2为NO1:“3,6,13,24,33,36”,NO2:“13,33,36,39”时,判断两个数据中str2字段是否包含‘3’,该函数可完美解决 mysql > SELECT find_in_set...-> 1 mysql > SELECT find_in_set('3','13,33,36,39') as test; -> 0 locate: 使用locate(substr,str...)函数,如果包含,返回>0的数,否则返回0 例子:判断site表中的url是否包含'http://'子串,如果不包含则拼接在url字符串开头 update site set url =concat
编写高质量Python代码的59个有效方法--第三条:了解bytes、str与unicode的区别 Python3有两种表示字符序列的类型:bytes和str,这也是Python3最重要的特性之一...,对字符串和二进制数据流做了明确的分析。...前者的实例包含原始的8位值;后者的实例包含Unicode字符。 Python2也有两种表示字符序列的类型:分别叫做str和unicode。...最常见的编码方式就是utf-8。但是对于python3的str和python2的unicode实例都没有和特定的二进制编码形式相关联。...这种办法既可以令程序接受多种类型的文本编码,又可以保证输出的文本信息只采用一种编码形式。 一篇写的很好的对于编码的解释的博客(包括发展历史):浅析Python3中的bytes和str类型
>>> a = 10 >>> type(str(a)) str'> >>> type(repr(a)) str'> 但是这二者之间有什么区别呢?...造成这两种输出形式不同的原因在于: print 语句结合 str() 函数实际上是调用了对象的 __str__方法来输出结果。...因此 str() 与 repr() 的不同在于: str() 的输出追求可读性,输出格式要便于理解,适合用于输出内容到用户终端。...repr() 的输出追求明确性,除了对象内容,还需要展示出对象的数据类型信息,适合开发和调试阶段使用。...另外如果想要自定义类的实例能够被 str() 和 repr() 所调用,那么就需要在自定义类中重载__str__和 __repr__方法。
前言 Python中__repr__和__str__使用区别 __repr__ 使用 很多时候我们在创建一个类的时候,在终端打印类的实例,看到的是一个类似于这样的内容:str__ 使用 __str__方法是在print()打印的时候输出给用户看的,面向的是普通的用户,方便用户知道返回的是什么实例对象。...object at 0x000,只有print()输出的时候才会打印__str__返回的内容 总结 注意:__str__()方法和__repr__()方法的返回值只能是字符串!...__repr__和__str__这两个方法都是用于显示的,__str__是面向用户的,而__repr__面向开发者 关于调用两种方法的时机 使用print()时 使用%s和f’{}’拼接对象时 使用str...当我们想在不同环境下支持不同的显示,例如终端用户显示使用__str__,而程序员在开发期间则使用底层的__repr__来显示,实际上__str__只是覆盖了__repr__以得到更友好的用户显示。
1、wkt简介 WKT(Well-known text)是一种文本标记语言,用于表示矢量几何对象、空间参照系统及空间参照系统之间的转换。...它的二进制表示方式,亦即WKB(well-known-binary)则胜于在传输和在数据库中存储相同的信息。该格式由开放地理空间联盟(OGC)制定。...WKT可以表示的几何对象包括:点,线,多边形,TIN(不规则三角网)及多面体。...转化成arcgis的Polygon对象 * @param wkt * @returns {Polygon} * @constructor */ function WktToPolygon(wkt...("+wkt.join(",")+")"; } 使用的时候,直接调用对应的函数即可。
unicodedata.decimal("2") # 2 unicodedata.numeric("2") # 2.0 unicodedata.digit(b"3") # TypeError: must be str..., not bytes unicodedata.decimal(b"3") # TypeError: must be str, not bytes unicodedata.numeric(b"3") #...TypeError: must be str, not bytes unicodedata.digit("Ⅷ") # ValueError: not a digit unicodedata.decimal
参考链接: Python repr() 前言 python中转换成字符有两种方法:str()和repr(),这两种又有什么区别?什么时候用str?什么时候用repr?...abd' >>> str('abd') == 'abd' True >>> repr('abd') == 'abd' False >>> len(repr('abd')) #repr转换后的字符串和str...转换后的字符串个数都是不一样的 5 >>> len(str('abd')) 3 命令行下print和直接输出的对比 每个类都有默认的__repr__, __str__方法,在命令行下用print 实例时调用的是类的...return 'str' ... >>> a = A() >>> a #直接输出调用的是repr方法 repr >>> print(a) #print调用的是str方法 str repr的使用场景...in s]) 'a,b,d,c,f' >>> 总结 1.除了字符串类型外,使用str还是repr转换没有什么区别,字符串类型的话,外层会多一对引号,这一特性有时候在eval操作时特别有用; 2.命令行下直接输出对象调用的是对象的
上面打印类对象并不是很友好,显示的是对象的内存地址 # 下面我们重构下该类的__repr__以及__str__,看看它们俩有啥区别 # 重构__repr__ class TestRepr(Test):...# 你会发现,直接输出对象ts时并没有按我们__str__方法中定义的格式进行输出,而用print输出的信息却改变了 __repr__和__str__这两个方法都是用于显示的,__str__是面向用户的...打印操作会首先尝试__str__和str内置函数(print运行的内部等价形式),它通常应该返回一个友好的显示。...__repr__用于所有其他的环境中:用于交互模式下提示回应以及repr函数,如果没有使用__str__,会使用print和str。...当我们想所有环境下都统一显示的话,可以重构__repr__方法;当我们想在不同环境下支持不同的显示,例如终端用户显示使用__str__,而程序员在开发期间则使用底层的__repr__来显示,实际上__str
编写Python程序的时候,一定要把解码和编码操作放在界面最外层来做,让程序的核心部分可以使用Unicode数据来运作,这种办法通常叫作Unicode三明治(Unicode sandwich)。...,但它返回的是bytes: def to_bytes(bytes_or_str): if isinstance(bytes_or_str, str): value = bytes_or_str.encode...第一个问题是,bytes与str这两种类型似乎是以相同的方式工作的,但其实例并不相互兼容,所以在传递字符序列的时候必须考虑好其类型。 可以用+操作符将bytes添加到bytes,str也可以这样。...'r', encoding='cp1252') as f: data = f.read() assert data == 'ñòóôõ' 这样程序就不会出现异常了,但返回的字符串也与读取原始字节数据所返回的有很大区别...要点 bytes包含的是由8位值所组成的序列,str包含的是由Unicode码点所组成的序列。
参考链接: Python bool() 从数据库取出的 bool 数据 db = True 从前台url传来的 str 数据 url = “true” QA:比较这2个是参数是否相同? ...if str(db).lower() == url: pass # str(db) 输出为 "True" # str(db).lower() 输出为 "true" ...还有这里注意下最好将bool转换为str 因为如果将str类型转bool时除了None和一些特殊符号为False,其余都为True >>> a = "false" >>> bool(a) True >
str是字符数据,bytes和bytearray是字节数据。它们都是序列,可以进行迭代遍历。str和bytes是不可变序列,bytearray是可变序列,可以原处修改字节。...bytes和bytearray都能使用str类型的通用函数,比如find()、replace()、islower()等,不能用的是str的格式化操作。...例如find()、replace()等,但用法上可能会有所区别,比如str.replace()的替换参数期待的是字符,而bytes.replace()的替换参数可能是字节。...要构造bytearray对象,方法之一是将bytes数据作为bytearray()方法的参数,或者将str数据和编码作为参数。...\xae\xc4\xe3'使用bytes()和bytearray()将str构造成bytes或bytearray数据,这两个方法都要求str->byte的过程中给定编码。
在我的某个程序中需要将数据保存成numpy数组,数组中每个元素又必须是字符串的格式 但是当你输入dtype=numpy.str的时候,你会发现又三个相近的数据类型可选,那就是str、str_和string..._了,如下图 str自然不用说,看后面就知道,builtins也就说明了这个str其实是python的内建数据类型,跟numpy数组一点关系都没有。...所以我们将目光锁定到后面为dtype的str_和string_上,我是比较懒的人,不喜欢去翻文档,也比较注重实践检验真理,所以在这里我会通过一系列的对比来区别开这两个数据类型。...对比3,字符串拼接 运行结果: 这里我只运行了arr1中元素跟字符串的拼接结果,并且是成功的,充分说明了str_就应该是dtype中真正对应python里str的那种类型,而arr2就没必要去测试了...---- 综合来说,我还是会选择str_类型去操作这些数据的,你们呢?
b=123.123 >>>isinstance(a,int) True >>>isinstance(b,float) True >>>isinstance(b,int) False python中str...函数isdigit、isdecimal、isnumeric的区别 num = "1" #unicode num.isdigit() # True num.isdecimal() # True num.isnumeric...unicodedata.decimal("2") # 2 unicodedata.numeric("2") # 2.0 unicodedata.digit(b"3") # TypeError: must be str..., not bytes unicodedata.decimal(b"3") # TypeError: must be str, not bytes unicodedata.numeric(b"3") #...TypeError: must be str, not bytes unicodedata.digit("Ⅷ") # ValueError: not a digit unicodedata.decimal
洞察 腾讯核心技术
剖析业界实践案例