python零基础 变量&数据基本类型


###### '''

一、什么是变量?

变量就是可以变化的量,量指的是事物的状态,比如人的年龄、性别,游戏角色的等级、金钱等等

二、为什么要有变量?
为了让计算机能够像人一样去记忆事物的某种状态,并且状态是可以发生变化的
详细地说:
程序执行的本质就是一系列状态的变化,变是程序执行的直接体现,所以我们需要有一种机制能够反映或者说是保存下来程

三、如何用变量
'''

1、变量基本使用###### 1、变量基本使用
###### 原则:先定义,后引用
###### name = 'egon' ###### 定义-》存
###### 1、变量基本使用
###### 原则:先定义,后引用
###### ###### ###### name = 'egon' ###### 定义-》存
print(name) ###### 引用-》取###### print(name) ###### 引用-》取
age = 18
print(age)
2、内存管理:垃圾回收机制
垃圾:当一个变量值被绑定的变量名的个数为0时,该变量值无法被访问到,称之为垃圾
###### 1、变量基本使用
原则:先定义,后引用
###### name = 'egon' ###### 定义-》存
print(name) ###### 引用-》取
age = 18
print(age)
2、内存管理:垃圾回收机制
垃圾:当一个变量值被绑定的变量名的个数为0时,该变量值无法被访问到,称之为垃圾
###### print(name) ###### 引用-》取###### print(name) ###### 引用-》取
age = 18
print(age)
2、内存管理:垃圾回收机制
垃圾:当一个变量值被绑定的变量名的个数为0时,该变量值无法被访问到,称之为垃圾
###### 1、变量基本使用
原则:先定义,后引用
###### name = 'egon' ###### 定义-》存
print(name) ###### 引用-》取
age = 18
print(age)
2、内存管理:垃圾回收机制
垃圾:当一个变量值被绑定的变量名的个数为0时,该变量值无法被访问到,称之为垃圾
引用计数增加###### 引用计数增加###### 引用计数增加###### 引用计数增加

x = 10 ###### 10的引用计数为1
y = x ###### 10的引用计数为2
z = x ###### 10的引用计数为3

引用计数减少

del x ###### 解除变量名x与值10的绑定关系,10的引用计数变为2

print(y)

del y ###### 10的引用计数变为1

print(z)

z = 12345 ###### ###### 10的引用计数变为0

print(z)
3、变量有三大组成部分
I:变量名=》是指向等号右侧值的内存地址的,用来访问等号右侧的值
II:赋值符号:将变量值的内存地址绑定给变量名
III:变量值:代表记录的事物的状态
4、变量名的命名的规则
原则:变量名的命名应该见名知意
4.1. 变量名只能是 字母、数字或下划线的任意组合
4.2. 变量名的第一个字符不能是数字
4.3. 关键字不能声明为变量名,常用关键字如下
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from','global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
age=18
print='egon'
ps:不要用拼音,不要用中文,在见名知意的前提下尽可能短
mingzi='egon'
名字='egon'
print(名字)
5、变量名的命名风格
5.1 纯小写加下划线的方式(在python中,关于变量名的命名推荐使用这种方式)

age_of_alex = 73

print(age_of_alex)
5.2 驼峰体

AgeOfAlex = 73

print(AgeOfAlex)
6、变量值三个重要的特征
name='egon'
id:反映的是变量值的内存地址,内存地址不同id则不同
print(id(name))
type:不同类型的值用来表示记录不同的状态
print(type(name))
value:值本身
print(name)
6.2 is与==
is:比较左右两个值身份id是否相等
==:比较左右两个值他们的值是否相等

'''
id不同的情况下,值有可能相同,即两块不同的内存空间里可以存相同的值
id相同的情况下,值一定相同,x is y成立,x == y也必然成立

x='info:Egon:18'
y='info:Egon:18'
print(x,y)
info:Egon:18 info:Egon:18
print(id(x),id(y))
4565819264 4566192176

x == y
True
x is y
False
'''

了解:小整数池[-5,256]
从python解释器启动那一刻开始,就会在内存中事先申请
好一系列内存空间存放好常用的整数

'''

m=10
n=10
id(m)
4562619328
id(n)
4562619328

res=4+6
res
10
id(res)
4562619328
'''

'''

x=-5
y=-5
x is y
True
x=-6
y=-6
x is y
False
'''

'''

x='aaa'
y='aaa'

