Python入门-变量 + Python的内存管理+ Python的基本数据类型和内置方法

一、变量

1、什么是变量?

  变:现实世界中的状态是会发生改变的。

  量:衡量/记录现实世界中的状态。让计算机能够像人一样识别世间万物!  

2、为什么要有变量?

  程序的运行本质就是一些列状态的变化。

3、如何用变量?

  定义变量:

# 定义变量:(变量名 赋值符号 变量值)
name = 'zhangrenguo'
age = 18
# 变量名:是用来引用变量值的,即但凡要用变量值都需要通过变量名。
# 赋值符号:
# 变量值:即我们存放的数据,是用来衡量/记录世间万物的状态的。
变量名的定义规范:
1、变量名的定义应该能反映变量值所记录的状态,不要用中文的变量名。
2、变量名只能是字母、数字、下划线任意组合而成。
3、变量名的第一个字符不能是数字。
4、关键字不能声明为变量名。
Python变量名的定义规范
变量名定义的两种风格:
1、下划线(针对变量名的定义风格推荐使用下划线):age_of_user = 26
2、驼峰体:AgeOfUser = 26
变量名定义的两种风格
# 常量
强调:在Python中没有从语法意义上去强制定义常量。
如果需要定义常量,应该讲变量名全部改为大写。
常量

二、python的内存管理

# Python的自动垃圾回收机制:一个值的引用计数为0

x=10
y=x
x=11
print(x)
# 11
print(y)
# 10
del y  #解除绑定

# Python的内置功能:id()用来查看变量在内存的id号,id用来反映变量值在内存中的位置的,内存地址不同则id不同。
# python的优化:短时间内用且数据值不大。但是随着值变长在Python2当中

x1 = "info:<name:zrg age:26>"
y1 = "info:<name:zrg age:26>"

print(id(x1))
print(id(y1))
#1 等号比较的是value,
#2 is比较的是id

#强调:
#1. id相同,意味着type和value必定相同
#2. value相同type肯定相同,但id可能不同,如下
>>> x='Info Egon:18'
>>> y='Info Egon:18'
>>> id(x)
4376607152
>>> id(y)
4376607408
>>> 
>>> x == y
True
>>> x is y
False

 

 

三、基本数据类型

1、什么是数据类型?

    什么是数据?变量值才是我们存储的数据。所以数据类型指的就是变量值的不同种类。

2、为何数据要分类型?

  变量值是用来保存世间万物不同状态的,针对不同状态就应该用不同的数据类型来表示。

3、如何用,即数据类型的分类

1、整型int: 

作用:

定义:

如何用:

 

 

 

 

 

 

 

 

 

 

列表 list 

  list是个类,通过list创建对象,列表的特征:中括号括起来,逗号分隔每个元素。元素可以是数字,字符串,列表,字典,集合,元组,布尔值...所有的都能放进去。

  

  通过索引取值

  通过切片取值,取到的子元素也是个列表

  支持for循环

  支持while循环

  列表创建出来列表元素支持被修改。

  删除方法之一:del 

  删除方法之二:pop()删除的值可以获取到,默认删除最后一个值,可指定某个索引删除获取

  删除方法之三:remove()删除列表的值,最左优先

     支持成员运算 in not in 

  

  转换 字符串转换为列表,内部使用否循环

        列表转换为字符串,需要自己写for循环一个一个处理,既有数字又有字符串。

  直接用join方法前提是列表中的元素只有字符串。

 

  list类中提供的方法:对象可以调用

  append()追加到最后。

  append()

  clear()清空

  copy()浅拷贝

  count()计算元素出现的次数

  extend(可迭代对象)扩展原来的列表

  index()根据值查找索引只找到第一个值,可指定查找的起始位置

  insert(哪个位置,值)在指定索引位置插入元素

  pop()删除的值可以获取到,默认删除最后一个值,可指定某个索引删除获取

  remove()删除列表的值,最左优先

  sort(reverse=true)排序,从大到小排,从小到大排

  cmp

  key

  sorted

  

  

 

