python03:变量与基本数据类型


一、变量

1.1 什么是变量:可变化的量,量指事物的状态
    为什么要有变量:让计算机能像人一样记录事物的状态的变化
    怎么使用变量:先定义(存),后引用(取)
    变量的定义是需要申请内存空间的,如果内存管理不当容易撑爆内存。

1.2 变量的三大组成部分:
    变量名:是指向等好右侧值的内存地址,用来访问右侧的值。
    赋值符号:绑定关系
    变量值:记录事物的状态

1.3 变量名命名四个规则:
    变量名的命名应该见名知意,不能使用无意义的组合
    不能以数值开头,只能是字母,下划线,数字的任意组合
    不能使用python内置的词:如 print 等
    不要使用中文,拼音

1.4 变量名的命名两种风格:
    纯小写加下划线:如 age_of _alex=73
    驼峰体:AgeOfAlex=73

1.5 变量值的三个重用特征:
    name='zw'
    id:反应的变量值的内存地址,是内存地址的映射
        print(id(name))   查看变量值的内存id
    type:不同类型用来记录不同的状态
        print(type(name))  查看变量值的数据类型
    value: 变量的值
        print(name)  查看变量值

1.6 is 与 ==
    is:比较两个值的身份id是否一样
    ==:比较两个值是否相等
     两个不同的内存空间可以存放相同的值,即值相等,id不一定相等。
    
    x='xxx',y=x :不申请新内存给xxx (x is y --true,   x==y--true)
    x='xxx',y='xxx':申请新内存给xxx  (x is y --false,    x==y--true)

        了解:python解释器的小整数池(-5,256),python解释器启动时事先申请好一系列的内存空间存放常用整数。
      这些整数的id相同。类似的还有一些常用的字符串。
     pycharm会预先申请更大的范围,计算结果以python为准。

1.7 常量:不变的量
    常用全大写加下划线表示,AGE_OF _ALEX=73
 

1.8 内存管理——垃圾回收机制:  python自带的功能,会自动清除引用计数为0的值,以减少内存的使用。
    垃圾:引用计数为0的变量值
    引用计数:与该变量值绑定的变量名的个数
    引用计数增加:x=10,y=x,z=y......
    引用计数减少:del x 解除x与10的绑定。10的引用计数减少1
                变量名引用其他值,如 y=100,y与10 不在绑定,10的引用计数再减少1

二、数据的类型

2.1 数字类型
    整型 int:
        作用:记录状态,运算,比较等
        定义:x=10
    浮点型 float:
        作用:记录状态,运算,比较等
        定义:x=1.1

2.2 字符串类型 str:一个“”内代表一个值,取值即全部取出“”内的值。
    作用:记录描述性质的状态
    定义:name='zw' 值的写法,用引号包含的一串字符(‘ ’,“ ”,''' ''')

2.3 列表 list:索引对应值,0代表第一个
    作用:记录多个值,并可以按照索引取指定位置的值。
    定义:在[ ]内用逗号分开任意类型的值。
    取值:list=[10,3,['aaa','bbb'],'ccc']  (需要知道只在列表中的位置)
        取第二个值3:print(list[1])
        取bbb:print([2][1])
        取ccc:print([3])

2.4 字典 dict:key对应值,key通常为字符串类型具有描述值的能力。
    作用:用来存多个值,每个值都与key对应。
    定义:大括号{ }内用逗号分隔多个key:value,dict={'name':'zw','age':18,'hobits':'play'}
    取值:取值前面对应的key
        取名字:print(dict['name'])

2.5 布尔类型 bool:记录真假的状态

习题与答案:

# 作业思路:如何选择合适的类型来记录状态???
# 1、选取的类型是否可以明确标识事物的状态
# 2、存不是目的,存的目的是为了日后取出来用,并且方便的用
# 3、把自己想象成一台计算机,如果我是计算机,
# 我会如何以何种形式把事物的状态记到脑子里
# 然后再去python中找相应的数据类型来让计算机像自己一样去记下事物的状态
# ps:认真读题,需要自己从题目中分析出应该存储的状态,然后选择合适的类型加以存储

#1、病毒程序需要定期将监控到的数据写入日志文件,请记录下日志文件路径C:\a\b\c\adhsvc.dll.system32,方便后期处理
path=C:\a\b\c\ashsvc.dll.system32.
#2、病毒程序在上传文件时,发送的报头数据里需要包含文件信息:文件名a.txt、大小360,请记录下文件信息
file_name=a.txt
size=360
#3、程序运行过程中有一段错误日志需要记录下来,错误日志为"上传文件失败"
false_date='上传文件失败'
#4、假设我收到一条信息要记录,信息为中病毒客户端的信息"[2020-02-18-17:00:48] 癞蛤蟆病毒感染者-> 80.82.70.187:33649 正在上传数据"
text="[2020-02-18-17:00:48] 癞蛤蟆病毒感染者-> 80.82.70.187:33649 正在上传数据"
#5、把服务端ip地址存放下来,ip地址为10.0.10.11
ip_ad=10.0.10.11
#6、病毒程序需要每隔3秒才运行一次,请记录下这个时间间隔
time=3


# 二:嵌套取值操作
#1,students_info=[['egon',18,['play',]],['alex',18,['play','sleep']]]
请取出第一个学生的第一个爱好
print(student_info[0][2][0])
#2、针对字典
info={
'name':'egon',
'hobbies':['play','sleep'],
'company_info':{
'name':'Oldboy',
'type':'education',
'emp_num':40,
}
}
请取出取公司名
print(info['company_info']['name']

#3、针对下述类型
students=[
{'name':'alex','age':38,'hobbies':['play','sleep']},
{'name':'egon','age':18,'hobbies':['read','sleep']},
{'name':'wupeiqi','age':58,'hobbies':['music','read','sleep']},
]
取第二个学生的第二个爱好
print(students[1]['hobbies'][1])


# 针对个别已经学了很多的同学,有如下选做题
# 选做题:编写用户登录接口(学的多的同学,尝试做下述作业,这是截止到下周二学完文件处理之后的作业)
#1、输入账号密码完成验证,验证通过后输出"登录成功"
#2、可以登录不同的用户
#3、同一账号输错三次锁定(附加功能,在程序一直运行的情况下,一旦锁定,则锁定5分钟后自动解锁)
#扩展需求:在3的基础上,完成用户一旦锁定,无论程序是否关闭,都锁定5分钟

猜你喜欢

转载自www.cnblogs.com/Franciszw/p/12411640.html