id(x)
4566200880
id(y)
4566200880
'''

'''
x=-6
y=-6
print(id(x))
print(id(y))
print(x is y)
'''

7、常量:不变的量
注意:python语法中没有常量的概念,但是在程序的开发过程中会涉及到常量的概念

AGE_OF_ALEX = 73 ###### 小写字母全为大写代表常量,这只是一种约定、规范
AGE_OF_ALEX = 74
print(AGE_OF_ALEX)

1、数字类型
1.1 整型int
作用:记录年龄、身份证号、个数等等
定义:

age = 18

print(type(age))
浮点型float
作用:记录薪资、身高、体重
定义

salary = 3.3
height = 1.87
weight = 70.3

print(type(height))
数字类型的其他使用
level = 1
level=level + 1
print(level)
print(10 *3)
print(10 + 3.3) ###### int与float之间可以相加
age = 19
print(age > 18)
2、字符串类型str
作用:记录描述性质的状态,名字、一段话
定义:用引号('',"",''' ''',""" """,)包含的一串字符

info = '''
天下只有两种人。比如一串葡萄到手,一种人挑最好的先吃,
另一种人把最好的留到最后吃。
照例第一种人应该乐观,因为他每吃一颗都是吃剩的葡萄里最好的;
第二种人应该悲观,因为他每吃一颗都是吃剩的葡萄里最坏的。
不过事实却适得其反,缘故是第二种人还有希望,第一种人只有回忆。
'''

print(type(info))
name="egon"
print(name)
x=18
print(type(x))
x='18' ###### 由数字组成的字符串,是字符串类型,不是int类型
print(type(x))
'name'='egon' ###### 语法错误,等号左边是变量名,变量名的命名不能有引号
xxx ###### 代表访问变量名字

'xxx' ###### 代表的是值

x=10
y=x
其他使用:
字符串的嵌套,注意:外层用单引号,内存应该用双引号,反之亦然
print("my name is 'egon'")
print('my name is 'egon'')
字符串之间可以相加,但仅限于str与str之间进行,
代表字符串的拼接,了解即可,不推荐使用,因为str之间的
相加效率极低
print('my name is '+'egon')
print('='*20)
print('hello world')
print('='*20)
3、列表:索引对应值,索引从0开始,0代表第一个
作用:按位置记录多个值(同一个人的多个爱好、同一个班级的所有学校姓名、同一个人12个月的薪资),并且可以按照索引取指定位置的值
定义:在[]内用逗号分隔开多个任意类型的值,一个值称之为一个元素
0 1 2 3 4

l = [10, 3.1, 'aaa', ['bbb', 'ccc'], 'ddd']

print(l)
print(l[1])
print(l[2])
print(l[3][1])
print(l[4])
print(l[-1])
hobbies='read music play'
print(hobbies)
hobbies = ['read', 'music', 'play']
print(hobbies[1])
其他的用途:
students_info=[
['tony',18,['jack',]],
['jason',18,['play','sleep']]
]
取出第一个学生的第一个爱好
print(students_info[0][2][0])
4、
索引反映的是顺序、位置,对值没有描述性的功能
0 1 2 3

info=['egon',18,'male',19]

print(type(info))
print(info[0])
print(info[1])
print(info[2])
字典类型:key对应值,其中key通常为字符串类型,所以key对值可以有描述性的功能
作用:用来存多个值,每个值都有唯一一个key与其对应,key对值有描述性功能
定义:在{}内用逗号分开各多个key:value
d={'a':1,'b':2}
print(type(d))
print(d['a'])
info={
"name":'egon',
"age":18,
"gender":'male',
"salary":19
}
print(info["salary"])
其他用途:
students_info=[
第1个信息,
第2个信息,
第3个信息,
]

students_info=[
{"name":'egon1','age1':19,'gender':'male'},
{"name":'egon2','age1':19,'gender':'male'},
{"name":'egon3','age1':19,'gender':'male'},
]

print(students_info[1]['gender'])

5 布尔bool
6.1 作用
用来记录真假这两种状态
6.2 定义
is_ok = True
is_ok = False
print(type(is_ok))
x=1
y=0
students=[
{'name':'egon','gender':'male'},
{'name':'alex','gender':'female'},
]
students=[
{'name':'egon','gender':True},
{'name':'alex','gender':False},
]

students=[
{'name':'egon','gender':1},
{'name':'alex','gender':0},
]

6.3 其他使用
通常用来当作判断的条件,我们将在if判断中用到它
总结:如何选择合适的类型来记录状态
1、选取的类型是否可以明确标识事物的状态
2、存不是目的,存的目的是为了日后取出来用,并且方便的用
3、把自己想象成一台计算机,如果我是计算机,
我会如何以何种形式把事物的状态记到脑子里
然后再去python中找相应的数据类型来让计算机像自己一样去记下事物的状态

'''
作业

