python学习之路--day03

一、 变量的内存管理机制
1. Cpython解释器的垃圾回收机制
垃圾:当一个值没有人绑定任何变量名(该值的引用计数=0)时,该值就是一个垃圾
引用计数增加
age=18 # 18的引用计数等于1
x=age # 18的引用计数等于2
print(age)
print(x)
引用计数减少
age=19
18的引用计数等于1
print(age)
del x
18的引用计数等于0
2. 变量值的三个特征:
id: 反映的是内存地址
type:数据类型
值:

id相同,值一定相同
值相同,id可以不同
3. is 与 ==
==:值是否相等
is:id是否相等

4. 可变类型与不可变类型
可变类型: 值改变,id不变,证明就是在改变原值
不可变类型:值改变,id也变,证明根本不是在改变原值,是创建了新值,原值就是不可变类型

二、python2中与用户交互(**)
1. 在python3中只有一个input:
特点:会用户输入的任意内容都存成str类型
2. 在python3中只有一个raw_input,与python3的input一模一样
x=raw_input('>>>: ')
要求用户必须输入一个明确的类型,输入什么类型就存成什么类型
x=input('>>>: ')

三、 数据类型的基本用法

1. 数字类型
1) 整型int
作用:用来记录年龄、等级、各种号码状态
定义:
age=10 #age=int(10)
print(type(age))
使用:
print(age + 1)
print(age > 3)
2) 浮点型float   
作用:用来记录身高、体重、工资状态
定义:
salary=3.1 #salary=float(3.1)
print(type(salary))
使用:
print(3.1 + 2.3)
print(3.1 > 2.3)
print(3.1 > 2)
print(3.1 + 2)

2.字符串类型str
作用:用来记录描述性质状态,比如名字、性别
定义:在单引号('')、双引号("")、三引号内(''' ''',""" """),包含一系列的字符
# x='abc' # x=str('abc')
print(type(x))
msg='my name is "egon"'
使用:
print('abc'+'def') # 仅限于str类型直接相加
print('abc'*10) # *的只能是数字
3.列表类型list
作用:用来记录多个值,用索引对应值,索引反映是位置
定义:在[]内用逗号分隔开多个任意类型的值
l=[1,3.1,'xxx',['a','b','c']] #l=list(...)
print(type(l))
使用
print(l[0])
print(l[2])
print(l[3][0])
4.字典类型dict
作用:用来记录多个值,用key对应value,其中key对value有描述性的功能
定义:在{}内,用逗号分割开多元素,每一个元素都是key:value的形式,其中value可以是任意类型,而key通常应该是str类型
d={'x':1,'y':3.1,'z':['a','b'],'m':{'aaa':1111}} #d=dict(...)
print(type(d))
使用:
print(d['x'])
print(d['m']['aaa'])
列表的方式
name age gender compay_info
emp_info=['egon',18,'male',['Oldboy','SH',200]]
print(emp_info[1])
print(emp_info[3][2])

字典的方式
emp_info={'name':'egon','age':18,"gender":'male','company_info':['Oldboy','SH',200]}
print(emp_info['age'])
print(emp_info['company_info'][0])
5.布尔类型:True,Flase
print(type(True))
print(type(False))
所有数据类型自带布尔值
布尔值为假的数据类型:0,None,空
print(bool([]))
print(bool(''))
print(bool(None))
六 None
print(type(None))
四、 基本运算符
1. 比较运算
> >=
< <=
==
!=
print(10 != 11)
2. 逻辑运算
and:连接左右两个条件,只有两个条件同时成立时and运算的结果为True
print(10 > 9 and 3 > 2 and 'egon' == 'egon' and True)

or:连接左右两个条件,两个条件成立任意一个or运算的结果就为True
print(False or False or True or False or 3 > 10)
res=(True or (False and True)) or ((False or True) and False)
res=(True or False) or (True and False)
res=True or False
print(res)

not 只与距离最近的条件进行判断
print(not 10 > 3)
x=None
print(not x is None)
print(x is not None)
age1=18
age2=19
print(age2 is not age1)


name_bk='egon'
pwd_bak='123'
name=input('please input your name: ')
pwd=input('please input your password: ')
if name == name_bk and pwd == pwd_bak:
print('login successfull')
print('login successfull')
print('login successfull')
print('login successfull')
print('login successfull')
else:
print('username or password error')

五、 流程控制之if判断基本使用
if 条件1:
    缩进的代码块
elif 条件2:     缩进的代码块
 

猜你喜欢

转载自www.cnblogs.com/dongzhihaoya/p/9983369.html
今日推荐