程序员

python自我学习 一 python语法,及变量类型

2017-12-27  本文已影响0人  古典小说

Python安装

python语句后面不需要分号,这和 谷歌主推的kotlin 语言一样,或许,以后的新语言,也会采用这种形式。

使用过C的都知道,变量要先声明定义,才能使用,变量有很多类型,本以为php语言用 var就把所有类型包括进去,够省略了,没想到python变量直接不用声明。

python变量直接赋值即可使用,个人理解为这样的状况: 赋值的时候,直接创建赋值内容对应的类型对象,这个解释器可自动判断何种对象,分配好了内存空间,创建好了对象,然后将变量作为标识,分配给这个对象,以便标识使用。

这样一来,解释器自己可根据具体赋值判断何种类型,所以变量就不需要在声明了,直接赋值使用就可以了。

书写规则

python,就我目前学习的过程看,去掉了用大括号标识语句块,而是采用了缩进的方式,但是不知道为什么采用这种方式,可能有助于加快解释器执行,加快编译吧。

这就要求,首行顶格,同一层次对齐。

基本变量类型

isinstance() 与 type()

判断对象类型,isinstance() 很圆滑的,很世故很讲关系,考虑的多面些,考虑到了继承关系。

type () 很简单,很单纯,一根筋,老子才不考虑你祖宗十八代是谁,我只看你自己的实力,你父亲祖父当大官,和我半毛钱也没关系。

多变量赋值

这种方式与C语言一样,但是意义却不一样,C语言是在内存中分配三个整形空间,分别将其赋值为1,python的含义是:创建一个整形对象,三个变量被分配到了相同的内存上。

#为多个对象指定多个变量a,b,c=1,2,"gudianxiaoshuo"

这种赋值方式,就和其它语言有些不一样了。

相当于连续创建了三个内存空间,分别分配对应的变量标识

标准数据类型

python提供了六种标准数据类型

Number 包括 int float bool complex

String

List

Tuple

Sets

Dictionary

1、数据Numer

Print格式化的语法与其它语言有差别

格式化我用的最爽的vc中CString的Format,当然其它语言也能实现类似功能

Python中引用和其它语言类似 %d %f %s

但是具体的值的语法规则有点另类,它不是用逗号隔开,而是使用了%( )作为实际值,对应的实际值都放在了小括号里面了

如:

数值运算

String

字符串使用单引号或双引号括起来,单引号双引号含义一样,(不像PHP,可能有两种不同含义)

字符串截取也很有特色,

使用 变量[iStart][iEnd]

但是要注意,实际截取的字符串范围为[iStart,iEnd) ,包含开头的iStart,但不包含结尾的iEnd

还有一个事,要注意,这里的字符串是常量,不能改变

和其它语言一样,反斜杠也是转义

不同的是,在字符串前面加r 表示不转义,原样输出

字符串索引方式:

这个也比较有意思,比C++灵活多了

从左往右 从0开始 0 代表最开始的字符从右往左 从-1开始 -1代表最后的字符 -2代表倒数第二位的字符

List 列表

在数据结构中,list是存储线性关系的最常用的数据结构。

内部实现有两种类型:顺序存储、链式存储。

数组就是典型的顺序存储,连续的数据存储空间。链表就是链式存储,每个元素的位置不一定连续。

所幸,在python中,你不必考虑它内部是如何实现的,直接拿来用就可。

python的列表,相当于扩展的数组,数组只能存储一种类型,而python中列表可以同时存储多种类型。

list与数组类似,用 [] 赋值

list赋值

Tuple元组

与列表类似,不同之处在于元组不能修改,类似于C++的常量数组

特殊之处,定义空元组 和 1个元素的元组

string、list和tuple都属于有序的sequence(序列)。

下面要介绍的集合和字典就不是有序的序列了

set集合

由{} 或 set()创建

# 集合 无序 不重复# 创建空集合用set() 而不是 {}# {}是创建一个空字典

Dictionary字典

为什么起字典这么奇怪的类型名字。

其实,大部分人很久没用字典了,估计都想不起来怎么用了。

字典是干嘛的,是解释字的。

字典中的字都是作为关键字,不能重复,找到这个关键字,然后再看它的含义。

Dic【关键字】:含义

而Python中就采用了这种逻辑对应方式:

Dic[关键字 ]=关键字对应的值

内部应该是使用的哈希表,哈希表可以实现快速查找

我们不必关注内部实现方式,只要能拿来用就可以,

上一篇下一篇

猜你喜欢

热点阅读