常用快捷键:
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",用赋值符号"="来连接变量名与值 。
*_ 的用法
#列表压缩
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
1.1.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
# 数据的类型
#打印一个变量的值: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不一定相等
例子1:在python3.6交互式环境下,值相等,id不相等
age='name:szq age:18' #定义相同的值
age1='name:szq age:18' #定义相同的值
print(id(age1),id(age)) #打印id
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 - 默认接受字符串str类型,输入其他类型的数据时,会报错
num=input('pls input your num >>:')
print(num,type(num))
pls input your num >>:szq
szq <class 'str'> #input会把输入的内容全部存为字符串类型
例子1:指定变量的数据类型
age=input('pls input your age >>:')
print(age == 18)
print(type(age))
pls input your age >>:18
False
<class 'str'>
'18' == 18 ,因为字符串类型与整数类型无法做比较,所以显示为False
如何修改,能达到目的:定义字符串类型的值为int(整数)类型
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 %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,是可以接收任意类型的