对象和类型
五种基本对象类型
字符串 (string),简记为 str
使用 ’ ’ 或 ” ” 括起来的一系列字符
整数(integer),简记为 int
十进制:21,八进制:025,十六进制:0x15
浮点数(float)
1.48,21.0,21.,.21,2.1E2
布尔数(boolean),简记为 bool
True,False
复数(complex)
1+1j
对象类型
type('小明')--> <type 'str'>
type('男')--> <type 'str'>
type(15)--> <type 'int'>
type(1.48)--> <type 'float'>
type(43.2)--> <type 'float'>
type('江苏')--> <type 'str'>
为什么区分对象类型?
不同类型对象运算规则不同
如:整数的加法和字符串的加法含义不同
不同类型对象在计算机内表示方式不同
5 –> 101,’5’–> 1001101
为何区分整数与浮点数?
浮点数表示能力更强
浮点数有精度损失
1.1 + 1.1 + 1.1 =3.300000000003
CPU有专门的浮点数运算部件
强制类型转换
int('123') --> 123
str(123) --> '123'
float('123') --> 123.0
float(123) --> 123.0
bool(123) --> True
bool(0) --> False
以下不能 转换
a_str = 'test'
a_num = int(a_str)
#必须是字符中可转换的时候才能转换
运算符
算术运算符(Arithmetic Operators)
2/3 =0
3.0/6=0.5
Python 2 中,“/”表示向下取整除(floor division)
两个整数相除,结果也是整数,舍去小数部分
如果有一个数为浮点数,则结果为浮点数
自动类型转换
若参与运算的两个对象的类型同,则结果类型不变
如:1 / 2 = 0
若参与运算的两个对象的类型不同,则按照以下规则进行自动类型转换
bool –> int –> float –> complex
1.0 + 3 = 4.0
True + 3.0 = 4.0
求余运算符
求余运算符(%)
如:10 % 3 = 1
应用
若今天是星期六,则10天后是星期几?
(6 + 10) % 7 = 2
判断一个数 x 是否为偶数
x % 2 是否等于 0
math 模块
模块(module)
实现一定的功能的 Python 脚本集合
引入模块
import module_name
math模块
import math
查看模块内容
dir(math)
查看帮助
“`
help(math.sin)
dir(math)
[‘doc‘, ‘file‘, ‘name‘, ‘package‘, ‘acos’,
‘acosh’, ‘asin’, ‘asinh’, ‘atan’, ‘atan2’, ‘atanh’, ‘ceil’,
‘copysign’, ‘cos’, ‘cosh’, ‘degrees’, ‘e’, ‘erf’, ‘erfc’, ‘exp’,
‘expm1’, ‘fabs’, ‘factorial’, ‘floor’, ‘fmod’, ‘frexp’, ‘fsum’,
‘gamma’, ‘hypot’, ‘isinf’, ‘isnan’, ‘ldexp’, ‘lgamma’,
‘log’, ‘log10’, ‘log1p’, ‘modf’, ‘pi’, ‘pow’, ‘radians’, ‘sin’,
‘sinh’, ‘sqrt’, ‘tan’, ‘tanh’, ‘trunc’]
“`
关系运算符(Relational Operators)
判断一个数 x 是否为偶数
x % 2 是否等于 0
x % 2 == 0
若为True,则 x 为偶数
若为False,则 x 为奇数
用于判断两个值的关系
大小、相等或不相等
运算的结果只有两种(布尔型)
若结果为True,表示条件成立
若结果为False,表示条件不成立
逻辑运算符(Logical Operators)
运算符优先级
看看下面两个表达式
2 * 1 + 3 先乘后加
2 * (1+3) 先加后乘
括号()
改变了语言内在的默认优先级
具有最高优先级
嵌套括号按照由内而外结合
(2 * (1 + 2))**2 == 3