python判断boolean
⑴ python语言中bool函数的作用是什么
bool是Boolean的缩写,只有真(True)和假(False)两种取值
bool函数只有一个参数,并根据这个参数的值返回真或者假。
1.当对数字使用bool函数时,0返回假(False),任何其他值都返回真。
>>> bool(0)
False
>>> bool(1)
True
>>> bool(-1)
True
>>> bool(21334)
True
2.当对字符串使用bool函数时,对于没有值的字符串(也就是None或者空字符串)返回False,否则返回True。
>>> bool('')
False
>>> bool(None)
False
>>> bool('asd')
True
>>> bool('hello')
True
3.bool函数对于空的列表,字典和元祖返回False,否则返回True。
>>> a = []
>>> bool(a)
False
>>> a.append(1)
>>> bool(a)
True
4.用bool函数来判断一个值是否已经被设置。
>>> x = raw_input('Please enter a number :')
Please enter a number :
>>> bool(x.strip())
False
>>> x = raw_input('Please enter a number :')
Please enter a number :4
>>> bool(x.strip())
True
⑵ Python基本内置数据类型有哪些
内置类型是指任何语言在设计初期定义的类型,如C语言中的int、double、char等。它也是在一种语言中最基本的类型,与编译器编译出的代码具有重大关系。值得一提的是,不同语言也拥有不同的内置类型, 但是所有内置类型的定义都与计算机的运算方式相关。
Python主要内置类型包括数值、序列、映射、类、实例和异常等。
数值类型:全局中只有一个(Python在解释器启动的时候,Python会用None类型生成一个None的对象),包括int类型、float类型、complex类型、bool类型。
迭代类型:在Python中,迭代类型可以使用循环来进行遍历。
序列类型:list(是可变序列,通常用于存放同类项目的集合)、tuple(是不可变序列,通常用于储存异构数据的多项集)、str(在Python中处理文本数据是使用str对象,也称为字符串。字符串是由Unicode码位构成的不可变序列。)、array、range(表示不可变的数字序列,通常用于在for循环中循环指定的次数)、bytes(由单个字节构成的不可变序列)、bytearray(bytes对象的可变对应物)、memoryvie(二进制序列)
映射类型:映射对象将具有hash的值映射到任意对象。映射是可变的对象。目前只有一种标准映射,即dictionary。字典的键几乎是任意值,也就是说,包含列表、字典或其他可变类型的值。
集合类型:作为一种无序的多项集,集合并不记录元素位置或插入顺序。相应地,集合不支持索引、切片或其他序列类的操作。目前Python有两种内置集合类型:set和frozenset。
set类型是可变的,其内容可以使用add()和remove()这样的方法来改变。由于是可变类型,它没有哈希值,且不能被用作字典的键或其他集合的元素。
frozenset类型是不可变并且具有哈希值,其内容在被创建后不能再改变,因此它可以被用作字典的键或其他集合的元素。
上下文管理类型:with语句
其他类型:模块、class、实例、函数、方法、代码、object对象、type对象、ellipsis(省略号)、notimplemented
⑶ python中的逻辑运算
逻辑运算并不限于布尔(boolean)型的变量/值。
关键是一个变量/值是“相当于”True还是False。
None、False、空字符串""、0、空列表[]、空字典{}、空元组(),都相当于False。其它的都相当于True。
先说 A or B 。
如果A相当于True,那么返回A。否则,返回B。
所以,如果A和B都是False,那么A and B也是False (False or False == False)。
除了做布尔值的判断,C = A or B 这种写法,常用于不确定A是否为空值时,把B作为候补来赋值给C。
A and B相反。如果A相当于True,那么返回B。否则,返回A。
所以,只有A和B都是True时,A and B才是True (True and True == True)。
以上是我自己写的,原创。
⑷ while true什么意思,在python里是什么语句
Python里while True意思是while 当循环结构,当while 后的条件为真时进行loop,False则终止循环,True是boolean类型的真值,while True即意思是要一直进行loop(死循环)。通常while true 循环中会加入break条件判断用以在循环内部的某个条件达成时终止循环。
一英语的影响力
(1)从全世界来看,说英语的人数已经超过了任何语言的人数,10多个国家以英语为母语,45个国家的官方语言是英语,世界三分之一的人口(二十几亿)讲英语。比如在日本,除了他们的本国母语——日语之外,英语是他们的第二语言,很多高层次的日本人以会说英语为荣。
(2)全世界75%的电视节目是英语,四分之三的邮件是用英语书写,电脑键盘是英语键盘,任何一个会议敢号称是国际会议,其会议工作语言一定要用英语,也是联合国的正式工作语言。
二学英语的原因
(1)世界很多知名的大企业大公司对于员工的英语水平要求还是很高的,现在世界正往经济全球化上发展,所以很多大公司都愿意和英语好的人沟通,现在每个员工都在努力的学英语,用英语去沟通交流。英语是现在国际通用语言,来自世界不同的人都可以用英语交流。
(2)在你即将要去旅游的一些地方,人们总会发现英文对于他们的生意来说是多么的重要。为了更好地与未来的客户交流,他们都必须要懂些英文。在大部分的酒店里,至少有一个工作人员可以说英语。
⑸ Python有哪些种类
Python有哪些种类?
1、数值型(Numbers)
2、布尔型(Booleans)
3、字符串(String)
4、Python容器
要快速学会Python,谨记‘3个’‘4类’‘5大’‘6种’这四个数字就可以了。
三个基本概念
1. 结构化(函数、模块、包)
2. 面向对象(类及派生类、重载)
3. 虚拟环境(版本管理、环境隔离)
四类基本操作
1. 数据操作(各种数据类型的操作)
2. 文件操作(文件打开读写关闭等操作)
3. 模块操作(导入使用、模块查寻等操作)
4.并发操作(进程与线程、锁/信号号/安全队列等)
五大基本语句(5)
1. 赋值语句(变量、对象、赋值运算符)
2. 输入输出语句(print, input函数)
3. 条件判断语句(if-elif-else语句)
4. 循环语句(遍历循环for-in-else、条件循环while-else、break/continue)
5. 异常处理语句(try-except-else-finally)
六种数据类型(6)
1. 数字类型(int,bool,float,complex)
2. 字符串(str)
3. 列表(list)
4. 元组(tuple)
5. 字典(dict)
6. 集合(set)
如果你能够把上面的几个要点都掌握了,那么就算是真正地入门了。
⑹ python 语言global函数怎么用
global函数
用于在函数内部将局部变量声明为全局变量,声明后重新赋值,外部变量会随之改变,其作用域扩大。
如果是局部变量,即使名字相同,不会随之改变
⑺ 如何优雅地判断N个布尔值是否全部相等
假设数组定义为 {a_i:0le i < n}。
用 Array.prototype.indexOf() 可以搜寻x是否存在于数组,即判断 exists i(a_i=x)。如果 x 存在,返回该索引( i >= 0),如果不存在,该函数在返回 -1。
然后我们需要检查所有元素是否相等,那么等价于检查所有元素是否等于第一个元素,取反一下:forall i (a_i=a_0)
Leftrightarrow eg eg forall i (a_i=a_0)\
Leftrightarrow eg exists i(a_i e a_0)
由于问题需求刚好是布尔数组,所以 a_i e a_0 Leftrightarrow a_i= eg a_0,那么就可变换为: eg exists i (a_i= eg a_0)
用 Array.prototype.indexOf() 的好处是原生提供的,而且是很直接的做最多 n 次相等测试,所以应该比以脚本自行实现快。但这个解答仅限于布尔数组才能使用
一行(慢):return array.min() == array.max();
两行(居中):long n = array.count(true);
return n == array.size() || n == 0;
三行(平均快):return adjacent_find(array.begin(), array.end()
[](bool lhs, bool rh{ return lhs != rhs; }) == array.end();Java 运行环境JDK8boolean a = true;
boolean b = true;
boolean c = true;
boolean d = true;
boolean e = true;
boolean f = true;
boolean g = true;
boolean h = false;
System.out.println(Stream.of(a,b,c,d,e,f,g).collect(Collectors.toSet()).size() == 1); // true
System.out.println(Stream.of(a,b,c,d,e,f,g,h).collect(Collectors.toSet()).size() == 1); // false
放弃用bool改用bit。。
bitmap==0||!(bitmap<<(32-N))>>(32-N)==0&vec == |vec如果vec全0,那么得到0==0,表达式为真;如果vec全1,那么得到1==1,表达式为真;如果vec有0有1,那么得到0==1,表达式为假。另解(比较容易实现,但没有上面那个优雅):sum = SUM(vec)return sum == 0 || sum == len(vec)来一个强行python版~return sum(mylist) % len(mylist) == 0解释就是,求和时True为1,False为0,所以全部为false时sum为零,全部为True时sum等于list长度,只有在这两种情况下sum除以len才能余数为0。如果list中有true有false,那得到的数肯定大于零、小于list长度。arr.every(b => b === arr[0]);
⑻ python选择语句都有哪些
Python中选择语句主要有3种形式,分别为if语句、if…else语句和if…elif…else多分支语句。
if…elif…else语句
但有时候我们需要很多判断,并不是非黑即白,这时用户就需要从多个选项中选择一个。在开发程序时,如果遇到多选一的情况。
则可以使用if…elif…else语句,该语句是一个多分支选择语句,通常表现为“如果满足某种条件,进行某种处理,否则,如果满足另一种条件,则执行另一种处理……”。
if注意:
1.比较表达式无论简单还是复杂,结果必须为Boolean类型。
2.if语句控制的语句体只有如果只有一条语句,大括号可以省略;如果是多条语句则不能省略,建议永远不要省略。
如:if(比较表达式)
语句
3.一般来说:有左大括号就没有分号,有分号就没有左大括号。
如:if(比较表达式){........}, if(比较表达式)。
⑼ python中如何判断Excel单元格为枚举类型
不知道如何判断单元格是否为枚举类型。但是直接判断单元格的值是否合法也许可行
⑽ Python中为什么推荐使用isinstance来进行类型判断
Python在定义变量的时候不用指明具体的的类型,解释器会在运行的时候会自动检查 变量的类型,并根据需要进行隐式的类型转化。因为Python是动态语言,所以一般情 况下是不推荐进行类型转化的。比如"+"操作时,如果加号两边是数据就进行加法操 作,如果两边是字符串就进行字符串连接操作,如果两边是列表就进行合并操作,甚 至可以进行复数的运算。解释器会在运行时根据两边的变量的类型调用不同的内部方法。 当加号两边的变量类型不一样的时候,又不能进行类型转化,就会抛出TypeError的异常。
但是在实际的开发中,为了提高代码的健壮性,我们还是需要进行类型检查的。而进行 类型检查首先想到的就是用type(),比如使用type判断一个int类型。
import types
if type(1) is types.Integer:
print('1是int类型')
else:
print('1不是int类型')
上面的程序会输出:1是int类型
我们在types中可以找到一些常用的类型,在2.7.6中显示的结果:
types.BooleanType # bool类型
types.BufferType # buffer类型
types.BuiltinFunctionType # 内建函数,比如len()
types.BuiltinMethodType # 内建方法,指的是类中的方法
types.ClassType # 类类型
types.CodeType # 代码块类型
types.ComplexType # 复数类型
types.DictProxyType # 字典代理类型
types.DictType # 字典类型
types.DictionaryType # 字典备用的类型
types.EllipsisType
types.FileType # 文件类型
types.FloatType # 浮点类型
types.FrameType
types.FunctionType # 函数类型
types.GeneratorType
types.GetSetDescriptorType
types.InstanceType # 实例类型
types.IntType # int类型
types.LambdaType # lambda类型
types.ListType # 列表类型
types.LongType # long类型
types.MemberDescriptorType
types.MethodType # 方法类型
types.MoleType # mole类型
types.NoneType # None类型
types.NotImplementedType
types.ObjectType # object类型
types.SliceTypeh
types.StringType # 字符串类型
types.StringTypes
types.TracebackType
types.TupleType # 元组类型
types.TypeType # 类型本身
types.UnboundMethodType
types.UnicodeType
types.XRangeType
在Python 3中,类型已经明显减少了很多
types.BuiltinFunctionType
types.BuiltinMethodType
types.CodeType
types.DynamicClassAttribute
types.FrameType
types.FunctionType
types.GeneratorType
types.GetSetDescriptorType
types.LambdaType
types.MappingProxyType
types.MemberDescriptorType
types.MethodType
types.MoleType
types.SimpleNamespace
types.TracebackType
types.new_class
types.prepare_class
但是我们并不推荐使用type来进行类型检查,之所以把这些类型列出来,也是为了扩展知识 面。那为什么不推荐使用type进行类型检查呢?我们来看一下下面的例子。
import types
class UserInt(int):
def __init__(self, val=0):
self.val = int(val)
i = 1
n = UserInt(2)
print(type(i) is type(n))
上面的代码输出:False
这就说明i和n的类型是不一样的,而实际上UserInt是继承自int的,所以这个判断是存在问题的, 当我们对Python内建类型进行扩展的时候,type返回的结果就不够准确了。我们再看一个例子。
class A():
pass
class B():
pass
a = A()
b = B()
print(type(a) is type(b))
代码的输出结果: True
type比较的结果a和b的类型是一样的,结果明显是不准确的。这种古典类的实例,type返回的结果都 是一样的,而这样的结果不是我们想要的。对于内建的基本类型来说,使用tpye来检查是没有问题的, 可是当应用到其他场合的时候,type就显得不可靠了。这个时候我们就需要使用isinstance来进行类型 检查。
isinstance(object, classinfo)
object表示实例,classinfo可以是直接或间接类名、基本类型或者有它们组成的元组。
>>> isinstance(2, float)
False
>>> isinstance('a', (str, unicode))
True
>>> isinstance((2, 3), (str, list, tuple))
True