python——对数据的一些基本判断

一、None与Null的区别

(1)基本介绍
None可以看作一个具体的值用来初始化变量,可以理解为空值
python没有Null关键字,在这类脚本语言中变量和值是绑定关系,如果说一个变量是Null,实际是说它没有与任何值绑定,也就是说该变量实际上并未被定义,可以理解为

a = None
print(a)
print(a=='')
print(a==0)
print(type(a))
print(type(""))

输出:

None
False
False
<class 'NoneType'>
<class 'str'>

表示该值是一个空对象,空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。
(对象=属性+特征,可以是任何人或物,5是int对象,’a‘是str对象…):
属性:去描述它的特征
方法: 它所具有的行为
**

(2)None返回False

a = None
if a:
    print('True')
else:
    print('False') 

输出:

False

(3)属性不同
dir([object]) 函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。
object – 对象、变量、类型。

print(dir(None))
print(dir(''))

输出:

['__bool__', '__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__']
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'removeprefix', 'removesuffix', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']

二、is与==的比较

(1)举例说明
例如,邻居家有一对双胞胎猫。这两只猫看起来完全相同,都有炭黑色的毛发和锐利的绿色眼睛。除非依靠一些个性上的小癖好,否则单从外表无法区分这两只猫。尽管看起来完全一样,但它们依然是两只不同的猫,两个不同的生物。

我们从此可以看出,“相等”和“相同”两者之间的含义是有所区别的。这种区别对理解Python的==和is比较操作符至关重要。

==操作符比较的是相等性,即如果那两只猫是Python对象,那么使用==操作符得到的答案是“两只猫是一样的”。

然而is操作符比较的是相同性,即如果用is操作符比较那两只猫,则得到的答案是“两只猫不是同一只猫”。
代码

a = [1,2,3]
b = a
print(a==b)
print(a is b)

输出:

True
True

即:a,b 具有相同的内容,且a,b指向相同的列表对象。

为之前的列表对象创建一个完全相同的副本,即对已有的列表调用list(),创建一个名为c的副本

c = list(a)
print(a==c)
print(a is c)

输出:

True
False

此时,a,b 具有相同的内容,但a,b指向不同的列表对象。
概括 is 与 == 的区别:

当两个变量指向同一个对象时,is表达式的结果为True;
当各变量指向的对象含有相同内容时,==表达式的结果为True。

当你需要在Python中选择is和==时,只要回想前面两只猫的示例就可以了。你一定没问题的。
参考链接:https://geek-docs.com/python/python-examples/python-objects-is-and.html

(2)0与False区别

print(0 == False)
print(0 is False)
print(False is False)
print(False+3)

输出:

True
False
True
3

在Python中,作为值来使用的时候,0和False是等价的

三、字符串判断

(1)返回都为空,字符串不一定相等

a =""
b = " "
print(a)
print(b)
print(type(a))
print(type(b))
print(b==a)
print(b.strip()==a)

输出:



<class 'str'>
<class 'str'>
False
True

(2)判断字符串是否为空

利用strip()函数
b.strip()==""则字符串为空
使用字符串长度判断
len(s) ==0 则字符串为空
isspace判断是否字符串全部是空格
s.isspace() == True

a = ""
b = " "
print(len(a))
print(len(b))
print(b.strip()=="")
print(b.isspace()==True)

输出:

0
1
True
True

(3)判断字符串内容
检验字符串是否只由字母组成,是返回True,否则返回False。
同理 isalnum() 用来判断数字。
用法:str.isalpha()

str = 'csdn123'
print(str.isalpha())
str1 = 'wasd'
print(str1.isalpha())

输出:

False
True
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YYHhao.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值