Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。
标准数据类型
Python3 中有六个标准的数据类型:
- Number(数字)
- String(字符串)
- List(列表)
- Tuple(元组)
- Set(集合)
- Dictionary(字典)
Python3 的六个标准数据类型中:
- 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
- 可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。
1.Number :int(长整形) \float \bool\complex
注意:python中可以连续赋值>>>a,b,c,d=5,1.5,Ture,5+4j
利用type()函数查询类型
Print(type(a),type(b)…)
输出为:
<class 'int'> <class 'float'> <class 'bool'> <class 'complex'>
注意:bool为0和1,可以与数字相加
创建变量
赋值后对象就会被创建
Python可以同时为多个变量赋值,如
a, b = 1,2
Del删除变量
例如:
Del var
Del var_1,var_2
数值运算
在混合计算时,Python会把整型转换成为浮点数。
注意:数值的除法包含两个运算符:/ 返回一个浮点数,// 返回一个整数。
>>> 24/5
4.8
>>> 24//5
4
>>>
乘方:
>>> 2 ** 3 # 乘方
8
其他基本运算与Java、C++相同。
String类型
字符串用单引号 ' 或双引号 " 括起来,同时使用反斜杠 \ 转义特殊字符。
与Java、c++相似,略有不同!!
>>> print(str)
hdghgdh
>>> str="abcdefgh"
>>> print(str)#输出str;
abcdefgh
>>> print(str[1])#输出str中第2个元素
b
>>> print(str[2:5])#输出第3到第5个元素
cde
>>> print(str[1:-1])#输出第2到倒数第2个元素,-1是从后往前数
bcdefg
>>> print(str[2:])#输出第2到最后的所有元素
cdefgh
>>> print(str+"ijk")#+为字符连接;
abcdefghijk
>>> print(str*2)#*为复制字符串,2为复制的遍数;
Abcdefghabcdefgh
注意,Python 没有单独的字符类型,一个字符就是长度为1的字符串。
>>> str="abcdefg"
>>> print(str[2],str[5])
c f
注意:Python 字符串不能被改变。向一个索引位置赋值,比如str[0] = 'm'会导致错误。
List(列表)
List应用最为广泛,支持数字,字符串,嵌套List等
注意:List中元素可以不相同。
>>> list =[123,456]
>>> lists=[789,'abcdefg',258,369,list]
>>> print(lists)
[789, 'abcdefg', 258, 369, [123, 456]]//输出结果
List的截取与字符串相同
不同点是List的值是可以更换的,字符串是不可以更换的
>>> a = [1, 2, 3, 4, 5, 6]
>>> print(a)
[1, 2, 3, 4, 5, 6]
>>> a[0]=11
>>> print(a)
[11, 2, 3, 4, 5, 6]
>>> a[3:5]=[13,14,15]
>>> print(a)
[11, 2, 3, 13, 14, 15, 6]
>>>
注意:List与字符串相同,+为连接,*为重复。
Tuple(元组)
元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里。
元组中的元素类型也可以不相同
>>> tuple=(1,2,"abc")
>>> tuples=(4,5,"def",tuple)
>>> print(tuples)
(4, 5, 'def', (1, 2, 'abc'))
元组的截取与List相同
+与*也与List相同
>>> print(tuple+tuples)
(1, 2, 'abc', 4, 5, 'def', (1, 2, 'abc'))
>>> print(tuples*2)
(4, 5, 'def', (1, 2, 'abc'), 4, 5, 'def', (1, 2, 'abc'))
注意:元组的元素是不可以修改的。
注意:构造包含0或1个元素的元组的时有特殊语法规则。
>>> tuple = () # 空元组
>>> tuples= (20,) # 一个元素,需要在元素后添加逗号
>>> print(tuple+tuples)
(20,)
Set(集合) (一个无序不重复元素集)
集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员。
基本功能是进行成员关系测试和删除重复元素。
可以使用大括号 { } 或者 set() 函数创建集合。
注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
注意:与列表和元组不同,集合是无序的,也无法通过数字进行索引。此外,集合中的元素不能重复
SET的操作如下(部分):
>>> x = set('spam')
>>> y = set(['h','a','m'])
>>> x, y
({'m', 's', 'a', 'p'}, {'m', 'h', 'a'})
>>> x&y //x与y的交集
{'m', 'a'}
>>> x|y //x与y的并集
{'m', 'h', 'p', 's', 'a'}
>>> x-y //x与y的差集
{'s', 'p'}
>>> x^y //x与y的对称差集
{'h', 'p', 's'}
>>> t={1,2,3,4,5,5,6,7,7,8,9}
>>> print(t)
{1, 2, 3, 4, 5, 6, 7, 8, 9}
>>> t.add("x") //增加一个元素
>>> print(t)
{1, 2, 3, 4, 5, 6, 7, 8, 9, 'x'}
>>> t.update([10,11,12]) //增加多个元素
>>> print(t)
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 'x'}
>>> t.remove("x") //删除一个元素
>>> t
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}
>>> len(t) //set的长度
12
>>> 2 in t //判断2是否在t中
True
>>> 2 not in t //判断2是否在t中
False
>>> s={1,3,5,"x"}
>>> s.issuperset(t) //判断s手否为t的子集
False
>>> a=s.copy() //返回s的复制
>>> a
{1, 3, 'x', 5}
Dictionary(字典)
字典是一种映射类型,字典用"{ }"标识,它是一个无序的键(key) : 值(value)对集合。
注意:键(key)必须使用不可变类型,并且key必须唯一。(string,元组,数字)
字典用{}标识
>>> a={"a":1,"b":2} //创建字典a
>>> a
{'a': 1, 'b': 2}
>>> a["a"] //按key值输出
1
>>> a.keys() //输出所有的键值
dict_keys(['a', 'b'])
>>> a.values() //输出所有值
dict_values([1, 2])
修改
>>> a["a"]=3 //修改值
>>> a
{'a': 3, 'b': 2}
>>> a["c"]=4 //添加一个
>>> a
{'a': 3, 'b': 2, 'c': 4}
删除
>>> del a["a"] //删除一个
>>> a
{'b': 2, 'c': 4}
>>> a.clear() //清空字典
>>> a
{}
>>> del a //删除字典
>>> a //在输出a时出现错误!
Traceback (most recent call last):
File "<pyshell#40>", line 1, in <module>
a
NameError: name 'a' is not defined
字典中的内置方法:
radiansdict.clear() #删除字典内所有元素
radiansdict.copy() #返回一个字典的浅复制
radiansdict.fromkeys() #创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
radiansdict.get(key, default=None) #返回指定键的值,如果值不在字典中返回default值
radiansdict.has_key(key) #如果键在字典dict里返回true,否则返回false
radiansdict.items() #以列表返回可遍历的(键, 值) 元组数组
radiansdict.keys() #以列表返回一个字典所有的键
radiansdict.setdefault(key, default=None) #和get()类似, 但如果键不已经存在于字典中,将会添加键并将值设为default
radiansdict.update(dict2) #把字典dict2的键/值对更新到dict里
radiansdict.values() #以列表返回字典中的所有值
注意:字典值可以没有限制地取任何python对象,既可以是标准的对象,也可以是用户定义的,但键不行。