目录
一、数据类型
Python里,最常用的数据类型有三种——字符串(str)、整数(int)和浮点数(float)。
1.字符串
字符串,字符串英文string,简写str。
字符串的识别方式非常简单——有层名为【引号】的皮,只要是被【单/双/三引号】这层皮括起来的内容,不论那个内容是中文、英文、数字甚至火星文。只要是被括起来的,就表示是字符串类型。
代码如下(示例):
name = "晓寒"
born_city = "出生在南平"
settle_city = "生活在厦门"
age = "34"
year = "岁"
print(name)
print(born_city)
print(settle_city)
print(age)
print(year)
运行结果如下:
晓寒
出生在南平
生活在厦门
34
岁
字符串,顾名思义,就是由一个个字符串起来的组合,字符可以是一个数字、一个字母、一个文字,甚至是一个符号。字符串可以表达现实世界里的词、语句、表达式等。
代码如下(示例):
xiamen = "来到厦门的黄厝,寻一处安寂的海滩,没有消耗时光的人群,只有认真生活的居民。"
night = "照明灯洒下桔色的光晕,整个商场显得典雅素洁,仿佛步入长长的画廊。"
attractions = "厦门有很多景点,但给我印象最深刻的是鼓浪屿,那里的风景最迷人。"
print(xiamen)
print(night)
print(attractions)
结果运行如下:
来到厦门的黄厝,寻一处安寂的海滩,没有消耗时光的人群,只有认真生活的居民。
照明灯洒下桔色的光晕,整个商场显得典雅素洁,仿佛步入长长的画廊。
厦门有很多景点,但给我印象最深刻的是鼓浪屿,那里的风景最迷人。
关于字符串,大家一定要记得:字符串类型必须有【引号】的辅助。不然字符串就只能被报错,无尽地呻吟~
2.整数
常见数据类型中的第二种:整数,整数英文为integer,简写做int。Python世界的整数其实和现实世界数学中定义的一样:是正整数、负整数和零的统称,是没有小数点的数字。
比如在下面的代码框中,赋值语句中的数字都是整数:
a = 15
b = -50
c = 521
d = 0
整数其实是一个不带小数点的数字,可以不穿名为引号的马甲,直接跟print()函数组团搞输出,比如下列代码:
# 打印整数
print(521)
# 打印结果
521
我们已经知道了字符串有【引号】的保护,可以和符号及其他文字类数据,譬如中文、英文随意组合。
比如像这样:
# 打印数据
print(6真实)
print(6virtual)
# 终端显示结果:报错:无效语法
SyntaxError: invalid syntax
所以牢记整数就是:是正整数、负整数和零的统称,是没有小数点的数字。
3.浮点数
那数学意义上的小数在python中怎么表示呢?它就是我们常见三种数据类型中的最后一种:【浮点数】。
浮点数非常好识别,它比整数多了一个小数点『.』,比如下列代码中的数字都是浮点数。
2.0
3.464
-0.521
浮点数的英文名是float,与整数(int)和字符串(str)不同,浮点数没有简写。
浮点数可能让你有点眩晕,这是因为,与【整数运算结果永远精确】的特点不同,计算机里浮点数的运算是不精确的,会有四舍五入的误差。这什么意思呢?
下面,请你先心算一道题【0.55+0.3】,然后我们再让Python算一下:
print(0.55+0.3)
运行结果如下:
0.8500000000000001
为什么不是【0.85】,而尾巴多了一个【1】呢?这是因为,Python计算浮点数时,会先把0.55和0.3转化成二进制数【注:二进制数由0和1表示,逢二进一】,如下:
# 进制转换
0.55(十进制) = 0.1000110011001100110011001100110011001100110011001101(二进制)
0.3(十进制) = 0.0100110011001100110011001100110011001100110011001101(二进制)
而在这个转化过程中存在误差,这样,就造成了我们与程序计算结果的差异。然后,这俩二进制数通过二进制法则运算后,再通过复杂的计算公式,将二进制结果转成十进制小数。
二、数据的应用
1.四则运算
Python里的整数、浮点数和数学意义的整数、小数是一样的,它最重要的作用是与运算符号结合,进行数学计算。接下来我们看一下Python如何利用整数,浮点数进行四则运算。
运算符 | 说明 | 实例 | 结果 |
+ | 加 | 1 + 1 | 2 |
- | 减 | 2 - 1 | 1 |
* | 乘 | 2 * 1 | 2 |
/ | 除 | 7/ 2 | 3.5 |
// | 整除(只保留商的整数部分) | 7 // 2 | 3 |
% | 取余,即返回除法的余数 | 7 % 2 | 1 |
** | 幂运算/次方运算,即返回 x 的 y 次方 | 2 **3 | 8 |
运算优先级:Python世界的运算优先级,和我们平时的计算优先级是一样的。
代码如下(示例):
print(499*561+10620-365)
print((5025-525)/100+18*17)
运行结果如下:
290194
351.0
如print((5025-525)/100+18*17)】的运算顺序:最先计算括号里的【5025-525】;然后将【5025-525】的结果除以100,第三步则计算【18*17】,最后将除法和乘法的结果相加。
知识点:
简单运算优先级口诀:从左到右先算括号里的,括号外的则乘除先于加减。
2.字符串的拼接
字符串拼接的方法很简单,就是利用字符串拼接符号【+】,将需要拼接的变量连在一起就行了。
代码如下(示例):
name = "晓寒"
born_city = "出生在南平"
settle_city = "生活在厦门"
age = "34"
year = "岁"
print(name+age+year+born_city+settle_city)
运行结果如下:
晓寒34岁出生在南平生活在厦门
有了拼接符号,还可以调整变量的拼接顺序,输出不同的内容。
代码如下(示例):
name = "晓寒"
born_city = "出生在南平"
settle_city = "生活在厦门"
age = "34"
year = "岁"
print(name+age+year+born_city+settle_city)
print(name+born_city+settle_city+age+year)
运行结果如下:
晓寒34岁出生在南平生活在厦门
晓寒出生在南平生活在厦门34岁
3.数据类型的查询——type()函数
只要你把内容写在括号里,type()函数就会立即将它的类型查询出来。
查询出来什么类型,我们要结合print()函数打印出结果。
代码如下(示例):
name = "晓寒"
born_city = "出生在南平"
settle_city = "生活在厦门"
age = 34
year = "岁"
print(type(name))
print(type(born_city))
print(type(settle_city))
print(type(age))
print(type(year))
运行结果如下:
<class 'str'>
<class 'str'>
<class 'str'>
<class 'int'>
<class 'str'>
三、数据转换
负责转换数据类型的函数一共有3种:str()、 int()和float()。
1.str()函数
str()函数能将数据转换成其字符串类型,不管这个数据是int类型还是float类型,只要放到括号里。这个数据就能摇身一变,成为字符串类型。
当我们使用引号时,引号里的东西,都会被强制转换为字符串格式。
代码如下(示例):
name = "晓寒"
born_city = "出生在南平"
settle_city = "生活在厦门"
age = 34 #为整数,用str()转换成浮点数
year = "岁"
print(name+str(age)+year+born_city+settle_city)
print(name+"34"+year+born_city+settle_city)
运行结果如下:
晓寒34岁出生在南平生活在厦门
晓寒34岁出生在南平生活在厦门
2.int()函数
将数据转换为整数类型的方法也很简单,就是int()函数。其使用方法同str()一样,将你需要转换的内容放在括号里就行,像这样:int(转换的内容)。
代码如下(示例):
number1 = '500'
number2 = '20'
print(int(number1)+int(number2))
print(500+20)
运行结果如下:
520
520
不过对于int()函数的使用,大家要注意一点:只有符合整数规范的字符串类数据,才能被int()强制转换。
首先,整数形式的字符串比如'500'和'20',可以被int()函数强制转换。
其次,文字形式,比如中文、火星文或者标点符号,不可以被int()函数强制转换。
最后,小数形式的字符串,由于Python的语法规则,也不能使用int()函数强制转换。
比方说下列代码,如果点击运行,程序会报错【ValueError:invalid literal for int() with base 10: '5.2'】(值异常:浮点类型字符串无法使用int()强制转换)。
print(int('5.2'))
# 运行后显示结果:ValueError:invalid literal for int() with base 10: '5.2'
这是不是意味着,浮点数不能转换成整数类型了?
不,虽然浮点形式的字符串,不能使用int()函数。但浮点数是可以被int()函数强制转换的。
观察下方代码:
print(int(5.2))
运行结果如下:
5
int()函数的本质是将数据转换为整数。所以对于浮点数,int()函数会做取整处理。但是,同我们平时对小数四舍五入的处理方法不同,int()函数会直接抹零,直接输出整数部分。
3.float()函数
首先,float()函数的使用,也是将需要转换的数据放在括号里,像这样:float(数据)。
其次,float()函数也可以将整数和字符串转换为浮点类型。但同时,如果括号里面的数据是字符串类型,那这个数据一定得是数字形式。
代码如下(示例):
height = 125.0
weight = 112.5
age = '34'
print(height)
print(weight)
print(float(age))
运行结果如下:
125.0
112.5
34.0
上述代码中,height与weight变量已经是浮点类型,age是字符串类型(可以用type(变量)来查看数据类型),因此打印前对将age进行float(age)
转化即可。
小结
已经知道了转换数据类型的方法了,看下图看他们的关系吧
总结
数据类型与转换总结看下下图