作业思路:如何选择合适的类型来记录状态???
1、选取的类型是否可以明确标识事物的状态
2、存不是目的,存的目的是为了日后取出来用,并且方便的用
3、把自己想象成一台计算机,如果我是计算机,
我会如何以何种形式把事物的状态记到脑子里
然后再去python中找相应的数据类型来让计算机像自己一样去记下事物的状态
ps:认真读题,需要自己从题目中分析出应该存储的状态,然后选择合适的类型加以存储
1、病毒程序需要定期将监控到的数据写入日志文件,请记录下日志文件路径C:\a\b\c\adhsvc.dll.system32,方便后期处理
2、病毒程序在上传文件时,发送的报头数据里需要包含文件信息:文件名a.txt、大小360,请记录下文件信息
3、程序运行过程中有一段错误日志需要记录下来,错误日志为"上传文件失败"
4、假设我收到一条信息要记录,信息为中病毒客户端的信息"[2020-02-18-17:00:48] 癞蛤蟆病毒感染者-> 80.82.70.187:33649 正在上传数据"
5、把服务端ip地址存放下来,ip地址为10.0.10.11
6、病毒程序需要每隔3秒才运行一次,请记录下这个时间间隔
二:嵌套取值操作
1、students_info=[['egon',18,['play',]],['alex',18,['play','sleep']]]

请取出第一个学生的第一个爱好

2、针对字典

info={
'name':'egon',
'hobbies':['play','sleep'],
'company_info':{
'name':'Oldboy',
'type':'education',
'emp_num':40,
}
}
请取出取公司名

3、针对下述类型

students=[
{'name':'alex','age':38,'hobbies':['play','sleep']},
{'name':'egon','age':18,'hobbies':['read','sleep']},
{'name':'wupeiqi','age':58,'hobbies':['music','read','sleep']},
]
取第二个学生的第二个爱好

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

'''

'''

一、什么是变量?

变量就是可以变化的量,量指的是事物的状态,比如人的年龄、性别,游戏角色的等级、金钱等等

二、为什么要有变量?
为了让计算机能够像人一样去记忆事物的某种状态,并且状态是可以发生变化的
详细地说:
程序执行的本质就是一系列状态的变化,变是程序执行的直接体现,所以我们需要有一种机制能够反映或者说是保存下来程

三、如何用变量
'''

1、变量基本使用###### 1、变量基本使用
###### 原则:先定义,后引用
###### name = 'egon' ###### 定义-》存
###### 1、变量基本使用
###### 原则:先定义,后引用
###### ###### name = 'egon' ###### 定义-》存
print(name) ###### 引用-》取###### print(name) ###### 引用-》取
age = 18
print(age)
2、内存管理:垃圾回收机制
垃圾:当一个变量值被绑定的变量名的个数为0时,该变量值无法被访问到,称之为垃圾
###### 1、变量基本使用
原则:先定义,后引用
###### name = 'egon' ###### 定义-》存
print(name) ###### 引用-》取
age = 18
print(age)
2、内存管理:垃圾回收机制
垃圾:当一个变量值被绑定的变量名的个数为0时,该变量值无法被访问到,称之为垃圾
###### print(name) ###### 引用-》取###### print(name) ###### 引用-》取
age = 18
print(age)
2、内存管理:垃圾回收机制
垃圾:当一个变量值被绑定的变量名的个数为0时,该变量值无法被访问到,称之为垃圾
###### 1、变量基本使用
原则:先定义,后引用
###### name = 'egon' ###### 定义-》存
print(name) ###### 引用-》取
age = 18
print(age)
2、内存管理:垃圾回收机制
垃圾:当一个变量值被绑定的变量名的个数为0时,该变量值无法被访问到,称之为垃圾
引用计数增加###### 引用计数增加###### 引用计数增加###### 引用计数增加

x = 10 ###### 10的引用计数为1
y = x ###### 10的引用计数为2
z = x ###### 10的引用计数为3

引用计数减少

del x ###### 解除变量名x与值10的绑定关系,10的引用计数变为2

print(y)

del y ###### 10的引用计数变为1

print(z)

z = 12345 ###### ###### 10的引用计数变为0

print(z)
3、变量有三大组成部分
I:变量名=》是指向等号右侧值的内存地址的,用来访问等号右侧的值
II:赋值符号:将变量值的内存地址绑定给变量名
III:变量值:代表记录的事物的状态
4、变量名的命名的规则
原则:变量名的命名应该见名知意
4.1. 变量名只能是 字母、数字或下划线的任意组合
4.2. 变量名的第一个字符不能是数字
4.3. 关键字不能声明为变量名,常用关键字如下
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from','global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
age=18
print='egon'
ps:不要用拼音,不要用中文,在见名知意的前提下尽可能短
mingzi='egon'
名字='egon'
print(名字)
5、变量名的命名风格
5.1 纯小写加下划线的方式(在python中,关于变量名的命名推荐使用这种方式)

age_of_alex = 73

print(age_of_alex)
5.2 驼峰体

AgeOfAlex = 73

print(AgeOfAlex)
6、变量值三个重要的特征
name='egon'
id:反映的是变量值的内存地址,内存地址不同id则不同
print(id(name))
type:不同类型的值用来表示记录不同的状态
print(type(name))
value:值本身
print(name)
6.2 is与==
is:比较左右两个值身份id是否相等
==:比较左右两个值他们的值是否相等

'''
id不同的情况下,值有可能相同,即两块不同的内存空间里可以存相同的值
id相同的情况下,值一定相同,x is y成立,x == y也必然成立

