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([]) |
占用的内存通过sys.getsizeof()获取。
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的内部。
关于变量比较好的文章有
- http://blog.csdn.net/cc7756789w/article/details/46635383
- https://docs.lvrui.io/2016/07/12/Python%E7%9A%84%E5%8F%98%E9%87%8F%E4%BD%9C%E7%94%A8%E5%9F%9F/
- https://www.cnblogs.com/guigujun/p/9926446.html
变量的生命周期
变量的生命周期指的是变量从创建到被回收的这段周期。变量在定义的时候被创建,局部变量的生命周期在函数/方法执行完成之后被系统回收。
变量的操作
了解变量的定义,作用域,生命周期之后还需要知道怎样操作变量。这才是我们要迈出去的第一步。不同类型的变量操作不一样,下面分成数字类型,字符串,布尔,元组,列表,集合这几种类型分别说一下其操作。
数字类型
数字类型的变量有四则运算,取模,幂运算,整除。四则运算和取模没啥好说的了。一般语言都支持。下面说一下幂运算和整除。
操作 | 操作符 | 例子 |
幂运算 | ** | 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模块就要去查看文档了,这不是一个小小的篇幅就能做到的。
你可能还喜欢下面这些文章
matplotlib画柱状图十分简单,首先需要导入matplotlib中的pyplot,这个就是能够画图的类啦import matplotlib.pyplot as plt画柱状图十分简单,使用bar方法,比如画一个各个班级的人数吧,先准备一些数据,有两组数据,students为人数,这里放到y坐标系中,变量x就放在x坐标系中students = [42,51,30,49]x = [1,2,3,4]好了,现在我们可以直接画出来,调用bar方法,最后再调用show就能画图啦,代码如下plt.bar(x=x, height=students)plt.show()完整代码如下#coding:utf-
Excel宏使用的是vba,基本上就是运行在Excel里面的vb。所以学习vba和学习一门编程语言没有什么区别。所以我们最开始需要学的的就是一些基础语句。为了不让学习显得太枯燥,我们从一个hello world开始。首先需要打开Microsoft Excel,找到开发工具->宏,输入一个宏名称,点击创建创建了新的宏之后,就会出现一个编辑器界面Sub test()End Sub使用一个弹窗弹出hello worldSub test()MsgBox(“hello world”)End Sub到这里,一个简单的宏就创建完成了,虽然它现在什么也不能做,但是别着急,后面宏会为你做很多很多的事情,能
变量的定义和使用变量的定义bash变量定义很简单。如下:a=”hello”左边是变量名,右边是变量值。bash是弱类型,因此不需要给a加上类型。注意,等号两边不能有空格 比如 a = “hello”,这是错误的。变量使用变量使用需要在定义的变量名之前加上$,比如我们打印之前定义的aecho $a特殊变量后面再说,现在仅仅是最基础的,能够让自己写出一个完整的脚本就行。流程控制流程控制则是编写程序必备的过程,比如顺序,循环,条件,分支等等。在其他类C语言中有if…else,for,while,do…while,switch,那么在bash里面,这些应该怎么写呢。if…else结构a=0
赞赏微信赞赏
支付宝赞赏
《python教程(一):变量和数据类型》有1条评论