python基础2

一、内存管理

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、变量值的三个特征:

i

d:反应的是内存地址
type:数据类型
值:
age=18
print(id(age)
print(type(age))
print(age)
总结:
2.1. id相同,值一定相同
2.2. 值相同,id不一定相同
'''
>>> x='name:egon age:18***'
>>> y='name:egon age:18***'
>>> id(x)
2847698422856
>>> id(y)
2847698422928
'''
# x=11111111111111111111111111231231231231222222222222
# y=11111111111111111111111111231231231231222222222222
#
# print(id(x))
# print(id(y))

 

3、is与==

==:值是否相等
is:id是否相等

4、可变类型与不可变类型

可变类型:值改变,id不变,证明就是在改变原值
不可变类型:指改变,id也变,证明根本不是在改变原值,是创建了新值,原值就是不可改变类型
x=10
print(id(x))
x=11
print(id(x))
l=['a','b','c']
print(id(l))
l[0]=A
print(id(l))
print(l)

二、python2中与用户交互

1、在python3中只有一个input

特点:用户输入的任意内容都存成str类型
x=input('>>>:')  #x='123123123'
print(type(x))
salary=input('>>:')  #salary=3000
salary=int(salary)
print(salary*12)

2、在python2中只有一个raw_input,与python3中input一模一样

x=raw_input('>>>:')
要求用户必须输入一个明确的类型,输入什么类型,就存成什么类型
x=input('>>>:')

三、数据类型基本使用

一、数字类型

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)

二、字符串类型str

作用:用来记录描述性质状态,比如名字、性别
定义:在单引号(''),双引号("")三引号(’‘’ ‘’‘  """  """)包含一系列字符
x='abc'
x="abc"
x="""
abc
xxx
"""
msg='my name is "egon"'
使用:
print('abc'+'def')#仅限于str类型直接相加
print('abc*10')#  *的只能是数字
了解字符的大小:ASCII表
x='abcdef'
y='z'
print(x > y)
print('a' > 'Z' )
print('a' > 10 )

三、列表类型:list

作用:用来记录多个值,用索引对应值,索引反映是位置
定义:在[]内用逗号分隔开多个任意类型的值
l=[1,3.1,'xxx',['a','b','c']] #l=list(...)
 print(type(l))
使用
 print(l[0])
 print(l[2])
 print(l[3][0])
 students_info=[
     ['egon',18,['play',]],
     ['alex',18,['play','sleep']]
     ]
​
#print(students_info[1][2]

四、字典类型dict

作用:用来记录多个值,用key对应value,其中key对value有描述性功能
定义:在{}内,用逗号分割开多元素,每一个元素都是key:value的形式,其中value是可以任意类型,而key通常应该是str类型
x':1,'y':3.1,'z':['a','b'],'m':{'aaa':1111}} #d=dict(...)
print(type(d))
使用:
print(d['x'])
print(d['m']['aaa'])
print(d['z'][1])

列表的方式

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])
names=['egon','alex','kevin']
dic={'name1':'egon','name2':'alex','name3':'kevin'}

五、布尔类型:True,Flase

print(type(True))
print(type(False))
​
tag1=True
tag2=True
print(id(tag1))
print(id(tag2))
​
age=18
print( age > 18)

所有数据类型自带布尔值

布尔值为假的数据类型:0,None,空

print(bool([]))
print(bool(''))
print(bool(None))

六、None

print(type(None))

四、基本运算符

1、比较运算符

> >=
< <=
==
!=
print(10 != 11)
了解:
x=None
print(x == None)
print(x is None)
l1=['abc',1,['a','b','c']]
l2=['abc','aa',]
print(l2 > l1)

逻辑运算符:

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

 

原文地址:https://www.cnblogs.com/liushen1995/p/9983930.html