像字符串类型一样,列表类型也是序列式的数据类型,可以通过下标或者切片操作来访问某一个或者某一块连续的元素。然而,相同的方面也就这些,字符串只能由字符组成,而且是不可变的(不能单独改变它的某个值),而列表则是能保留任意数目的Python对象的灵活的容器。就像我们将要看到的列子中所示,创建列表非常简单,向列表

 

 

 

 元组 tuple 是对列表的二次加工,元素不可被修改,不能被增加或者删除。  

  括号括起来,最后多加一个逗号

  

  通过索引取值

  通过切片取值

  for循环

  while循环

  

  转换:

  字符串转换为元组  

  列表转换成元组

  元组转换为列表

  元组转换为字符串

 

  元组也是有序的,元组的一级元素不可修改

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

数据类型+内置方法

1什么是数据

2为什么要存数据?数据为什么要分类

3数据类型

 

1什么是数据

X=10  10就是我们要存的数据

2为什么要存数据?数据为什么要分类

数据是用来表示事物状态的,不用的事物状态需要用不同类型的数据来表示

3数据类型

整型、浮点型、字符串型、列表型、字典型、布尔型

 

 

整型int

 

作用:用来表示年龄、分数、等级、、、、

 

定义:age=18   age=int18

 

常规操作:算数运算,比较运算

 

该类型总结:

 

只能存一个值

 

没有有序和无序的说法

 

是不可变类型数据

 

 

浮点型float

 

作用:用来表示薪资、身高、体重、、、、

 

定义:

 

Salary=3.1    salary=float3.1

 

常规操作:

 

算术运算,比较运算

 

该类型总结:

 

只能存一个值

 

没有有序和无序的说法

 

是不可变类型数据

 

 

 

字符串类型 str

 

作用:用来描述姓名、国籍、地址、

 

定义:在单引号,双引号或者三引号内的一串字符

 

name=’egon’ 

 

常规操作:

 

优先掌握的操作

 

  1. 按索引取值(正向取+反向取):只能取

    name= “egon”     索引以0开始

    Print(name[1])

    Print(name[-1])

  2. 切片(顾头不顾尾,步长)[:]

    name=egon

    Printname[0:2]

    Printname[:2]

    Printname[1:]

    Printname[:]

    用一个冒号隔开两个索引值,左边是开始位置,右边是结束位置。结束位置上的字符是不包含的。

    如果没有开始位置,python会默认开始位置是0,如果没有放入任何索引值,而只有一个冒号,就会得到整个字符串里的字符。

    msg=hello world

    msg[1:5;2] = ello eo

    倒向切片

print(name[::-1])

msg='hello world'

print(msg[:-6:-1])

dlrow

print(msg[:-6:-2])

drw

  1. 长度len

msg='hello world'

print(len(msg))

11

  1. 成员运算innot in

    子字符in 大字符串

msg='hello world'

print('h'in msg)

True

 j not in  和  not j in 是一个意思

  1. 移除空白strip     删除字符串左右两边所有的空格

name = '     e gon      '

print(name.strip())

e gon

变量名.strip(‘-’)  ‘-”可以是任意字符

Lestrip(‘ ’)  去掉字符左边所有空格

Restrip(‘ ’)  去掉字符右边所有空格

  1. 切分split.()

     

msg='my name is egon'

x=msg.split(' ')  print(msg.split(' '))

print(x)

结果['my', 'name', 'is', 'egon']

默认以空格为分隔符切片字符串,然后拼接成列表,也可以用在字符串里的字符为分隔符

print(msg.split('e'))

结果:['my nam', ' is ', 'gon']

也可以来选择从左到右切几次

print(msg.split(' ',2))

结果:['my', 'name', 'is egon']

7、循环

msg='my name is egon'

for i in msg:

print(i)

需要掌握的操作

  1. Strip 删除字符串左右两边所有的空格

    lestrip删除字符串左边所有的空格

name='*******%%%egon $$$$$$$'

print(name.lstrip('*'))

结果:%%%egon $$$$$$$

restrip删除字符串右边所有的空格

name='*******%%%egon $$$$$$$'

print(name.rstrip('$'))

结果:*******%%%egon

  1. Lower:转换字符串中所有大写字符为小写

msg= 'I love MY GirlFriend'

print(msg.lower())

结果:i love my girlfriend

  1. Upper:转换字符串中所有小写字符为大写

