执行过程:
例:python3 C:\test.py
1.先启动python3.exe
2.把C:\test.py从硬盘读入内存
3.解释执行文件内容(识别python语法)
引用计数+垃圾回收机制(每个值都会占用一个内存空间)
x=‘qqq‘ ‘qqq‘这个值的引用计数为1
y=x ‘qqq‘这个值的引用计数为2
del x 取消绑定,x!=‘qqq‘
变量的三要素:
1.变量值:用来表示状态(用变量名取到变量值)
print(x)
2.变量值的类型:表示不同状态的变量值
print(type(x))
3.变量值的id:
print(id(x))
组合:print(x,type(x),id(x))
状态:
数字类型:
1.整型:int
x=10 等于 x=int(10)
2.浮点型:float
x=20.22 等于 x=float(20.22)
字符串:str 在引号(单引,双引,三引)里定义的一堆字符
deng=‘male‘等于 deng=str(‘male‘)
info="i‘m luoxiaoxu"
keke=‘‘‘
haha
jiji
gggg
‘‘‘
字符只能和字符之前进行+或者*
info1=‘nihao‘
info2=‘hello‘
info3=info1+info2
print(info3)
nihaohello
print(‘nihao‘*7)
nihaonihaonihaonihaonihaonihaonihao
列表:list 在[]内,用逗号分隔开,存放多个任意类型的元素,从0开始计数
x=[1,‘a‘,[1,2]] 等于 x=list[1,‘a‘,[1,2]]
print(x[2][0])
1
可变类型:在id不变的情况下,value可以变,则为可变类型,如:列表类型,字典类型
不可变类型:value一旦改变,id也会改变,则为不可变类型(id变意味着创建了新的内存空间)如:int,float,str,布尔
字典类型:dict 存放多个值,定义在花括号内,用括号分隔key:value ,value可以是任意类型,但是key必须是不可变类型。
info={
‘name‘:‘dachui‘,
‘age‘:‘18‘,
‘scx‘:‘male‘,
‘company‘:[‘dayuan‘,‘zhonghua‘,40]
}
print(info[‘company‘][2])
40
info={
‘name‘:‘dachui‘,
‘age‘:‘18‘,
‘scx‘:‘male‘,
‘company‘:[‘name‘:‘dayuan‘,‘type‘:‘zhonghua‘,‘emppy‘:40]
}
print(info[‘company‘][‘emppy‘])
40
布尔类型:True,False 用做逻辑运算进行判断
id不一样,不代表值不相等,值一样,不代表id会一样
交互模式:
input() 把用户输入的内容都存为字符串类型
例:name=input(你好,请输入账户名:)
注释符:
1.#
2.‘‘‘ ‘‘‘
3.""" """
格式化输出:
name=input(‘name is:‘)
age=input(‘age is:‘)
%s字符串类型,但能接收数字
%d数字类型,只能接收数字类型
print(‘my name is <<%s>> my age is [%s] ‘ %(name,age))
print(‘my age is %d‘ %23)
例:
name=input(‘name>>:‘)
age=input(‘age>>:‘)
sex=input(‘sex>>:‘)
job=input(‘job>>:‘)
msg=‘‘‘
---------------info of %s-------------------
name :%s
age :%s
sex :%s
job :%s
----------------end-------------------------
‘‘‘ %(name,age,sex,job)
print(msg)
msg=‘‘‘
---------------info of %s-------------------
name :%s
age :%s
sex :%s
job :%s
----------------end-------------------------
‘‘‘ %(name,age,sex,job)
print(msg)
算术:
+(加),-(减),*(乘),/(除,有余),//(除,取整),%(取余),**(平方)
例:
print(10%3)
print(10//3)
比较:
<(小于),>(大于),==(等于),!=(不等于),<>(不等于),>=(大于等于),<=(小于等于)
赋值:
a=1
b=1
链式赋值:
a=b=1(同上)
交叉赋值:
n=1
m=2
原始:
t=m
m=n
n=t
交叉:
m,n=m,n(同上)
解压:
f=[1,2,3,4]
原始:
a=l[0]
b=l[1]
c=l[2]
d=l[3]
解压:
a,b,c,d=f(同上)
不要中间的值:
a,_,_,b=f
a,*_,b=f()
"_"为一个不使用的值
"*_"为n个不使用的值
赋值运算:
le=1
le+1=1 等于 le=le+1 (适合所有运算符)
逻辑:
and(与),or(或),not(非,只实现紧跟它后的判断)
print(not 3 > 4 )
判断值是否相等:"=="
判断id时否相等:"is"
if格式:
if 判断语句 :
执行语句
else:
执行语句
多if:
if 判断语句 :
if 判断语句 :
执行语句
else:
执行语句
else:
执行语句
例:
input(‘score>>‘)
if score.isdigit(): #isdigit()判断变量是否为纯数字
score=int(score) #int只能转换整型类型
elif score>=90 :
print(‘优秀‘)
elif score>=80 :
print(‘良好‘)
elif score>=60 :
print(‘合格‘)
else:
print(‘不合格‘)
条件循环:
while 条件:
语法1
语法2
break 中断循环
continue 中断本次循环,不执行它以下代码
嵌套循环:
count = 1
ta=Ture
while ta:
if count > 3:
name=input(‘name>>:‘)
password=input(‘password>>:‘)
if name == ‘luo‘ and password == ‘123456‘:
print(‘login succesfull‘)
while ta:
cmd=input(‘luo#‘)
if cmd == ‘q‘:
tag=False
contiue
print(‘run %s‘ %cmd)
else:
print(‘user ro password err‘)
count+=1
while+else连用:
con=0
while con <= 6:
print(con)
con+=1
else:
print(‘o.o‘)
如果中途没有被break中断,才能执行else的命令。
原文:http://blog.51cto.com/13399294/2150759