python基础-基本数据类型
1.Python简介
1.python是一门编程语言,是一门完全面向对象的编程语言
```
python数字都是一个对象
>>> type(1)
<class 'int'>
java中数字不是一个对象只是一个基本类型
```
2.如果对语言进行分类,那么python是一门强类型,动态类型的语言
弱类型:比如int可以变成float,python中数值类型不可变;
```
python数字都是一个对象,强类型
a=1
b="2"
a+b 这样是报错,这就是强类型
javascript数据类型不同也可以相加,是弱类型
var a=3.14;
var b="Bill Gates";
a+b ="3.14Bill Gates"
```
动态类型:编译时不知道变量类型,python中变量无类型
```
python不需要声明数据类型
a=1 整型
a="2" str类型
print(a) a是str类型
java数据类型则不同
int a=1
a="2" 这样是报错的
```
2.数值类型
数值类型就是我们平常用来做计算的数字类型,在python中有如下几种数值类型
py文件输出需要借助(print方法),python自带IDE输入代码不需要print,会自动打印出来
#整型
int
a=5
a=b=c=1 #多个赋值
>>> type(1)
<class 'int'>
#浮点型
float
a=1.1
>>> type(1.0)
<class 'float'>
#布尔型
bool
a=True #bool 包含两个值,True对应(1)、False对应(0)
>>> a=1
>>> b=True
>>> a+b
2
#复数型 (在python中用小写 j ,表示虚部,用其他的字母不行)
complex
c=1+2j #1是实数 ,2j是虚数
>>> type(1+2j)
<class 'complex'>
数值类型主要是用来是做运算的,所以还会有如下的运算符
#数值运行常用运算符
#+ 加
>>> 1+2
3
#- 减法
>>> 2-11
-9
#* 乘法
>>> 3*5
15
#/ 除法 #(python2不一样,整除,向下取整)
>>> 2/8
0.25
#//(整除,向下取整)
>>> a=2
>>> b=1.5
>>> a//b
1.0
#%(取余)
>>> 2%2
0
>>> 2%3
2
>>> 2%1.5
0.5
#** (幂)
>>> 3**3
27
#赋值运算符
= += -= *= /=
>>> a=2
>>> b=3
>>> a+=5
>>> print a
7
-= *= /= 对应减 、乘、除
#条件运算符号
==
>>> False ==0
True
基本数值类型中前三种是常用的,复数在数学里面用得多,但是一般是用不上的。
3.序列类型
在python中三种序列类型,序列类型简单来说就是对象里面的元素是有顺序的。
#字符串 str有三种(’‘ 单引号,“” 双引号 ,''' '''或 “”“ ”“” 三引号,可以换行)
>>> "a"
'a'
>>> '''aaa
bbb
'''
'aaa\nbbb\n'
#列表 list
>>> li=[1,2,3,4]
>>> type(li)
<type 'list'>
#元组 tuple
定义有两种方式
li=(1,2,3,4)
li=1,2
li=1, 单个元素
li=(1,) 单个元素
>>> type(li)
<type 'tuple'>
#取值
#正向 索引分两种:
# 0开始
>>> li=1,2,3
>>> li[0]
1
# -1开始,取得最后一个值
>>> li=1,2,3
>>> li[-1]
3
>>> li[-2]
2
#反向 索引(反向切片)
>>> li=1,2,3,4,5
>>> li[3:2]
()
>>> li[3:2:-1] # -1是步长(多少步一跨,包含自己,默认步长是1)
(4,)
>>> li[0:4:] #默认步长是1
(1, 2, 3, 4)
>>> li[::] #取所有
(1, 2, 3, 4, 5)
#切片,左闭右开(包含左边,不包含右边)
>>> li=2,3,4
>>> li[-2:-1]
(3,)
>>> li=2,3,4
>>> li[1:2]
(3,)
# 可变序列:list
# 不可变序列:tuple,str
>>> li=[1,2]
>>> id(li) #id查看内存地址
# list:list内存地址未改变,可变序列
>>> li=[1,2]
>>> li+=li
>>> id(li)
56098728 #内存地址
>>> li+=li
>>> id(li)
56098728 #内存地址
# 元组:tuple 内存地址改变了,不可变序列
>>> li=(1,2)
>>> li+=li
>>> id(li)
56069504 #内存地址
>>> li+=li
>>> id(li)
55848048 #内存地址
# 字符串:str内存地址改变了,不可变序列
>>> a="abc"
>>> id(a)
9989504 #内存地址
>>> a+=a
>>> id(a)
56057216 #内存地址
#查看关键字,防止命名重复
>>> import keyword
>>> keyword.kwlist
序列类型做为基本的数据类型是大家必须要掌握的,在python中大家会经常见到这三种数据类型。首先要掌握定义和序列的通用操作。
1.创建序列
字符串用引号创建
列表用中括号 [] 创建
元组用小括号() 或者 直接用逗号隔开各元素
2.序列的通用操作
索引取值切片 索引:正向索引和反向索引
类型的转换: str() list() tuple ()
相加 + +=
>>> li=1,2,3,4
>>> li1=5,6
>>> li+=li1
>>> print (li)
(1, 2, 3, 4, 5, 6)
重复 * *=
>>> li=1,2
>>> print(li*2)
(1, 2, 1, 2)
>>> li=1,2
>>> li*=2
>>> print(li)
(1, 2, 1, 2)
# 检查成员 in not in
>>> li=1,2,3,4,5
>>> 1 in li
True
>>> 1 not in li
False