print(msg.upper())

结果:I LOVE MY GIRLFRIEND

4

startswith

startswith:print('my name is egon'.startswith('my'))

Endstartwith

Endswith:print('my name is egon'.endswith('n'))

5

formate的三种用法:

Formate()方法接受位置参数和关键字参数,二者均传递到一个叫做replacement字段。而这个replacement字段在字符串内有大括号{}表示。

字符串中的{0}{1}{2}依次被formate()中的三个参数替换。

msg='{0} love {1}一生一世 {2}'.format('i','you','哈哈')

print(msg)

结果:i love you一生一世 哈哈

 

{a}{b}就相当于三个标签,formate()讲参数中等值的字符串替换进去

info='my name is {a} and my age is {b}'.format(a='egon',b=18)

print(info)

结果:my name is egon and my age is 18
msg='{} love {}一生一世 {}'.format('i','you','哈哈')

print(msg)

结果:i love you一生一世 哈哈

 

6Split 拆分

info = 'egon:18:male'

print(info.split(':'))    print(info.split(':',1))

结果:['egon', '18', 'male']            结果:['egon', '18:male']

Resplit  从右往左拆分

print(info.rsplit(':',1))

结果:['egon:18', 'male']

  1. Join

info = 'egon:18:male'
i=info.split(':')
new_info=':'.join(i)
print(new_info)

 

   

 

print('.'.join(['egon','say','hello']))

                                                                                                          

  1. Replace

  msg='my name is wupeiqi'
print(msg.replace('wupeiqi','pig',1))

  1. Isdigit

msg='11111111111'

print(msg.isdigit())

 

 

 

 

 

 

 

 

列表list

作用:

用来存放多个值,多个爱好,多个人名

 

定义:定义在[]中括号内,用逗号分隔开多个值,值可以是任意类型

 

stu_names=[‘egon’,’alex’,’wsb’,’ksb’]

基本操作:

  1. 按索引存取值(正向+反向存取):即可存也可取

stu_names=['egon','alex','wsb','ksb',]
print(stu_names[1])

stu_names=['egon','alex','wsb','ksb',]
print(stu_names[-1])

 

  1. 切片(顾头不顾尾,步长)

stu_names=['egon','alex','wsb','ksb',]
print(stu_names[:3])

stu_names=['egon','alex','wsb','ksb',]
print(stu_names[:3:2])

 

 

  1. 长度len

stu_names=['egon','alex','wsb','ksb',]
print(len(stu_names))

 

  1. 成员运算in not in

stu_names=['egon','alex','wsb','ksb',]
print('egon'in stu_names)

 

  1. 追加append

stu_names=['egon','alex','wsb','ksb',]
stu_names.append('zrg')
print(stu_names)

 

  1. 删除del

stu_names=['egon','alex','wsb','ksb',]
del stu_names[2]
print(stu_names)

  1. 循环

stu_names=['egon','alex','wsb','ksb',]
for i in stu_names:
    print(i)

 

  1. Insert(随意位置添加)

names=['egon','alex','wsb','ksb',]
names.insert(2,'sb')
print(names)

 

Remove(按元素的值删除,没有返回值

names=['egon','alex','wsb','ksb',]
names.remove('egon')
print(names)

 

Pop(按索引删除,有返回值)

names=['egon','alex','wsb','ksb',]
names.pop(0)
print(names)

 

Count(统计有几个)

names=['egon','alex','wsb','ksb',]
print(names.count('alex'))

 

Clear(清空)

names=['egon','alex','wsb','ksb',]
names.clear()
print(names)

 

Index(查索引)

names=['egon','alex','wsb','ksb',]
print(names.index('alex'))

 

Copy

names=['egon','alex','wsb','ksb',]
x=names.copy()
print(x)

 

Extend

names=['egon','alex','wsb','ksb',]
names.extend(['1','0','8'])
print(names)

 

Revers倒序

names=['egon','alex','wsb','ksb',]
names.reverse()
print(names)

 

Sort 排序

info = [9,67,34,99,3,-6]
info.sort()
print(info)

 

 

原文地址:https://www.cnblogs.com/zhangrenguo/p/9114634.html