0. 导读
大家好,欢迎来到 Crossin的编程教室 !
布尔类型是Python中必不可少的一种数据类型。它看起来很简单,仅包括True和False两种类型,但你不一定真的了解它的细节……
1. 首次引进
2002年3月,龟叔首次在PEP285中首次明确在python中引进布尔类型,并包括两个实例:"True"和"False"
2. 继承于int
布尔类型是int型的一个子类,意味着"True"=1,"False"=0:
1print( True== 1) # 输出True
2print( False== 0) # 输出True
当然,也支持对布尔值和int值进行简单的计算:
1True+ 2# 输出3
23* False# 输出0
3. 布尔取值
其他编程语言中,可能布尔值会写作"true"和"false",但在python中必须首字母大写:
1a = true
2# NameError: name 'true' is not defined
4. 何为真假
在python中,数值0(各种类型下的数值0)、空字符串、空列表等以及特殊的None值在判断真假时,将被判断为False:
1bool( 0) # 整型0 False
2bool( 0.0) # 浮点数0 False
3bool( None) # None值 False
4bool( '') # 空字符串 False
5bool([]) # 空列表 False
6bool([ None]) # 含有None的列表 True
5. 全局实例
由于布尔类型仅有两个取值,所以所有True或者False具有相同的实例地址:
1a = True
2b = 1== 1
3print(id( True)) #140734530754896
4print(id(a)) #140734530754896
5print(id(b)) #140734530754896
6. 逻辑运算
与很多编程语言也不同,python中的布尔逻辑运算符是and、or和not,而不是&、||、~(分别代表了二进制位运算中的逻辑与、或、非):
1bool( 3and4) # True
2bool( 3& 4) # False 因为3&4的位运算结果为0
三种逻辑运算优先级为not>and>or:
10or1andnot2
2# False
7. 短路特性
短路特性意味着在and或or中,一个值可以判断出结果时,不再对后一个值进行判断,且返回值为可以得出结果的那个值:
13and4#输出4
20and4#输出0
33or4#输出3
40or4#输出4
利用这一特点,在有些程序设计中非常有用。例如判断一个列表中最后一个元素是否大于0时,由于不确定列表是否为空,所以直接按下标取值可能引发错误,比较稳妥的判断方式为:
1lyst = []
2#可能引发错误的写法
3iflyst[ -1]> 0: # IndexError: list index out of range
4print( 'ok')
5# 稳妥的写法
6iflyst andlyst[ -1]> 0:
7print( 'ok')
8. 龟叔关于布尔值的一些答复
在PEP285文档中,龟叔给出了社区关于布尔类型的一些议论及答复。简要列举如下:
1. str(True)应该返回"True"还是"1"?
答:"True"。虽然True = 1,但str(True)= "1",不如"True"来得直观。
2. 新手倾向于写“ if x == True”?
答:实际上写“ if x”就足够了,会自动转化为布尔型进行真值判断。
3. 将来会取消布尔值的非布尔运算?例如使True+1非法?
答:不会,布尔值应始终允许算术运算。
4. 用boolean替代bool的写法?
答:不会。python一直主张简洁,例如def、int和dict都是缩写,虽然bool对于新手而言不如boolean更直观,但它只是一个单词而已。
5. 将来是否会要求布尔运算有明确的布尔值作为参数?例如"if []"变得非法,而必须写作"if bool([])"?
答:不会,至少龟叔不会同意。(再次说明python语法之简洁)
最后给出一个小彩蛋:
求 1+2+...+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
示例 1:
输入: n = 3
输出: 6
限制:1 <= n <= 10000
来源:力扣(LeetCode) 剑指offer 64#题
简单的求和问题,但由于不允许用乘除法、循环和条件判断,所以原本简单的问题变得有些棘手。如果了解python布尔值是int子类和逻辑运算符的短路特性,就可以理解如下实现方法:
1defsumNums(self, n: int)-> int:
2returnn and(n + sumNums(n -1))
作者:luanhz
来源:小数志
Python的新功能“类型注解”有什么作用? 返回搜狐,查看更多
责任编辑:
原标题:关于python中bool类型的重要细节0. 导读大家好,欢迎来到 Crossin的编程教室 !布尔类型是Python中必不可少的一种数据类型。它看起来很简单,仅包括True和False两种类型,但你不一定真的了解它的细节……1. 首次引进2002年3月,龟叔首次在PEP285中首次明确在python中引进布尔类型,并包括两个实例:"True"和"False" 2. 继承于int布尔类型是...
// — 当结果为正数时,取整; 11//5 =2; 11//4 = 2
当结果为负数时,向下取整;-11//5=-3; -11//4=-3
当分子分母都是float,结果为float型
** — 计算幂; 11**2 =121
% — 取余
其他数学运算:
1.分数:
import fractions;
fractions.Fraction(1,3) — 1/3
import ma
bool
是
Bool
ean的缩写,只有真(
True
)和假(False)两种取值
bool
函数只有一个参数,并根据这个参数的值返回真或者假。
1.当对数字使用
bool
函数时,0返回假(False),任何其他值都返回真。
>>>
bool
(0)
False
>>>
bool
(1)
>>>
bool
(-1)
>>>
bool
(21334)
2.当对字符串使用
bool
函数时,对于没有值的字符串(也就是None或者空字符串)返回False,否则返回
True
。
>>>
bool
('')
False
>>>
bool
(None)
False
>>>
bool
('asd')
print(
True
+False) #
输出
1,
True
默认为1,False为0
print(
True
or False) #
输出
True
,关键字or执行“或”操作
print(5//2) #
输出
2,//为取整运算符
print(5%2) #
输出
1,%为取余运算符
print(3**2) #
输出
9,**表示乘方操作
print(5+1.6) ...
文章目录一、程序交互二、格式化
输出
数据
类型
:三、整数
类型
(int)四、字符串
类型
(str)五、
布尔值
类型
(
bool
)
一、程序交互
name = input("please input your username : ") #input输入的内容是字符串,若要整型或其他数据
类型
,则需要做相应的转换!!
age = input("please input your age : ")
hometown = input("please input your hometown : ")
print("Hello
和别的语言布尔
类型
定义1为真,0为假不同,
python
定义的真假比较多。 先说下假吧: false,none,0,””,{},[],() 而真的话,只要和上面的相反就行,比如上面是false,那真为
true
,[]空列表为假,不为空的列表为真。明白了这些。我们就可以用到
python
判断语句 如果你要把别的
类型
转换为
bool
类型
的话,可以通过内置方法
bool
方法来进行转换。
您可能感兴趣的文章:
python
3
中
int(整型)的使用教程用
Python
将IP地址在整型和字符串之间轻松转换浅析
Python
中
整型对象存储的位置浅谈
Python
中
整型对象的
在上面的代码
中
,x < y 返回
True
,所以执行 if 语句块
中
的代码。如果 x < y 返回 False,则执行 else 语句块
中
的代码。
你还可以使用
布尔值
来做数学运算:
a =
True
b = False
c = a and b # c is False
d = a or b # d is
True
e = not a # e is False
在
Python
中
,
布尔值
是一种特殊的数据
类型
。你可以使用
bool
() 函数来将其他数据
类型
转换为
布尔值
:
x = 5
print(
bool
(x)) #
True
y = 0
print(
bool
(y)) # False
z = "hello"
print(
bool
(z)) #
True
在
Python
中
,
布尔值
具有优先级低于数学运算符的特点。例如,你可以这样做:
x = 5
y = 10
result = x < y or x > y #
True
在这里,x < y 返回
True
,所以 or 运算符返回
True
。因此,result 的值为
True
。
希望这对你有帮助!
the mysql is running_mysql错误:The MySQL server is running with the --skip-grant-tables option so it c...