Bootstrap

python变量、运算符

变量

  • 变量就是可以重复使用的一个量,或者叫一个代号

  • 变量命名的规则

  • 变量命名可以包含数字,大小写字母,下划线或者更多,但是我们不推荐除了前三种内容之外的符号

  • 数字不可以打头

  • 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

  • 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

运算符优先级问题

  • 小括号具有最高优先级