x='info:Egon:18'
y='info:Egon:18'
print(x,y)
info:Egon:18 info:Egon:18
print(id(x),id(y))
4565819264 4566192176

x == y
True
x is y
False
'''

了解:小整数池[-5,256]
从python解释器启动那一刻开始,就会在内存中事先申请
好一系列内存空间存放好常用的整数

'''

m=10
n=10
id(m)
4562619328
id(n)
4562619328

res=4+6
res
10
id(res)
4562619328
'''

'''

x=-5
y=-5
x is y
True
x=-6
y=-6
x is y
False
'''

'''

x='aaa'
y='aaa'

id(x)
4566200880
id(y)
4566200880
'''

'''
x=-6
y=-6
print(id(x))
print(id(y))
print(x is y)
'''

7、常量:不变的量
注意:python语法中没有常量的概念,但是在程序的开发过程中会涉及到常量的概念

AGE_OF_ALEX = 73 ###### 小写字母全为大写代表常量,这只是一种约定、规范
AGE_OF_ALEX = 74
print(AGE_OF_ALEX)

1、数字类型
1.1 整型int
作用:记录年龄、身份证号、个数等等
定义:

age = 18

print(type(age))
浮点型float
作用:记录薪资、身高、体重
定义

salary = 3.3
height = 1.87
weight = 70.3

print(type(height))
数字类型的其他使用
level = 1
level=level + 1
print(level)
print(10 *3)
print(10 + 3.3) ###### int与float之间可以相加
age = 19
print(age > 18)
2、字符串类型str
作用:记录描述性质的状态,名字、一段话
定义:用引号('',"",''' ''',""" """,)包含的一串字符

info = '''
天下只有两种人。比如一串葡萄到手,一种人挑最好的先吃,
另一种人把最好的留到最后吃。
照例第一种人应该乐观,因为他每吃一颗都是吃剩的葡萄里最好的;
第二种人应该悲观,因为他每吃一颗都是吃剩的葡萄里最坏的。
不过事实却适得其反,缘故是第二种人还有希望,第一种人只有回忆。
'''

print(type(info))
name="egon"
print(name)
x=18
print(type(x))
x='18' ###### 由数字组成的字符串,是字符串类型,不是int类型
print(type(x))
'name'='egon' ###### 语法错误,等号左边是变量名,变量名的命名不能有引号
xxx ###### 代表访问变量名字

'xxx' ###### 代表的是值

x=10
y=x
其他使用:
字符串的嵌套,注意:外层用单引号,内存应该用双引号,反之亦然
print("my name is 'egon'")
print('my name is 'egon'')
字符串之间可以相加,但仅限于str与str之间进行,
代表字符串的拼接,了解即可,不推荐使用,因为str之间的
相加效率极低
print('my name is '+'egon')
print('='*20)
print('hello world')
print('='*20)
3、列表:索引对应值,索引从0开始,0代表第一个
作用:按位置记录多个值(同一个人的多个爱好、同一个班级的所有学校姓名、同一个人12个月的薪资),并且可以按照索引取指定位置的值
定义:在[]内用逗号分隔开多个任意类型的值,一个值称之为一个元素
0 1 2 3 4

l = [10, 3.1, 'aaa', ['bbb', 'ccc'], 'ddd']

print(l)
print(l[1])
print(l[2])
print(l[3][1])
print(l[4])
print(l[-1])
hobbies='read music play'
print(hobbies)
hobbies = ['read', 'music', 'play']
print(hobbies[1])
其他的用途:
students_info=[
['tony',18,['jack',]],
['jason',18,['play','sleep']]
]
取出第一个学生的第一个爱好
print(students_info[0][2][0])
4、
索引反映的是顺序、位置,对值没有描述性的功能
0 1 2 3

info=['egon',18,'male',19]

print(type(info))
print(info[0])
print(info[1])
print(info[2])
字典类型:key对应值,其中key通常为字符串类型,所以key对值可以有描述性的功能
作用:用来存多个值,每个值都有唯一一个key与其对应,key对值有描述性功能
定义:在{}内用逗号分开各多个key:value
d={'a':1,'b':2}
print(type(d))
print(d['a'])
info={
"name":'egon',
"age":18,
"gender":'male',
"salary":19
}
print(info["salary"])
其他用途:
students_info=[
第1个信息,
第2个信息,
第3个信息,
]

students_info=[
{"name":'egon1','age1':19,'gender':'male'},
{"name":'egon2','age1':19,'gender':'male'},
{"name":'egon3','age1':19,'gender':'male'},
]

print(students_info[1]['gender'])

5 布尔bool
6.1 作用
用来记录真假这两种状态
6.2 定义
is_ok = True
is_ok = False
print(type(is_ok))
x=1
y=0
students=[
{'name':'egon','gender':'male'},
{'name':'alex','gender':'female'},
]
students=[
{'name':'egon','gender':True},
{'name':'alex','gender':False},
]

students=[
{'name':'egon','gender':1},
{'name':'alex','gender':0},
]

6.3 其他使用
通常用来当作判断的条件,我们将在if判断中用到它
总结:如何选择合适的类型来记录状态
1、选取的类型是否可以明确标识事物的状态
2、存不是目的,存的目的是为了日后取出来用,并且方便的用
3、把自己想象成一台计算机,如果我是计算机,
我会如何以何种形式把事物的状态记到脑子里
然后再去python中找相应的数据类型来让计算机像自己一样去记下事物的状态

'''
作业

