在程序语言中字符串和数字处理恐怕是我们经常要接触的东西了。
在python语言中,下面四种类型是被python所支持的:
整型
通常被称为整型或整数,是正整数或者负整数,没有小数点。
定义:
student_count = 100;
//在python3中没有长整型的概念,这一点学习果python2.7版本的小伙伴的留意了。
布尔类型
在Python 2 中是没有布尔型的,它用数值 0 表示 False ,用 1 表示 True 。到 Python 3 中,把 True 和 False 定义成关键字了,但它们的值还是 1 和 0 ,它们可以和数字相加。
定义:
is_student = False;
浮点型
浮点型有整数部分和小数部分组成,也可以采用科学计数法表示。
定义:
book_price = 15.25;
book_max_count = 2.5e2;
另外在处理浮点数的时候,大家需要注意一下,小数位数的结果可能是不确定的:
print(0.1+0.2);
按照常规,这里似乎输出0.3是符合我们的期望的。可实际结果确实:
0.30000000000000004
这一点大家不需要纠结,这要知道这是所有语言都无法避免的,这是和计算机内部表示数字的方式有关的。
复数
复数有实部和虚部组成,可以使用a+bj或者complex(a,b)来表示,其中a,b都是浮点数。
complex_numbers = 10 + 25j;
complex_numbers2 = complex(10,25);
print(complex_numbers);
print(complex_numbers2);
输出:
(10+25j)
(10+25j)
这里在介绍一个函数str(),这个函数可以帮助我们在python字符串中避免直接使用数字进行字符串拼接导致的错误。
首先了,我们先看一个例子,大家看下输出是什么?
max_age = 50;
message = "I think the max age is " + max_age + " years old";
print(message);
让我想一下,结果一定是
I think the max age is 50 years old
哦,当你运行程序的时候,你会发现,原来不是这么回事啊,怎么会出错了呢?
File "D:/Programs/python/HelloWorld/hello_world.py", line 14, in <module>
message = "I think the max age is " + max_age + " years old";
TypeError: must be str, not int
这个错误就很好理解了,整型在这里不能使用啊,必须要转化为字符串啊。好了,
str()终于有了用武之地了。
max_age = 50;
message = "I think the max age is " + str(max_age) + " years old";
打印一下输出:
I think the max age is 50 years old
嗯,一切和我们预想的一样了。
另外在python2中,将两个整数相除的处理和python3中也是有差异的。
在python2中运行如下代码:
print(3/2);
你会得到的输出是:1
而在python3中你会的到:1.5
这一点在使用或编写浮点数和整数的代码时,大家一定要注意这种异常的行为。
既然是数字处理,当然就得说一下python中的数学运算模块了。
这里主要提及math和cmath两个模块。
要想使用这连个模块,当然的线导入了。
导入语句如下:
import math
import cmath
然后我们打印一下这两个模块都有哪些东西。
首先是math模块:
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'fact
orial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'pi', 'pow', 'radians', 'sin', 'sinh',
'sqrt', 'tan', 'tanh', 'tau', 'trunc']
cmath模块:
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'cos', 'cosh', 'e', 'exp', 'inf', 'infj', 'isclose', 'isfinite', 'isinf', 'isnan', 'log', 'log10', 'nan'
, 'nanj', 'phase', 'pi', 'polar', 'rect', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau']