Python学习笔记——基础篇(1): 变量及其类型


之前接触过一点点Python,知道它是一门比较抽象的高级语言,功能十分强大,不过一直没有抽出时间系统的学习,直到近些天才开始学习,在这里就将学习的过程记录一下,一方面为其它学习的人提供参考,另一方面梳理自己接触到的知识。

概述

学习的第一步是搜集资料,网上的资料比较零碎,如果有一本书,将会对我们系统学习大有帮助,如果没有,也没关系,我查阅了网上的一些资料,对比之后,向大家推荐“廖雪峰老师的Python学习网站”和Python的document,相比于网络上零碎的知识,廖老师的网站则很有条理,适合连续学习。而Python的document则是最权威的第一手资料,只不过其组织结构不适合初学者,而且是英文文档。当然,如果想要把Python学的炉火纯青,细细研读document是必不可少的。

廖雪峰老师的Python学习网站
Python document

梳理

废话不多说,这里给出自己这些天学习的知识的梳理。

Python2与Python3

两者是不兼容的,你没有看错,是不兼容的,虽然Python3是新的版本,但是它的运行速度却更慢,不过速度从来不是Python追求的目标,Python追求的是代码的简洁,如果你是初学者,那么暂时不必关注它们的区别,选择其中一个版本学习即可,个人推荐Python3,新版本总有它的原因。
如果你很想知道他们的区别,可以参考以下文章。
python2与Python3的区别
What’s New in Python3

环境配置

只需要下载一个安装包,里面包含了解释器,shell,manuals,和document,其中shell是一个交互式解释器,和MATLAB非常像

Python变量

>>> s=1236186348
>>> type(s)
<class 'int'>
>>> i=1.0001
>>> type(i)
<class 'float'>
>>> a="hkjjfdk"
>>> type(a)
<class 'str'>

Python是一种OOP语言,里面的所有变量都是Object,对于每一个变量,生来都有三个属性,identity,type和value,我们可以认为,identity就是变量在内存中的地址,变量的type就是我们调用type()的返回值,比如上面的’int’,’float’,’str’,而变量的value就是我们生成这个变量时赋给它的值,如上面代码中s的value是1236186384,i的value是1.001,a的value是”hkjjfdk”。
同时Python是一种弱类型的语言,定义变量时候不必显式说明其类型,你的表达方式决定了它的类型,每种类型都有其对应的表达方式,下面一小节会总结出常用的类型的表达方式。

常用变量类型及其表示
变量类型表示备注
NoneNone用于函数返回空值,它的value是False
NotImplementedNotImplemented有这个类型,但是暂时还没搞明白怎么使用
Ellipsis省略号,它的value是True
int1,0b0011,0xFFFF,int(1.001)整数,有限大
boolTrue,False,bool(1)非真即假
float1.234,.001,1.,10e10,10e-10浮点数,包含小数点即为浮点数,不分单精度和双精度
complex1+2j,complex(1,2)复数,可以使用data.real和data.imag来访问其实部和虚部
str‘c’,”c”,”test”,’test’,chr(65)是一个有序的序列,不可变对象(immutable),可以通过下表索引,可迭代,但不是迭代器
tuple(1,2,”jkhsf”),(1,)当tuple只有一个元素的时候,注意要有逗号,有序序列,不可变对象,可以通过下表索引,可迭代,但不是迭代器
bytesb’abc’,bytes(“jksj”.encode())字节数据,有序序列,可以通过下标索引,不可变,可迭代,但不是迭代器
list[1,2,[1,2,”lsjf”]]列表,列表的元素任意,还可以是列表,有序序列,可以通过下标访问,可变对象,可迭代,但是不是迭代器
bytearraybytearray(b”hjh”)有序序列,可以通过下标索引,元素必须是0~255的整数,可变对象,可迭代,但不是迭代器
set{1,2,3,4},set([1,2,3]),set((1,2,3))无序序列,元素不可重复,不能索引,可变对象(使用Add()添加元素),可迭代但不是迭代器
frozensetfrozenset({1,2,3})与set相比,唯一区别就是这事不可变的
dict{“liming”:80,”xiaohong”;90}元素是key:value对,可以使用key进行索引,内部使用hash算法实现key不能是可变类型,可迭代,但不是迭代器

下面解释一下上表中反复提到的一些术语与名词:
有序序列(sequences):集合(set)相对应,其中的元素是有顺序的,也是可重复的。
可变(mutable)与不可变(immutable):是说能否直接改变其value,list可以直接改变,如L[1]=1,但是tuple就不能,其它类型同理,其中set因为不能索引所以只能通过Add()方法添加元素。
可迭代(iterable)特指使用isinstance(x,Iterable)返回True的类型,如果可迭代,则可以使用如for x in [1,2,3,4]来进行遍历。
迭代器(Iterator)特指使用isinstance(x,Iterator)返回True的类型,如果是迭代器,则可以使用next()逐个返回其值。

Python中还有其他一些类型,我还没有十分明白,有兴趣的话可以查阅python document

代码与层次关系

>>> for i in [1,2,3,4,5,6]:
        if i>3:
            print(i-3)
        else:
            print(i+3)

4
5
6
1
2
3

如上例所示,代码的缩进表示它的层次关系,相同缩进的代码处于相同的层次,冒号则表示下一行会有缩进。

结束语

文中给出几处链接,再次对其表示感谢,感谢他们愿意花时间分享自己的知识。
作为一个新手,纰漏差错在所难免,如有表述不当之处,还请及时指正,多多交流,共同进步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值