作业思路:如何选择合适的类型来记录状态???
1、选取的类型是否可以明确标识事物的状态
2、存不是目的,存的目的是为了日后取出来用,并且方便的用
3、把自己想象成一台计算机,如果我是计算机,
我会如何以何种形式把事物的状态记到脑子里
然后再去python中找相应的数据类型来让计算机像自己一样去记下事物的状态
ps:认真读题,需要自己从题目中分析出应该存储的状态,然后选择合适的类型加以存储
1、病毒程序需要定期将监控到的数据写入日志文件,请记录下日志文件路径C:\a\b\c\adhsvc.dll.system32,方便后期处理
2、病毒程序在上传文件时,发送的报头数据里需要包含文件信息:文件名a.txt、大小360,请记录下文件信息
3、程序运行过程中有一段错误日志需要记录下来,错误日志为"上传文件失败"
4、假设我收到一条信息要记录,信息为中病毒客户端的信息"[2020-02-18-17:00:48] 癞蛤蟆病毒感染者-> 80.82.70.187:33649 正在上传数据"
5、把服务端ip地址存放下来,ip地址为10.0.10.11
6、病毒程序需要每隔3秒才运行一次,请记录下这个时间间隔
二:嵌套取值操作
1、students_info=[['egon',18,['play',]],['alex',18,['play','sleep']]]

请取出第一个学生的第一个爱好

2、针对字典

info={
'name':'egon',
'hobbies':['play','sleep'],
'company_info':{
'name':'Oldboy',
'type':'education',
'emp_num':40,
}
}
请取出取公司名

3、针对下述类型

students=[
{'name':'alex','age':38,'hobbies':['play','sleep']},
{'name':'egon','age':18,'hobbies':['read','sleep']},
{'name':'wupeiqi','age':58,'hobbies':['music','read','sleep']},
]
取第二个学生的第二个爱好

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

'''