变量
- 变量就是可以重复使用的一个量,或者叫一个代号
-
变量命名的规则
- 变量命名可以包含数字,大小写字母,下划线或者更多,但是我们不推荐除了前三种内容之外的符号
-
数字不可以打头
- 4man,5for是不可以的
- man4,for5是可以的
-
一般在python中,以下划线开头的内容具有特殊含义,不建议使用
- 比如_age, _name, 理论可以,但强烈不推荐,包括但不限于一个下划线开头和两个连续下划线开头
-
大小写不一样,俗称大小写敏感
- ForMan跟forMan不是一个变量名称
-
推荐:
- 使用具有固定含义的英文单词或者缩写,srv=server skt=scoket, 一般以posix命名规则为主
-
驼峰命名法
-
名称以单词自动连接,且每个单词首字母大写
-
大驼峰,每个单词第一个字母均大写
- 在python中给类命名使用此法
- MyFirstLove,IntOne
-
小驼峰,类似大驼峰,但第一个字母小写
- 在python中一般给普通变量或者函数命名
- myFirstLove,intOne
-
posix写法
- 多个单词用下划线连接
- 单词全部小写
- my_first_love, int_one
-
-
-
保留字和关键字
- 变量命名必须避开,不能跟关键字和保留字重复
- class,def, break, for
#查看关键字的方法
import keyword #引入关键字模块
#打印出系统全部关键字
print(keyword.kwlist)
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
# 定义变量age,把18放入变量age中
age = 18
print(age)
print(18)
# 给age1, age2, age3 放入同样一个内容或值
age1 = age2 = age3 = 18
print(age1)
print(age2)
print(age3)
# 一行给多个变量赋值
age4, age5, age6 = 12, 21, 45
print(age4)
print(age5)
print(age6)
18
18
18
18
18
12
21
45
变量类型
- 严格意义上讲,python只有一个类型
-
标准数据一共六种
- 数字类型Number
- 字符串类型str
- 列表list
- 元组tuple
- 字典 Dictionary
- 集合 set
数字类型 Number
- python中的数字没有大小限制
常见数字分类
-
整数
- 没有小数部分
- 包含正数,负数,0
-
二进制
- 只有0,1
- 以0b开头的01串
-
例如:
- 0b110
- 0b11110
-
八进制
- 以0o开头的 0到7之间的数字串
-
例如:
- 0o71
-
十六进制
- 以0x组成的由 0-9,a-f构成的串
- 浮点数
- 科学记数法
- 复数
#二进制定义
a1 = 0b110
print(a1)
a2 = 0b11110
print(a2)
6
30
# 八进制的案例
a3 = 0o71
print(a3)
57
# 十六进制案例
a4 = 0xffff
print(a4)
a5 = 0x53f2
print(a5)
65535
21490
浮点数
- 就是通俗意义上的小数
-
常见的案例格式
- 3.14159
- 3.
- 0.4
- .4
-
科学计数法
- 定义跟数学定义一样
- 写法就是e后面跟整数来表示10的指数
# 科学计数法
height = 184
print(height)
height = 1.84e2
print(height)
184
184.0
复数 complex
- 与数学定义一致
- 复数的虚部用j/J表示
-
例如:
- 5+4j
- 4j
- (4j)
a = 4j
print(a)
4j
布尔值
- 布尔值就是用来表示真假的值
- 只有两个值:Ture/False
-
在python中,布尔值可以当数字使用
- 布尔值如果当数字使用,Ture=1,False=0
- 如果数字用来当作布尔值使用,0=Fakse,其余当作Ture
# 布尔值当作数字使用
age = 18 + True
print(age)
age = 18 + False
print(age)
# 判断语句
a = -1
if a:
print("负数是True")
else:
print("负数是False")
19
18
负数是True
字符串
- 表达文字信息的内容,比如“我爱王晓静"
- 形式上是引号引起来的一段内容
-
引号包括
- 单引号
- 双引号
- 三引号,可以用来表示多行信息
- 单双引号含义一致
# 字符串案例
love = "I love Ruo Chen"
print(love)
love2 = "I love Ruo Chen"
print(love2)
# 三引号可以表示多行
love3 = """
我
爱你呀
若尘
就像爱着北国的雪
"""
print(love3)
# 以下案例说明单引号只能引用一行
#love4 = "
#我
#爱你呀
#若尘
#就像爱着北国的雪
#"
#print(love4)
I love Ruo Chen
I love Ruo Chen
我
爱你呀
若尘
就像爱着北国的雪
None类型
- 表示没有,通常用来占位
- 比如返回,用来表示返回一个空(return None)
表达式
- 由一个或者几个数字或者变量或者运算符合成的一行代码
- 通常返回一个结果
运算符
- 由一个以上的值经过一系列的运算得到新值的过程就叫运算
- 用来操作运算的符号叫运算符
-
运算符分类
- 算数运算符
- 比较或者关系运算符
- 赋值运算符
- 逻辑运算符号
- 位运算
- 成员运算符
- 身份运算符
# 表达式案例
a = 1 + 2
算数运算符
- 用来进行算数运算的符号
- 通常用来表示加减乘除
- python没有自增自减运算符
# 算数运算符案例
# 加减乘跟数学意义基本一致
a = 9 - 2
print(a)
b = 9 + 2
print(b)
c = 8 * 2
print(c)
# python除法分为普通除法,地板除,取余
# 正常除法
# 此操作符在pyth2.x 和 3.x中有些不同
a = 9 / 2
print(a)
# 地板除,取整
a = 9 // 2
print(a)
print(a)
# 取余
a = 9 % 2
print(a)
# 除以负数的结果
# 理解这个结果参考取余的定义
# 在这里简单说一下吧,a对b取余,(a - x)/ b = y ,余0,x即为所求余数。 (并不具体,可自行百度)
a = 9 % -4
print(a)
# 两个乘号就是指数
a = 7 ** 2
print(a)
7
11
16
4.5
4
4
1
-3
49
比较运算符
- 对两个内容进行比较的运算符
- 结果一定是布尔值,即 True/Flase
# 等于 ==
a = 3 == 4
print(a)
# 不等于 !=
a = 3 != 4
print(a)
# 其他的符号是
# >, >=, <, <=
print(3 >= 8)
print("ruochen" > "q")
False
True
False
True
赋值运算符
- 把一个值放到变量里边去
# 赋值符号 =
a = 9
# 复杂赋值
a = b = 9
a,b = 1,2
# 赋值的缩写
cc = 0
cc = cc + 3
print(cc)
# 注意下面符号仅仅是一个缩写
cc += 3 # cc = cc + 3
print(cc)
## 所有数学运算符都可以缩写
# -=,*=,/=,//=,%=,**=,都是缩写形式
# python里面没有 ++,--
3
6
逻辑运算符
- 对布尔类型变量或者值进行运算的符号
- and:逻辑与
- or:逻辑或
- not:逻辑非
- python里面的逻辑运算没有异或
-
运算规则:
- and看作乘法,or看作加法
- Ture看作1,False看作0
- 则逻辑运算能转换成整数数学运算
- 最后结果如果是0则为False,否则为Ture
-
逻辑运算的短路问题
- 逻辑运算式,按照运算顺序计算,一旦能够整个式子未来的值,则不再进行计算,直接返回
# 逻辑表达举例
a = True
b = True
c = False
aa = a and b # 左边表达式可以转换成 1*1
print(aa)
bb = a and c
print(bb)
cc = 100 and c
print(cc)
# 布尔值跟数字的转换
# 数字转换成布尔值的时候,0 = False,其余是True
# 布尔值转换成数字的时候: True = 1,False = 0
True
False
False
# 短路问题案例1
a = True
b = True
c = False
aa = a or b and (a and b) # 转换成算数 1 + ......
print(aa)
True
# 短路问题案例2
def a():
print('a')
return True
def b():
print('b')
return True
aaa = a() and b()
print("AAAAAA")
# 字符串乘以数字,表示对这个字符串重复多少遍
print("*" * 20)
bbb = a() or b() # 短路发生
print("BBBBBB")
a
b
AAAAAA
********************
a
BBBBBB
成员运算符
- 用来检测一个值或者变量是否在某个集合里面
- in:成员运算符
- not in:不在里面的意思
# in 案例
# list
L = [1,2,3,4,5]
a = 6
aa = a in L
print(aa)
# a 没有在L里面
aa = a not in L
print(aa)
False
True
身份运算符
- 用来确定两个变量是否是同一个变量
- is:变量运算符
- is not:不是
- 对整数N \in [-5,256],解释器对他们做了单独的处理,放进了固定的内存中,不因你每次运行而变化。
# 身份运算符定义
a = 1
b = 1000000
aa = a is b
print(aa)
# a,b仅仅是值一样,并不代表a,b是一个变量
a = 1000000
b = 1000000
aa = a is b
print(aa)
# 正确理解下面的案例跟上面案例的不同
# a,b仅仅是值一样,并不代表a,b是一个变量
a = 5
b = 5
aa = a is b
print(aa)
False
False
True
运算符优先级问题
- 小括号具有最高优先级
** 指数 (最高优先级)
~ + - 按位翻转,一元加号和减号(最后两个的方法名为 +@ 和 -@)
* / % // 乘,除, 取模和取整数
+ - 加法减法
>> << 右移,左移运算符
& 位‘AND’
^ | 位运算符
<= < > >= 比较运算符
<> == != 等于运算符
= %= /= //= -= += *= **= 赋值运算符
is is not 身份运算符
in not in 成员运算符
not or and 逻辑运算符