变量和基本数据类型

变量

一、什么是变量?

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

二、为什么要有变量?

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

三、如何使用变量

1、变量基本使用
	原则:先定义,后引用
	name = 'haha'  # 定义-》存
	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、变量名的命名的规则
			原则:不要用拼音,不要用中文,在见名知意的前提下尽可能短
			I:  变量名只能是 字母、数字或下划线的任意组合
			II: 变量名的第一个字符不能是数字
			III:关键字不能声明为变量名,常用关键字如下
			['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']


5、变量名的命名风格
	1、纯小写加下划线的方式(在python中,关于变量名的命名推荐使用这种方式)
			age_of_alex = 73

	2、驼峰体
			AgeOfAlex = 73

6、变量值三个重要的特征
			name = 'egon'
		I:id反映的是变量值的内存地址,内存地址不同id则不同
			print(id(name))
		II:type不同类型的值用来表示记录不同的状态
			print(type(name))
		III:value值本身
			print(name)
	
 7、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

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

四、常量:不变的量

		注意:python语法中没有常量的概念,但是在程序的开发过程中会涉及到常量的概念
					AGE_OF_ALEX = 73  # 小写字母全为大写代表常量,这只是一种约定、规范
					AGE_OF_ALEX = 74
					print(AGE_OF_ALEX)

基本数据类型

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])

索引反映的是顺序、位置,对值没有描述性的功能
         0      1     2     3
info=['egon',18,'male',19]
print(type(info))
print(info[0])
print(info[1])
print(info[2])

4、字典类型: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

作用:用来记录真假这两种状态
定义:
	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、其他使用

通常用来当作判断的条件,我们将在if判断中用到它

总结:如何选择合适的类型来记录状态
1、选取的类型是否可以明确标识事物的状态
2、存不是目的,存的目的是为了日后取出来用,并且方便的用
3、把自己想象成一台计算机,如果我是计算机,
   我会如何以何种形式把事物的状态记到脑子里
   然后再去python中找相应的数据类型来让计算机像自己一样去记下事物的状态
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值