本片文章介绍Python的变量,不同于C语言中的变量类型,Python的变量类型是不需要在定义时指定的,而变量的使用也可以想用时就用。下面我们就来介绍一下Python的变量的类型和使用方法。
变量赋值
Python的变量是等号右边决定左边,也就说你给它什么,它就变成什么?听起来很随便对吧!这就是Python的方便之处,但也会有因此带来的需要注意的地方,这点我们后面再来讨论。我们先来看Python赋值的例子,大家注意看注释。
a = 1# 整型变量
b = 2.0 # 浮点型变量
c = 'Hello' # 字符串变量
如果我们用如下的print语句来打印他们的值,我们会发现输出结果如下。
print(a, b, c)
1 2.0 Hello
多重赋值
Python里支持多重赋值,这其实挺方便的,可以给多个变量赋同一个值,也可以将多个值赋给多个变量。
a = b = c = 123
a, b, c = 1, 2.0, 'Hello'
标准数据类型
在Python中有五种标准数据类型,分别是数字(Numbers)、字符串(String)、列表(List)、元组(Tuple)、字典(Dictionary)。下面我们就分别对它们进行一个简要的介绍,具体详细的讨论我们会分几篇文章来讨论。
数字
数字类型顾名思义里面存储的是数字,当然数字的类型就多种多样了。Python里支持如下几种数字类型。
整型
长整型
浮点
复数
支持复数这个很给力吧,事实上可能很多同学都已经忘记了复数是什么了,我这里提一句实部和虚部可能大家就想起来了。
变量的使用和赋值我们前面已经有讲过了,很简单。
a = 123
不过我们这里额外介绍一个少有人用的技巧,由于Python和Java一样也有垃圾回收机制,所以无论我们定义什么变量,都不需要去释放内存,基于这个原因,我一直认为一个语言的灵魂在于它是否能让程序员管理内存。我们在Python里面可以告诉解释器某个变量我不用了,使用如下的语句。
del a
字符串
在这里我们对字符串只做一个简略的介绍,因为字符串算是可以讲比较大篇幅的一个内容,也比较重要,我们会单独来讲一些技巧,尽可能的保证丰富。
s = 'Hello!'
字符串可以很方便的访问每一个字符或者其中一部分,比如:
s[:3]
'Hel'
s[0]
'H'
列表
列表是Python中使用最广泛的类型,而且功能强大。列表类似于C语言里的数组,但是远远比C语言里的用法要灵活的多。我们来看一个定义的例子:
l = [1 , 2, 3, 'hello', 'a']
print(l[0])
print(l[:3])
print(l[:])
print(l[2:])
print(l+l)
其运行结果分别为:
1
[1, 2, 3]
[1, 2, 3, 'hello', 'a']
[3, 'hello', 'a']
[1, 2, 3, 'hello', 'a', 1, 2, 3, 'hello', 'a']
由此我们可以看到list的很多用法,此外list还可以进行排序、增加、删除、修改、转换为字典等等一系列的操作,这部分我们后面会专门来讲,本片文章仅仅是给大家一个基础的概念。
元组
元组其实类似于列表,我们可以将其理解为只读的列表,也就是说元组的值是不可以修改的。它的定义方式如下:
t = (1 , 2, 3, 'hello', 'a')
print(t[0])
print(t[:3])
print(t[:])
print(t[2:])
print(t+t)
运行结果分别如下,我们可以看到和列表的结果是一样的。
1
(1, 2, 3)
(1, 2, 3, 'hello', 'a')
(3, 'hello', 'a')
(1, 2, 3, 'hello', 'a', 1, 2, 3, 'hello', 'a')
但是如果我们对元组的值进行修改会发生什么呢?我们用如下的列表和元组的例子分别来看一下。
l = [1 , 2, 3, 'hello', 'a']
l[0] = 6
print(l)
运行结果为
[6, 2, 3, 'hello', 'a']
而元组的情况下呢?
t = (1 , 2, 3, 'hello', 'a')
t[0] = 6
print(t)
会如下错误
TypeError: 'tuple' object does not support item assignment
也就是说明了元组是只读的。
字典
字典也是Python里面应用极广的类型,并且非常的方便,个人非常喜欢使用。我们也在这里只做简单的介绍,它其实是一种哈希表。它拥有Key-Value的数据对,因此非常适合做一些数据分析和处理的时候使用,配合Pandas包使用更是如虎添翼。无论Key还是Value,都可以是任何类型的变量,因此使用起来非常的灵活。
d = {'a':1, 'b':2.0, 'c':'hello'}
print(d['a'])
print(d.keys())
print([k for k in d.keys()])
print(d.values())
print([v for v in d.values()])
其运行结果为:
1
dict_keys(['a', 'b', 'c'])
['a', 'b', 'c']
dict_values([1, 2.0, 'hello'])
[1, 2.0, 'hello']
如果你去遍历一个字典,你会发现它并不是按顺序访问的,这也是字典的特点。当然我们后面会介绍如何给字典排序,获得顺序输出的字典。
数据类型转换
我们这里给出一些常用的数据类型转换方式,供大家查阅。
int(x, base) # 转整型,base表示指定x原来的类型,比如base=8,则原本为八进制。
long(x, base) # 转长整型,base表示指定x原来的类型,比如base=8,则原本为八进制。
float(x) # 转浮点。
complex(real, imag) # 创建一个复数。
str(x) # 转字符串。
repr(x) # 转为机器可以理解的字符串,比如为特殊字符添加转义字符。
eval(str) #执行一个字符串表达式,返回运算结果。比如x=2; eval('3+x')结果为5。
tuple(s) #转为元组。
list(s) # 转为列表。
10set(s) # 转为一个不重复的数据集,即将重复元素删除。
11dict(d) # 将元组转为字典。
frozenset(s) # 转为一个不重复的数据集,即将重复元素删除,但不可修改。
chr(x) # 将整型转为字符。
unichr(x) # 将整型转为Unicode字符。
ord(x) # 将字符转为整型。
hex(x) # 转为十六进制。
oct(x) # 转为八进制。
到此我们大家应该对Python的变量有了一个基本的感观,也应该可以写一些基本的验证代码了。其实Python的简单是非常适合各行各业的人来使用的,事实上我接触到一些国外的行业,他们跨学科的情况是比较普遍的。Python作为一门胶水语言,确实应该普及到各行各业。
人工智能与深度学习做量化请关注:AI量化(https://t.zsxq.com/RvfY37y) 星球限时免费,如需加入,请私信我获得免费邀请码!
零基础学习Python与深度学习应用请关注星球:Python与深度学习 https://t.zsxq.com/bUFayZ3
微信公众号:QTechAI