常用快捷键:
1.三个单引号''' '''
'''
多行注释
多行注释......
'''
2. # 号
表示注释当前行
3. ctrl + ?
选中一段代码,批量注释
4.ctrl + d
选中一行代码,复制到下一行(相当于Sehll里面得yy p)
5.shift+tab
选中一行或者多行代码,使用shift+tab健表示向左缩进,使用tab健表示向右缩进
6.Python特有的单词不能定义为变量名,否则使用不了特定的功能
内建:由解释器自动导入(提供基本功能),可以看作全局变量
一.变量与常量
1.1变量得定义:
1.变量名 python
2.赋值符号 =
3.值 666
当定义一个变量"python"时,Python解释器会开辟一个内存空间存储变量的值"666",用赋值符号"="来连接变量名与值 。
1.1.1、变量赋值
1.列表压缩:
#列表压缩 l=[1,2,3,4,5,6] x,y,z,*_=l #给x,y,z三个变量赋值为列表l的前3个值 print(x,y,z) >>:1 2 3 #列表压缩 l=[1,2,3,4,5,6] *_,x,y=l #给x,y2个变量赋值为列表l的最后2个值 print(x,y) >>:5 6
2.把2个变量的值相互替换:
m=10 n=11 m,n=n,m #把m,n的值调换,即m=11,n=10 print(m,n) >> :11 10
1.2内存释放
1.2.1 引用计数与垃圾回收
1).python采用"引用计数"和"垃圾回收"两种机制来管理内存。
2).引用计数通过记录对象被引用的次数来管理对象。
3).对对象的引用都会使得引用计数加1,移除对对象的引用,引用计数则会减1,
4).当引用计数减为0时,对象所占的内存就会被释放掉。
举例:
python=666 ,当666这个值被python这个变量名给引用了,那么666的引用计数就为"1"
python=777,当777这个值被python这个变量名给引用了,那么777的引用计数就为"1"。变量名python引用的值变为了777,那么666就不再被变量名python所引用了,那么666的引用计数就为"0",此时666就会被垃圾回收掉,释放内存。
1.3变量的特征- 每定义一个变量都有3个特征
id
type
值 #打印一个变量的值:print(变量)
1.3.1 例子1:定义一个变量age,并打印变量的id type 值
age=18 #完全写法 age=int(18) print(id(age),type(age),age)
运行后的值为:
1584492544 <class 'int'> 18
那么得出: id=1584492544 type=int age=18,[ age=18 等于 age=int(18) ]。
1.3.2 例子2:定义一个变量age,然后定义一个变量age1=age 并打印变量age与age1的id type 值
age=19 age1=age print(id(age1),type(age1),age1) print(id(age),type(age),age)
运行后的值为:
1584492544 <class 'int'> 18 1584492544 <class 'int'> 18
那么得出:一个变量age1引用另外一个变量age时,变量(age与age1)的id type 和值都不会改变。
1.3.3 运算符
is 判断id是否相同 #id相等的情况下值相等
== 判断值是否相等 #值相等的情况下,id不一定相等
例子1:在python3.6交互式环境下,值相等,id不相等
age='name:szq age:18' #定义相同的值
age1='name:szq age:18' #定义相同的值
print(id(age1),id(age)) #打印id
age'name:szq age:18' #打印age,得到的值相等
age1
'name:szq age:18' #打印age1,得到的值相等
2010123591408 2010123588656 #但是id不同
例子2:id相等,值相等
age=18 age1=age print(id(age1),age1) print(id(age),age) print(age is age1)
运行后的值为:
1584492544 18 1584492544 18 True #为True说明为真
1.4 常量
1.4.1 常量:不变的量(值),但是常量的值也是可以改变的(常量的字符一般为大写,这是一个默认约定,不从语法角度约束)
常量的字符定义:
SZQ_AGE_IS=18 #字母全部大写
二.基本运算符
2.1 算数运算
2.2 比较运算
2.3 赋值运算
记住一个:a=a+1 可以写成 a+=1
a=a-1 可以写成 a-=1
2.4 逻辑运算 and or not
and:左右两边同时成立,结果为真,如果两边一个不成立,结果为假
or:左右两边一个成立,结果为真,如果两边都不成立,结果为假
not:相反 #print(not 10 > 3) 得到:False
执行顺序:从左往右依次执行 (先判断左边(一个整体),再判断右边(一个整体)) 如下例子:
print(10 < 3 or 3 < 5 and 3 < 2 and 3 > 1 ) 执行的判断顺序: 1.第一个逻辑运算符为or ,那么 先判断 10 < 3 ,如果不成立则判断 3 < 5 and 3 < 2 and 3 > 1 2.在3 < 5 and 3 < 2 and 3 > 1的基础上,第一个逻辑运算符为and 那么先判断3 < 5,如果不成立则为假,后面的3 < 2 and 3 > 1就不会在判断了(第一个为假则为假)
2.5 补充 字符串也可以使用运算符,只能使用+和*
a='aaa' b='bbb' print(a + b) print(a * 10) print(b * 10)运行后的值为:
aaabbb # a + b 得到的值(简单理解:把2个字符串组合起来) aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa # a * 10 得到的值(简单理解:字符串aaa*10,得到了30个aaa) bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb # a * 10 得到的值(简单理解:字符串bbb*10,得到了30个bbb)注意点:+ 只能接收同类型的数据,也就是字符串
三.与用户交互 input - 默认接受字符串类型,输入其他类型的数据时,会报错
num=input('pls input your num >>:') print(num,type(num)) pls input your num >>:szq szq <class 'str'> #input会把输入的内容全部存为字符串类型
input会把输入的类容全部存为字符串类型,如果想要输入的内容为某一数据类型,就需要指定变量的数据类型
例子:passwd=int(passwd)
例子1:指定变量的数据类型
age=input('pls input your age >>:') print(age == 18) print(type(age)) pls input your age >>:18 False <class 'str'>
这里虽然我输入了数字18,但是做"age == 18"判断时,显示为False,因为18传参给了age,但是input把输入的数字18存为了字符串类型,就相当于 '18' == 18 ,因为字符串类型与整数类型无法做比较,所以显示为False
如何修改,能达到目的:
age=input('pls input your age >>:') age=int(age) #这里指定了无论传参的内容为什么,都会被转换为整数类型 print(age == 18) print(type(age))运行后的值为:
pls input your age >>:18 True <class 'int'> #这里可以看到传参的内容18的数据类型为整数性
这里也要注意一点,设定age=int(age)后,在输入非整数类型的数据时会报错
四.格式化输出 %s - 是可以接收任意类型的数据
name=input('pls input your name >>:') age=input('pls input your age >>:') hoppy=input('pls input your hoppy >>:') #print('my name is',name,'my age is',age) #一般写法 print('my name is %s my age is %s my hoppy is %s' %(name,age,hoppy)) #使用%s格式话输出,在最后用%(name,age,hoppy)传参运行后的值为:
pls input your name >>:sudaa #接收变量name pls input your age >>:18 #接收变量age pls input your hoppy >>:read #接收变量hoppy my name is sudaa my age is 18 my hoppy is read #输出内容
注意点:print('my name is %s my age is %s my hoppy is %s' %(name,age,hoppy))
1.print里面输出的内容用引号引起来
2.格式话输出%s,最后要用%(变量1,变量2,变量3),来对应前面的%s
3.格式话输出%s,是可以接收任意类型的