在python中,一切皆对象,对象必有的三个属性:地址、类型、值;
Python中的变量并不直接存储,而是存储了值的内存地址或者引用;定义 a=5,首先创建一个对象5,5被存在内存中,有自己独立的一块地址空间,然后a指向(引用)了5;a可以称为变量,5为存储在变量中的值;
每个变量在使用前都必须赋值,赋值以后该变量才会被创建;变量有6种基本类型:number(数字)、string(字符串)、list(列表)、tuple(元组)、set(集合)、dictionary(字典)
本章先介绍:number(数字)、string(字符串)
目录
数字类型
int(有符号整数)
bool(布尔型)
float(浮点数)
complex(复数)
定义
等号右边,直接写数字即可
num = 2 #定义整数
print('num变量类型为:',type(num), '唯一标识id为:',id(num), '值为:',num)
num1 = 3.14 #定义浮点数
print('num1变量类型为:',type(num1), '唯一标识id为:',id(num1),'值为:',num1)
类型转换
num1 = 3.14
num2 = int(num1) #int可以把对象定义成整数
print('num2变量类型为:',type(num2), '唯一标识id为:',id(num2),'值为:',num2)
不可变对象
当对象的值发生变化,内存地址也发生改变时,则说明是不可变类型;
运算
算术运算符
+,-,*,/ 分别表示加,减,乘,除
% 取余数,也称为取模
** 幂
// 整除
比较运算符
大于 小于 等于(==)
大于等于
小于等于
不等于(!=)
#数字的运算
import math #引入math模块
f1 = 20
f2 = 10
alpha = math.pi / 3 #调用math模块的pi函数
x_force = f1 + f2 * math.sin(alpha)
y_force = f2 * math.cos(alpha)
force = math.sqrt(x_force * x_force + y_force ** 2)
print('运算结果为:',round(force,2),'N')
字符串类型
定义
单引号或者双引号( ' 或 " )
a = "python" #定义 用双引号
b = 'python' #定义 用单引号
c = '123' #加了引号就是字符串
d = "what's your name" #字符串中有单引号时,最外层用双引号区分
e = 'what\'s your name' #字符串中有单引号时,单引号前使用转义字符区分
print('a变量类型为:',type(a),'b变量类型为:',type(b),'c变量类型为:',type(c))
print('d变量类型为:',type(d),'e变量类型为:',type(e))
类型转换
a = '3'
a1 = int(a) #字符串转换成整数
print(type(a1))
a = 3
a1 = str(a) #整数转换成字符串
print(type(a1))
不可变对象
当对象的值发生变化,内存地址也发生改变时,则说明是不可变类型;
运算
b = 'python'
c = '123'
print('运算结果为:',b + c) #拼接
print('运算结果为:',b * 3) #重复3次
print('运算结果为:','p' in b) #字符中是否存在p
print('b的值为:',b,'b的长度为:',len(b))
截取(索引、切片)
字符串是序列的一种
b = 'python'
print('获取左边第1个元素',b[0])
#获取索引值为0的值,即获取左边第1个元素
print('获取左边第2 3 4元素',b[1:4])
#步长没有则默认为1,获取索引值1 2 3的值,即获取左边第2 3 4元素; 切片包含左不包含右
print('步长为2时',b[1:4:2])
#步长为2,获取索引值1 3的值;
print(b[2:])
#终止索引没有则默认切片到最后一个元素;
print(b[::-1])
#步长为负,从右往左
print(b)
字符串常用方法
ls = 'i love python'
print('字符串方法有:',dir(ls))
#dir 查看有哪些方法
拆分 split
ls2 = ls.split(' ')
#拆分 split 通过空格拆分字符串; 不影响原变量
print('原变量:',ls,'拆分后:',ls2)
拼接 join
ls3 = '-'.join(ls2)
#拼接 join 通过-拼接字符串; 不影响原变量
print('原变量:',ls,'拼接后:',ls3)
格式化 format
ls4 = 'i like {0:^10} and {1:>10}'.format('A','B')
#格式化 format (占位10个字符 ^居中 >右对齐)
print('格式化后',ls4)