Python新手学习-打卡第四天【2019-2-11】

数据类型

浮点数float,简单来说是带小数点的,小数点后最多16位

这是因为,Python计算浮点数的方式与我们不一样。Python计算浮点数时,会先把0.55和0.3转化成二进制数【注:二进制数由0和1表示,逢二进一】,如下列代码:

#进制转换
0.55(十进制) = 0.1000110011001100110011001100110011001100110011001101(二进制)
0.3(十进制) = 0.0100110011001100110011001100110011001100110011001101(二进制)

然后,这俩二进制数通过二进制法则运算后,再通过复杂的计算公式,将二进制结果转成十进制小数。

经过这两次转换,小数点后面就产生了多余的“尾巴”。这样,就造成了我们与程序计算结果的差异

 

python2

>>> print(0.55+0.3)
0.85
>>>

python3

>>> print(0.55+0.3)

0.8500000000000001

>>> a="我"
>>> b=‘有‘
>>> c=100
>>> d="""元"""
>>> print(a+b+str(c)+d)
我有100元
>>> print(a+b+‘c‘+d)
我有c元
>>> print(a+b+`c`+d)
我有100元
>>>

可是,为什么引号内我们使用的是数字,而不是变量名c呢?这是因为,当我们使用引号时,引号里的东西,都会被强制转换为字符串格式

所以,如果我们把变量名c放进引号里后,被强制转换为字符串的,将是变量名c,而不是变量名代表的数字10

int()函数转换数据类型bug = ‘666‘
hair = ‘0‘
print(int(bug)+int(hair))注意一点:只有符合整数规范的字符串类数据,才能被int()强制转换。

别看它虽然只有一句话,但它其实带有三层含义:首先,整数形式的字符串比如‘666‘和‘0‘,可以被int()函数强制转换

其次,文字形式,比如中文、火星文或者标点符号,不可以被int()函数强制转换,

最后,小数形式的字符串,由于Python的语法规则,也不能使用int()函数强制转换

比方说下列代码,如果点击运行,程序会报错【ValueError:invalid literal for int() with base 10: ‘3.8‘

print(int(‘3.8‘))

#运行后显示结果:ValueError:invalid literal for int() with base 10: ‘3.8‘print(int(3.8))3

上方的代码串,就是一条将浮点数3.8强制转换的语句。但是,为什么输出的结果是3呢?

你看,int()函数的本质是将数据转换为整数。所以对于浮点数,int()函数会做取整处理。但是,同我们平时对小数四舍五入的处理方法不同,int()函数会直接抹零,直接输出整数部分。

可是,如果遇到这种情况:字符串就是小数形式,比如‘3.8‘这种。我不想让它变为整数3,想让它保持小数形式的3.8,那我要怎么做呢?

首先float()函数的使用,也是将需要转换的数据放在括号里,像这样:float(数据)

其次,float()函数也可以将整数和字符串转换为浮点类型。但同时,如果括号里面的数据是字符串类型,那这个数据一定得是数字形式。

>>> word = ‘3.8‘
>>> number = 1
>>> sentence = ‘人工智障说:3.8+1等于‘
>>> print(sentence+str(int(float(word)+number)))
人工智障说:3.8+1等于4
>>>

错误案例:

int()函数无法转换小数形式的字符串

原文地址:https://www.cnblogs.com/kissit/p/10381399.html

时间: 2024-10-05 01:06:37

Python新手学习-打卡第四天【2019-2-11】的相关文章

Python新手学习基础之初识python——与众不同2

看完了Python的缩进,现在来看看Python的标识符.引号和注释. 标识符 关于Python的标识符,其实不是与众不同,只是有一定的规则. 标识符是编程时使用的名字.在Python中,标识符有几点要素: 第一个字符必须是字母或者下划线 _ : 标识符的的其他部分必须由数字.字母.下划线组成: 标识符对字母的大小写敏感. 引号 Python的字符串通常可以用单引号 ' ' .双引号 " " .双三引号 """ """或单三引

Python新手学习基础之数据类型——字符串类型

