Python开发基础(一)基本数据类型

学习一门新语言,一定要多动手,即使是看书,也要动手验证语本的示例代码,在敲代码的过程中会遇到一些书本没有提及的内容,这时候就可以自已进行验证了。

在这里,我先举一个我学习基本类型的过程中思考的一个例子,

比如:一个要判断一个float类型的变量跟一个字符串变量比较是否相等应该怎么做呢?

Python开发基础(一)基本数据类型_第1张图片

通过以上代码发现,强行把一个字符串转换成指定类型,是可以与float和int类型进行比较的。这时候为了试验的完整性,我就应该把bool类型也进行试验,结果出现意外的结果:

Python开发基础(一)基本数据类型_第2张图片

这个bool("False")转换后的结果并不是我预料的True。这与我常用的C#语言有所不同。所以查找了相关的资料,了解到这个问题的主要原因:

python中,除了‘’、""、0、()、[]、{}、None为False, 其他转换都为True。 也就是说字符串如果不为空,则永远转换为True。

我们可以验证一下以上结论

因此,如果我们要比较字符串与其它类型的变量,我们最好是养成习惯,把其它类型的变量转换为字符串进行比较,如下:

Python开发基础(一)基本数据类型_第3张图片

 

 

最后附上一段学习基本数据类型的代码:

print("*"*6,"基本类型展示","*"*6)
varInt = 1
varFloat = 2.3
varStr = "Hello World"
varBoolF = False
varBoolT = True
varNone = None
print(type(varInt))
print(type(varFloat))
print(type(varStr))
print(type(varBoolF)," ",varBoolF)
print(type(varNone))
#获取type类型
print(type(type(varNone)))

print(type(varInt).__name__)
print(type(varFloat).__name__)
print(type(varStr).__name__)
print(type(varBoolF).__name__)
print(type(varNone).__name__)
print("*"*22)

print("*"*6,"不同类型的变量不能直接比较","*"*6)
print('False=="False" output:',False=="False")
print('False=="False" output:',False==bool("False"))
print('1=="1" output:',1=="1")
print('1.5==float("1.5") output:',1.50==float("1.5"))



#字符串转换为bool类型的注意事项试验
varInt=1
varFloat = 1.5
varStrFloat = "1.5"
varStrInt = "1"
varStrFalse = False
print(varFloat == varStrFloat,"#这个显然不是我们要的结果")
print(varFloat == float(varStrFloat),"#强制把字符串转换成float类型后,得到预期结果")
print(varInt == int(varInt),"#这个也是预料之中")
print(varStrFalse == bool("False"),"#***这个也是【预料之外】,我想得到False的")
print(bool("False"),"#进一些确认bool(\"False\")的实际值")
print("能转换为False的值:",bool(""),bool(0),bool(None),bool([]),bool({}))

 

你可能感兴趣的:(Python开发)