python变量类型是动态的_python学习笔记:一、变量和数据类型

这是学习python的第一篇文章,首先学习python数据类型。python的数据类型有整型,浮点型,字符串,布尔,列表,元组,字典,集合。

类型占用内存如何定义

整型(int)动态长度>=24字节a = 1

浮点型(float)动态长度>=24字节a = 1.0

字符串(string)动态长度,>=37字节,增加一个字符加1字节a = ‘str’

布尔(boolean)24字节a = True

列表(list)动态长度,>=72字节a = []

元组(tupe)动态长度,>=56字节a = ()

集合(set)动态长度,>=232字节a = set([])

python变量的内存占用比较复杂,暂时不学它。上面占用的内存是通过sys.getsizeof()来获取的。

翻了一些关于python变量的文章,python中的变量分为可变和不可变类型,其中数字,字符串,元组是不可变类型。因此如果对数字或者字符串进行运算,实际上是重新创建了一个变量,不会直接修改原来的变量。字典和列表是可变类型。

python变量的作用域

知道变量几种类型之后,接下来就需要了解这门语言变量的作用域了。python中的作用域类型比较多,和一般只有局部和全局作用域不太一样,python有四种作用域。

L (Local) 局部作用域

E (Enclosing) 闭包函数外的函数中

G (Global) 全局作用域

B (Built-in) 内建作用域

以 L –> E –> G –>B 的规则查找,即:在局部找不到,便会去局部外的局部找(例如闭包),再找不到就会去全局找,再者去内建中找。

是在函数,模块,类中定义的变量是局部作用域,意思就是定义的变量只有在函数,模块,类中才能使用,外部是不可使用的。

def a():

i = 1

print(1)

a()

print(i)

# 输出

1

Traceback (most recent call last):

File "variable.py", line 11, in

print(i)

NameError: name 'i' is not defined

可以看到i在外部是没有被定义的,只存在于函数a的内部。

关于变量比较好的文章有

变量的生命周期

变量的生命周期指的是变量从创建到被回收的这段周期。变量在定义的时候被创建,局部变量的生命周期在函数/方法执行完成之后被系统回收。

变量的操作

了解变量的定义,作用域,生命周期之后还需要知道怎样操作变量。这才是我们要迈出去的第一步。不同类型的变量操作不一样,下面分成数字类型,字符串,布尔,元组,列表,集合这几种类型分别说一下其操作。

数字类型

数字类型的变量有四则运算,取模,幂运算,整除。四则运算和取模没啥好说的了。一般语言都支持。下面说一下幂运算和整除。

操作操作符例子

幂运算**a = 2**4

print(a)

#输出

16

整除//a = 4//3

print(a)

# 向下取整

1

字符串类型

python字符串类型的操作就比较多了,非常灵活。简单的可以分为连接,替换,截取,分割,查找这几种。由于python是面向对象的语言,在python中一切皆为对象,因此字符串也是一个对象,拥有一些内建的方法。字符串操作中会使用到一些内建方法而不仅仅是操作符。

操作操作方法例子

连接+a = ‘hello’

b = ‘world’

print(a+b)

# 输出

helloworld

替换replace(from, to)a = ‘hello’

b = a.replace(‘h’, ‘a’)

print(b)

#输出

alleo

截取字符串[开始索引:结束索引:步长]a = ‘hello’

print(a[0]) # 取第一位字符

print(a[0:2]) # 取第1位到第二位字符

print(a[-1]) # 取倒数第一位字符

print(a[::-1]) #翻转

由于字符串切片比较灵活,特别说一下

字符串切片的规则是,字符串[开始索引:结束索引:步长],开始索引,结束索引,步长都是可正可负的。开始索引负数表示从末尾往前数,结束索引同理。

步长为正值,开始索引默认为0, 结束索引默认为最后是len()+1,从开始索引从左往右走;步长为负值, 开始索引默认为-1, 结束索引默认为开始,不能认为是0,也不能认为是-1,从开始索引从右往左走。

这几个正负组合,可以弄出很多花样,比如将一个字符串翻转就可以使用[::-1]

列表

python的控制语句

一门语言的控制语句基本包括顺序语句,条件语句,循环语句,python也不例外。

条件判断

顺序语句就是一条一条执行的语句,没什么好说的,看看python的条件语句,python的条件语句是

if [条件]:

[执行语句1]

else:

[执行语句2]

多个条件的语句是

if [条件1]:

[执行语句1]

elif [条件2]:

[执行语句2]

else:

[执行语句3]

循环

python中只有有for循环和while循环。

for循环语法

for [临时变量] in [范围列表]:

[执行语句]

python的for循环是一个遍历的过程,如下

for i in range(0,10):

print i

while循环语法

while [条件]:

[执行语句]

while 语句是一个达到条件就永远执行下去的语句。

比如

i =10

while i > 0:

print i

i -= 1 # python 没有i--和i++语句

pass #有时候为了美观,写上一句pass

配合循环用到的语句还有break和continue,break语句跳出最深层次的循环,continue跳出一次循环。python还有一个pass语句,这个语句什么也不干,为了对齐美观可以写上。

字符串处理

需要了解的是对字符串处理,对数字处理,类型转换的函数。

字符串切片

a = "hello"

a[1] #第1个位置的字母e(位置从0开始)

a[1:3] # el,相当于左闭右开的区间[1,3)

a[1:] #从第一个到最后的字符串 ello

a[:2] #从第0个位置开始到第二个位置之前的字符串,

a[-1] #最后一个位置的字符

a[:-1] #从最开始到倒数第二个位置的字符,相当于[0,-1)

日期和时间处理

日期和时间处理需要使用到datetime模块,因此需要 import datetime。datetime模块支持一些日期运算,获取当前日期,格式化日期等方法。比如需要获取今天的日期

>>> import datetime

>>> datetime.date.today().strftime("%Y-%m-%d")

'2018-02-24'

想要更详细的了解datetime模块就要去查看文档了,这不是一个小小的篇幅就能做到的。

赞赏

409639892778710158.jpg微信赞赏232116800283840741.jpg支付宝赞赏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值