Python中字符串被定义为引号之间的字符集合,可以用 ' (一对单引号)或 " (一对双引号)括起来,字符串也可以被 """ (一对三个双引号)或者 ''' (一对三个单引号)括起来.使用索引运算符([ ])和切片运算符([ : ])可以得到子字符串.在Python中,字符串第一个字符的索引是0,而最后一个字符的索引是-1.索引和切片会在后面的文章中进行讲解. 让我们先来创建下字符串吧!例如: str1 = 'maya'   srt2 = 'coder' 字符串也

Python基础学习(三)四

关于List的学习: """More on Lists? Using Lists as Stacks.""" fruits = ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana'] #Return the number of times x appears in the listprint(fruits.count('apple'))print(fruits.count(

Python新手学习基础之条件语句——elif语句

elif语句 (相当于C语言的else if) 在Python中,当我们需要有更多的判断条件时,我们往往会使用另外一种语法表达,即使用elif: if 判断条件1: 执行语句1 elif 判断条件2: 执行语句2 elif 判断条件3: 执行语句3 ...... else: 执行语句n 现在我们有一个任务要完成,假设现在有一个分数,你他的等级如下: 90分及以上属于A:80分到89分属于B:70到79分属于C:60分到69分属于D: 0到59分属于E: 你需要用if/elif/else语句根据分

Python新手学习基础之运算符——成员运算与身份运算

成员运算符 Python里有成员运算符,可以判断一个元素是否在某一个序列中.比如可以判断一个字符是否属于这个字符串,可以判断某个对象是否在这个列表中等等. Python中的成员操作符的使用语法是: obj [not] in sequence 这个操作符返回值是True或者False. 看个代码实例吧: 身份运算符 Python支持对象本身的比较,比较的语法是: obj1 is [not] obj2 身份运算符是用来比较2个对象是否是同一个对象,而之前比较运算符中的 == 则是用来比较2个对象的值

Python新手学习基础之运算符——比较运算符

比较运算符 比较运算符可以使用比较两个值,所有的内建类型都支持比较运算.当用运算符比较两个值时,结果是一个逻辑值,不是True,就是False. 有一点要注意的是,不同的类型的比较方式不一样,数字类型会根据数字大小和正负进行比较,而字符串会根据字符串序列值进行比较等等. 在Python中有以下比较运算符: 现在我们就用比较运算符来完成一个小任务吧: 在x和y之间填入正确的比较运算符,来输出x和y的最大值,请主动思考哦~~~ 更多学习内容,就在码芽网http://www.mayacoder.com

Python新手学习基础之函数-概念与定义

什么是函数? 函数是可以实现一些特定功能的方法或是程序,简单的理解下函数的概念,就是你编写了一些语句,为了方便使用,把这些语句组合在一起,给它起一个名字,即函数名.使用的时候只要调用这个名字,就可以实现语句组里的功能了.Python中自带的一些函数就叫做内建函数,不需要我们自己编写.还有一种是第三方函数,就是其它程序员编好的一些函数,共享给大家使用.前面说的这两种函数都是拿来就可以直接使用的.当然还有一种,就是我们自己编写的为了方便使用的函数,就叫做自定义函数了. 定义一个函数 Python使用

Python新手学习基础之循环结构练习

有几个元音字母? 有一个字符串"I learn Python from maya",我们想要查找出它里面的元音字母(aeiou)(其实是找出这几个小写字母),并统计出其元音字符的个数.这个时候我们就可以结合条件语句和循环语句对字符串进行处理了. #sentence是一个字符串,你需要去统计这个字符串的元音字母数 sentence = "I learn Python from mayacoder" #count用来存储元音字母数 count = 0 #在这里写下你的代

Python新手学习基础之运算符——算术运算符

算术运算符 之前文章在介绍变量类型的时候,其实已经用过了很多算术符,比如+.-.*././/.** 等,除此之外,还有一个符号是之前内容没提到的,就是 % ,用来返回除法余数的运算符号. 假设有变量x和y,x为10,y为3,x%y的结果就是1. 在运算符中有优先级,跟数学中的一样,所以在写的时候有些要优先运算的需要加上括号,比如:3 * (4 + 5). Python支持不同的数字类型相加,它使用数字类型强制转换的方式来解决数字类型不一致的问题,就是说它会将一个操作数转换成另一个操作数相同的数据