Python变量

python中的变量不声明类型,变量在赋值之后才可以使用,具体类型是由变量指向的内存中所放的数据类型决定的。
可以使用多变量赋值的方式对其赋值。

a = b = c = 1
x, y, z = 1, 2, "runoob"

Python3的六种基本数据类型

  • 数字(Number)
  • 字符串(String)
  • 集合(Set)
  • 列表(List)
  • 元祖(Tuple)
  • 字典(Dictionary)
    其中,不可变啊类型为:数字、字符串、元祖; 可变类型为:集合、列表、字典

数字(Number)

  • python3支持四种数字类型,int,float,bool,complex
  • 使用type(),isinstance()检验数据类型。(注:type不认为子类是父类的类型;isinstance认为子类是父类的类型)
  • 除法运算中,/ 返回一个浮点数,// 返回一个整数
  • 使用del删除一个或者多个对象
输入:
a = 12
b = True
c = 3E-2
d = 2+2j
print(type(a),type(b),type(c),type(d))
isinstance(a, int)
输出:
<class 'int'> <class 'bool'> <class 'float'> <class 'complex'>
True

输入:
x = 15
y = 5
z = 6
print(x/y)
print(x//z)
输出:
3.0
2

字符串(String)

  • 索引

python3 类编程示例 python3类型_基本数据类型

输入:
str = "abcdefghijk"
print(str[1:])
print(str[1:3])
print(str[-1:])
print(str[-3:-1])
输出:
bcdefghijk
bc
k
ij
  • 转义
    使用反斜杠转义字符串中的特殊字符,使用r取消转义
输入:
str = "abcdefghi\njk"#\n为特殊符号,并且只代表一个字符
print(str)
print(str[-4:])
输出:
abcdefghi
jk
i
jk

输入:
print(r"abcdefghi\njk")
输出:
abcdefghi\njk
  • 拼接与重复
输入:
str1 = "abc"
str2 = "def"
print(str1+str2)
print(str1 * 2)
输出:
abcdef
abcabc

列表(List)

在python中,列表最为常用。列表中的元素可以不相同,格式为使用方括号包含,其中的元素使用逗号隔开。列表也有字符串那样的索引和截取方式。
截取、切片参考字符串,此处不再赘余。此处介绍列表常用几个函数:

输入:
list1 = [1, 3, True, "i love you"]#创建空列表的话,使用list1 = []
list1.append("girl")#添加到最后,一次只能添加一个对象
print(list1)
list1.extend([4, False])#扩展List,参数也是List
print(list1)
list1.insert(3, "insert")#添加到某个位置
print(list1)
list1.remove(3)#删除元素3
print(list1)
list1.pop()#删除最后一个元素
print(list1)
del list1[1]#删除索引是1的元素
print(list1)

输出:
[1, 3, True, 'i love you', 'girl']
[1, 3, True, 'i love you', 'girl', 4, False]
[1, 3, True, 'insert', 'i love you', 'girl', 4, False]
[1, True, 'insert', 'i love you', 'girl', 4, False]
[1, True, 'insert', 'i love you', 'girl', 4]
[1, 'insert', 'i love you', 'girl', 4]

元祖(Tuple)

元祖是不能修改的数据类型,使用小括号包括,其中的元素使用逗号隔开,性质与列表相似,元祖中的元素类型也可以你不相同,关于索引和切片同列表相同。

  • 创建方式
tuple1 = ()#创建空元祖
tuple2 = (2,)#创建只包含一个元素的元祖
  • 使用+拼接元祖
    虽然元祖不可变,但是通过拼接,可以产生新元祖。
输入:
tuple1 = (1,2,3)
tuple2 = ('a','b','c')
tuple3 = tuple1 + tuple2
print(tuple3)
输出:
(1, 2, 3, 'a', 'b', 'c')
  • 元祖不可修改,但是元祖的可以包含可变类型的元素。元素变化,元祖不变。
输入:
list1 = [1,4,5]
tuple4 = (1,True,list1)
print(tuple4)
list1 = [1,5,5]
print(tuple4)
输出:
(1, True, [1, 4, 5])
(1, True, [1, 4, 5])

集合(Set)

集合能自动删除重复元素,集合的创建方式是使用大括号或者set(),但是,创建空集合的时候,不能使用大括号。

输入:
set1 = {1,2,3,3,True,'a'}#集合会自动消除3这个重复元素,并且True会被转换为1,从而消除1这个重复数字,如果只有True,则保留True
print(set1)
set2 = set()#重建空集合
print(type(set2))
ss = {}#这个方式不是创建空集合的方法
print(type(ss))
输出:
{1, 2, 3, 'a'}
<class 'set'>
<class 'dict'>
  • 集合操作
输入:
a = set('abracadabra')
b = set('alacazam')
print(a-b)#计算a中出现,不在b中出现的元素
print(a|b)#计算a,b的并集
print(a&b)#计算a,b都出现的元素
print(a^b)#计算只在其中一个出现的元素
输出:
{'b', 'd', 'r'}
{'d', 'm', 'a', 'l', 'c', 'r', 'z', 'b'}
{'c', 'a'}
{'r', 'd', 'l', 'm', 'z', 'b'}

字典(Dictionary)

字典当中的元素是通过键来存取的,而不是通过偏移存取。字典的键只能是不可变类型,并且一个字典的中的键是唯一的。字典使用{}或者dict()创建。

输入:
dict1 = {}#创建空字典
dict1['k'] = 5
print(dict1)
dict2 = {'k1':5, 'k2':True}#创建有内容的字典
print(dict2.keys())
print(dict2.values())
print(dict2)
dict3 = dict([('k3',5),('k4',6)])#使用一串元祖作为参数,每个元祖存在键值对
print(dict3)
dict4 = {x : x**2 for x in [3,4,5]}#使用lambda创建
print(dict4)
dict5 = dict(aaa=2,bbb=3,ddd=4)#这种方式不鼓励,可读性差
print(dict5)
输出:
{'k': 5}
dict_keys(['k1', 'k2'])
dict_values([5, True])
{'k1': 5, 'k2': True}
{'k3': 5, 'k4': 6}
{3: 9, 4: 16, 5: 25}
{'aaa': 2, 'bbb': 3, 'ddd': 4}

类型转换

数据类型的转换,你只需要将数据类型作为函数名即可。
此处举几个例子:

输入:
a = 123
f = float(a)#将int类型转换为float
print(type(a),"->",type(f))

list1= ['Google', 'Taobao', 'Runoob', 'Baidu']
tuple1 = tuple(list1)
print(type(list1),"->",type(tuple1))

输出:
<class 'int'> -> <class 'float'>
<class 'list'> -> <class 'tuple'>

主要转化函数:
int(x [,base]):转化为整数,base是可选进制
float(x):转化为浮点数
complex(real [,imag]):创建一个复数
str(x):将对象 x 转换为字符串
repr(x):将对象 x 转换为表达式字符串
eval(str):用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s):将序列 s 转换为一个元组
list(s):将序列 s 转换为一个列表
set(s):转换为可变集合
dict(d):创建一个字典。d 必须是一个序列 (key,value)元组。
frozenset(s):转换为不可变集合
chr(x):将一个整数转换为一个字符
ord(x):将一个字符转换为它的整数值
hex(x):将一个整数转换为一个十六进制字符串
oct(x):将一个整数转换为一个八进制字符串