基础语法:

 

print( 打印)

向屏幕输出

数:

基础数据类型:

int 整形

>>> 11231231231231231231

11231231231231231231

>>> type(101293019203)

<class 'int'>

 

python3:

删除了长整型

python2

如果你的数字特别长,他会在后面给你标识一个L字母,代表长整型  大于322

 

float 浮点型由小数部分和整数部分组成的数

 

浮点型和整形复杂类型是浮点型

 

python3python2中,进行的运算之后的结果,首先默认会向参加运算的复杂类型靠拢

 

python3中,除法的结果会自动向浮点数靠拢

 

复数complex2+3j 复数虚部结尾一般以大J 或小j来结尾

 

布尔 bool: True(0,非空,not none)  False (0)

 

布尔值做计算的时候 True 1   False 0

 

>>> True + True 

2

>>> False + False 

0

0-9

a-z A-Z ,。、.*/-@#%……&*()

字符串str

 

' abc ' 单引号

"abc" 双引号

''' abc ''' 三个单引号

""" abc """  三个双引号  可以换行来写

 

>>> 'Po say: "today is a good weather"'

'Po say: "today is a good weather"'

 

 

>>> " Po say: \" today is a good weather\"斜杠可以避免转义

' Po say: " today is a good weather" '

 

 

>>> r'C:\'                       #r也可以避免转义,但是要注意这里斜杠不能写到字符串的结尾

  File "<stdin>", line 1

    r'C:\'

         ^

SyntaxError: EOL while scanning string literal

这个斜杠不能单纯的当作字符串结尾

>>> r"C:\a"

'C:\\a'

 

打印斜杠

>>> "C:\\"

'C:\\'

 

>>> mystr = 'abc'

>>> 

>>> mystr 

'abc'

 

>>> type(mystr)

<class 'str'>

 

索引:

>>> mystr

'abc'

>>> type(mystr)

<class 'str'>

从左向右访问:索引从0开始

>>> mystr[0]     

'a'

>>> mystr[1]

'b'

>>> mystr[2]

'c'

 

>>> mystr[3]

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

IndexError: string index out of range   访问到字符串的位置大于了他最大的索引值上限

 

从右向左访问:索引从-1开始

>>> mystr[-1]

'c'

>>> mystr[-2]

'b'

>>> mystr[-3]

'a'

>>> mystr[-4]

 

切片:是左闭右开的你的结束索引的值不会被取到

>>> mystr = 'abcdefg'

>>> mystr[: ]

'abcdefg'

>>> mystr[1:3]

'bc'

>>> mystr[1:4]

'bcd'

 

可否修改:是不可以其内部的值

>>> mystr[0] = '1'

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

TypeError: 'str' object does not support item assignment

 

使用加号:可以起到拼接的作用

>>> mystr 

'abcdefg'

>>> mystr1 = '1234567'

>>> mystr + mystr1 

'abcdefg1234567'      #这一步会返回一个新的字符串

 

使用乘法:

>>> mystr * 3

'abcdefgabcdefgabcdefg'

>>> newstr1 = mystr * 3

>>> newstr1

'abcdefgabcdefgabcdefg'  

 

减发和除法没有实际意义是不行的

 

列表list

mylist = [1,2,3,4,'a','b','c',[1,2,3]]

列表可以存储各种各样的数据

索引:

>>> mylist[0]

1

>>> mylist[-1]

[1, 2, 3]

切片:

>>> mylist[1:3]

[2, 3]

>>> mylist[:]

[1, 2, 3, 4, 'a', 'b', 'c', [1, 2, 3]]

>>> mylist[-5:-2]

[4, 'a', 'b']

 

>>> mylist = [1,2,3,4,'a','b','c',[1,2,3]]

>>> mylist[-1][1]

2

 

复杂取值

>>> mylist = [1,2,3,[1,[2,3,4,[3,2,[4,'a'],2]],3],'b']

>>> mylist[-2][-2][-1][-2][-1]

'a'

 

>>> mylist[0] = 'a'

>>> mylist

['a', 2, 3, 4, 5]

 

id(obj) 查看obj在内存中的地址

 

>>> mylist = [1,2,3,4,5]

>>> id(mylist)

140061415850888

>>> mylist[0] = 'a'

>>> mylist

['a', 2, 3, 4, 5]

>>> id(mylist)

140061415850888

函数 

说明我们的列表,如果你对他进行了修改,只是在原基础上做的修改,所以列表是一个可变对象

 

这个例子说明,整形也是一个不可变对象

>>> a = 1

>>> id(a)

10894080

>>> a = 2

>>> id(a)

10894112

 

这个例子说明,字符串也是一个不可变对象

>>> a = 'a'

>>> id(a)

140061452462992

>>> a = 'b'

>>> id(a)

140061452727608

 

元组'tuple'

索引和切片:

>>> mytuple = (1,2,3,4,5,[1,2,3],('a','b'))

>>> type(mytuple)

<class 'tuple'>

>>> mytuple[0]

1

>>> mytuple[-1]

('a', 'b')

>>> mytuple[:]

(1, 2, 3, 4, 5, [1, 2, 3], ('a', 'b'))

 

可修改性:元组也是不可修改其内部元素

>>> mytuple[0]

1

>>> mytuple[0] = 'a'

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

TypeError: 'tuple' object does not support item assignment

 

计算机不会做选择

 

所以不同类型相加要注意

 

修改了本身

返回了一个新值

>>> tuple(mylist)

('a', 2, 3, 4, 5) # 是返回了一个新值

 

切记变量名赋值的时候不要和关键字和系统内置函数重名

 

 

>>> tuple = 1

>>> tuple

1

>>> tuple()

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

TypeError: 'int' object is not callable

>>> del tuple

>>> tuple()

()

del用来删除变量(删除引用计数)

>>> del = 1

  File "<stdin>", line 1

    del = 1

        ^

SyntaxError: invalid syntax

 

Number,字符串str ,列表 list ,元组 tuple

 

可变:list 

不可变:Number  str  tuple 

 

可修改内部值:list

不可修改内部值:Number  str  tuple

 

能切片索引:str  list  tuple

不能切片索引:Number

 

 

num = 1.5

mystr = ‘abc’

mylist = [1,2,3]

mytuple = (1,2,3)

  • 有顺序 0 , 1 , 2  这是为什么可以索引
  • 一列            这是为什么可以切片

 

str list tuple 序列

元祖和列表的区别,就是在于能否修改其内部的元素

 

#无序的数据类型能叫序列吗

 

变量:

  • 不需要先定义,可以直接赋值使用,要想使用,必须先赋值一次
  • 命名风格,不能和系统函数或者一些关键字重名,到后面你们写的脚本名字,不要和模块名相同
  • 同时给多个变量赋值 

 

>>> a ,b = 1,2

>>> a

1

>>> b

2

 

  • 注意变量名大小写是敏感的。变量名只能是字母,数字,下划线,并且数字不能打头

 

>>> a = 1

>>> A = 2

>>> a

1

>>> A

2

 

  • 变量的引用计数

 

>>> a = 1

>>> b = a

>>> id(a)

10911712

>>> id(b)

10911712

>>>

import sys #导入sys模块

sys.getrefcount(a) #查看a计数

 

当我们使用 del语句时候,会发现引用计数在减少,到最后,引用计数为0 的时候,这块内存被回收

 

del语句只删除指定的

 

比如 del a那么就删一次引用计数

 

 

#比较复杂的数据这里解释器有可能没有在用,你在定义的时候,引用计数是重新维护的