一.python的基本数据类型。
python3的基本数据类型:
Number(数字)、String(字符串)、List(列表)、Tuple(元组)、Set(集合)、Dictionary(字典)
数据类型判断
>>> name="1" #定义一个str类型的变量
>>> t = type(name)#方式一获取类型,返回值就是数据类型
>>> instance = isinstance(name, str)#方式一,判断是否属于某一种类型,属于返回true,不属于返回false
<class 'str'>
True
1.1Number(数字)
Python3 支持** int、float、bool、complex(复数)**。
>>> a, b, c, d = 20, 5.5, True, 4 + 3j#定义多个变量
>>> print(type(a), type(b), type(c), type(d))#输出变量的类型
<class 'int'> <class 'float'> <class 'bool'> <class 'complex'>
1.2String(字符串)
Python中的字符串用单引号 ' 或双引号 " 括起来,同时使用反斜杠 \ 转义特殊字符。
>>> a="hello"
>>> b='hi'
>>> print(type(a),type(b))
<class 'str'> <class 'str'>
1.字符串切片。
- str[:] 提取从开头(默认位置0)到结尾(默认位置-1)的整个字符串
- str[start:] 从start 提取到结尾
- str[:end] 从开头提取到end 负数
- str[start:end] 从start 提取到end 负数
- str[start:end:step] 从start 提取到end - 1,每step 个字符提取一个
2.字符串运算
+
:字符串连接
>>> a="hello"
>>> b='python'
>>> print(a+b)
hellopython
*
: 重复输出字符串(只能和number类型相乘)
>>> a="hello"
>>> b=3
>>> print(a*b)
hellohellohello
3.字符串常见操作
1.字符串格式输出对齐
>>> str = "Python stRING"
>>> print str.center(20) #生成20个字符长度,str排中间
Python stRING
>>> print str.ljust(20) #生成20个字符长度,str左对齐
Python stRING
>>> print str.rjust(20) #生成20个字符长度,str右对齐
Python stRING
2.大小写转换
>>> str = "Python stRING"
>>> str.upper() #转大写
'PYTHON STRING'
>>> str.lower() #转小写
'python string'
>>> str.capitalize() #字符串首为大写,其余小写
'Python string'
>>> str.swapcase() #大小写对换
'pYTHON STring'
>>> str.title() #以分隔符为标记,首字符为大写,其余为小写
'Python String'
3.字符串条件判断
>>> str = '01234'
>>> str.isalnum() #是否全是字母和数字,并至少有一个字符
True
>>> str.isdigit() #是否全是数字,并至少有一个字符
True
>>> str = 'string'
>>> str.isalnum() #是否全是字母和数字,并至少有一个字符
True
>>> str.isalpha() #是否全是字母,并至少有一个字符
True
>>> str.islower() #是否全是小写,当全是小写和数字一起时候,也判断为True
True
>>> str = "01234abcd"
>>> str.islower() #是否全是小写,当全是小写和数字一起时候,也判断为True
True
>>> str.isalnum() #是否全是字母和数字,并至少有一个字符
True
>>> str = ' '
>>> str.isspace() #是否全是空白字符,并至少有一个字符
True
>>> str = 'ABC'
>>> str.isupper() #是否全是大写,当全是大写和数字一起时候,也判断为True
True
>>> str = 'Aaa Bbb'
>>> str.istitle() #所有单词字首都是大写,标题
True
>>> str = 'string learn'
>>> str.startswith('str') #判断字符串以'str'开头
True
>>> str.endswith('arn') #判读字符串以'arn'结尾
True
4.字符串搜索定位与替换
>>> str='string lEARn'
>>> str.find('z') #查找字符串,没有则返回-1,有则返回查到到第一个匹配的索引
-1
>>> str.find('n') #返回查到到第一个匹配的索引
4
>>> str.rfind('n') #返回的索引是最后一次匹配的
11
>>> str.index('a') #如果没有匹配则报错
Traceback (most recent call last):
File "<input>", line 1, in <module>
ValueError: substring not found
>>> str.index("n") #同find类似,返回第一次匹配的索引值
4
>>> str.rindex("n") #返回最后一次匹配的索引值
11
>>> str.count('a') #字符串中匹配的次数
0
>>> str.count('n') #同上
2
>>> str.replace('EAR','ear') #匹配替换
'string learn'
>>> str.replace('n','N')
'striNg lEARN'
>>> str.replace('n','N',1)
'striNg lEARn'
>>> str.strip('n') #删除字符串首尾匹配的字符,通常用于默认删除回车符
'string lEAR'
>>> str.lstrip('n') #左匹配
'string lEARn'
>>> str.rstrip('n') #右匹配
'string lEAR'
>>> str = " tab"
>>> str.expandtabs() #把制表符转为空格
' tab'
>>> str.expandtabs(2) #指定空格数
' tab'
5.字符串编码与解码
>>> str = "字符串学习"
>>> str
'\xe5\xad\x97\xe7\xac\xa6\xe4\xb8\xb2\xe5\xad\xa6\xe4\xb9\xa0'
>>> str.decode('utf-8') #解码过程,将utf-8解码为unicode
u'\u5b57\u7b26\u4e32\u5b66\u4e60'
>>> str.decode("utf-8").encode('gbk') #编码过程,将unicode编码为gbk
'\xd7\xd6\xb7\xfb\xb4\xae\xd1\xa7\xcf\xb0'
>>> str.decode('utf-8').encode('utf-8') #将unicode编码为utf-8
'\xe5\xad\x97\xe7\xac\xa6\xe4\xb8\xb2\xe5\xad\xa6\xe4\xb9\xa0'
6.字符串分割变换
>> str = "Learn string"
>>> '-'.join(str)
'L-e-a-r-n- -s-t-r-i-n-g'
>>> li = ['Learn','string']
>>> '-'.join(li)
'Learn-string'
>>> str.split('n')
['Lear', ' stri', 'g']
>>> str.split('n',1)
['Lear', ' string']
>>> str.rsplit('n')
['Lear', ' stri', 'g']
>>> str.rsplit('n',1)
['Learn stri', 'g']
>>> str.splitlines()
['Learn string']
>>> str.partition('n')
('Lear', 'n', ' string')
>>> str.rpartition('n')
('Learn stri', 'n', 'g')
1.3List(列表)
列表List可以包含不同类型的数据对像,同时它是一个有序的集合"python 集合"
list = [ 'abcd', 786 , 2.23, 'runoob', 70.2 ]
列表可以包含不同类型对像,也支持嵌套:
a = ['a',567,['adc',4,],(1,2)]
列表的操作
1,增加新的元素
list.append() 在list 末尾增加一个元素
list.insert(n,'4') 在指定位置添加元素,如果指定的下标不存在,那么就是在末尾添加
list1.extend(list2) 合并两个list list2中仍有元素
2,删除list 中的元素
list.pop() 删最后一个元素
list.pop(n)指定下标,删除指定的元素,如果删除一个不存在的元素会报错
list.remove(xx) 删除list 里面的一个元素,有多个相同的元素,删除第一个
print(list.pop()) 有返回值
print(list.remove()) 无返回值
list.clear()清空list
del list[n] 删除指定下标对应的元素
del list 删除整个列表, list删除后无法访问
3,查看列表中的值
print(list) 遍历列表输出
等价于 for i in list:
print i
print(list[n]) 使用下标索引来访问列表中的值,同样你也可以使用方括号的形式截取字符
print(list.count(xx)) 查看某个元素在这个列表里的个数,如果改元素不存在,那么返回0
print(list.index(xx))找到这个元素的角标,如果有多个,返回第一个,如果找一个不存在的元素会报错
4,排序和反转
list.reverse()将列表反转
list.sort()排序,默认升序
list.sort(reverse=True) 降序排列
注:list 中有字符串,数字时不能排序,排序针对同类型
5,列表操作的函数
len(list):列表元素个数
max(list):返回列表元素最大值
min(list):返回列表元素最小值
list(seq):将元组转换为列表
1.4 Tuple(元组)
元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。
元组中的元素类型也可以不相同
tuple = ('hello', 786, 2.23, 'python', 70.2)
- 1、与字符串一样,元组的元素不能修改。
- 2、元组也可以被索引和切片,方法一样。
- 3、注意构造包含 0 或 1 个元素的元组的特殊语法规则。
- 4、元组也可以使用+操作符进行拼接。
1.5 Set(集合)
集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员。
基本功能是进行成员关系测试和删除重复元素。
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
集合没有重复元素,且无序的数据类型,且不能通过索引来引用集合中的元素
a = {66.6, 'Jim', 12, 'Tom', True, 'Rose'}
或者
a =set()
1.6 Dictionary(字典)
字典(Dictionary)在Python中是一种可变的容器模型,它是通过一组键(key)值(value)对组成,这种结构类型通常也被称为映射,或者叫关联数组,也有叫哈希表的。
d = {
"k1": 18,
"k2": True,
"k3": ['Su', {
'kk1': 'vv1',
'kk2': 'vv2',
'kk3': (11, 22),
}
],
1527: (11, 22, 33, 44)
}
Python字典包含了以下内置函数:
1、cmp(dict1, dict2):比较两个字典元素。
2、len(dict):计算字典元素个数,即键的总数。
3、str(dict):输出字典可打印的字符串表示。
4、type(variable):返回输入的变量类型,如果变量是字典就返回字典类型。
Python字典包含了以下内置方法:
1、radiansdict.clear():删除字典内所有元素
2、radiansdict.copy():返回一个字典的浅复制
3、radiansdict.fromkeys():创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
4、radiansdict.get(key, default=None):返回指定键的值,如果值不在字典中返回default值
5、radiansdict.has_key(key):如果键在字典dict里返回true,否则返回false
6、radiansdict.items():以列表返回可遍历的(键, 值) 元组数组
7、radiansdict.keys():以列表返回一个字典所有的键
8、radiansdict.setdefault(key, default=None):和get()类似, 但如果键不已经存在于字典中,将会添加键并将值设为default
9、radiansdict.update(dict2):把字典dict2的键/值对更新到dict里
10、radiansdict.values():以列表返回字典中的所有值
二.运算符。
2.1 算术运算符
运算符 | 描述 | 实例 |
---|---|---|
+ | 加 - 两个对象相加 | a + b 输出结果 30 |
- | 减 - 得到负数或是一个数减去另一个数 | a - b 输出结果 -10 |
* | 乘 - 两个数相乘或是返回一个被重复若干次的字符串 | a * b 输出结果 200 |
/ | 除 - x除以y | b / a 输出结果 2 |
% | 取模 - 返回除法的余数 | b % a 输出结果 0 |
** | 幂 - 返回x的y次幂 | a**b 为10的20次方, 输出结果 100000000000000000000 |
2.1 比较运算符
运算符 | 描述 | 实例 |
---|---|---|
== | 等于 - 比较对象是否相等 | (a == b) 返回 False。 |
!= | 不等于 - 比较两个对象是否不相等 | (a != b) 返回 true. |
<> | 不等于 - 比较两个对象是否不相等 | (a <> b) 返回 true。这个运算符类似 != 。 |
> | 大于 - 返回x是否大于y | (a > b) 返回 False。 |
< | 小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。 | (a < b) 返回 true。 |
>= | 大于等于 - 返回x是否大于等于y。 | (a >= b) 返回 False。 |
<= | 小于等于 - 返回x是否小于等于y。 | (a <= b) 返回 true。 |
2.1 赋值运算符
运算符 | 描述 | 实例 |
---|---|---|
= | 简单的赋值运算符 | c = a + b 将 a + b 的运算结果赋值为 c |
+= | 加法赋值运算符 | c += a 等效于 c = c + a |
-= | 减法赋值运算符 | c -= a 等效于 c = c - a |
*= | 乘法赋值运算符 | c *= a 等效于 c = c * a |
/= | 除法赋值运算符 | c /= a 等效于 c = c / a |
%= | 取模赋值运算符 | c %= a 等效于 c = c % a |
**= | 幂赋值运算符 | c **= a 等效于 c = c ** a |
//= | 取整除赋值运算符 | c //= a 等效于 c = c // a |
2.1 逻辑运算符
运算符 | 逻辑表达式 | 描述 | 实例 |
---|---|---|---|
and | x and y | 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 | (a and b) 返回 20。 |
or | x or y | 布尔"或" - 如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值。 | (a or b) 返回 10。 |
not | not x | 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 | not(a and b) 返回 False |