定义: 程序在运行的过程中,值可以随时发生改变
作用:存储数据,参与运算
定义格式:变量名 = 初始值
说明:
变量名: 对于每一个变量,需要给他定义一个名称,定义的规则就是标识符的规则
初始值:第一次给变量赋予的值,在程序运行的过程中,这个值可以随时发生改变
举例:age = 10
age是变量名,10是初始值
#Python中的变量的定义和数学中变量的定义完全一致
x = 3
y = 4
print(x * y)
x = "abc"
#print(x * y)
#【扩展】
#Python被称为弱类型语言,动态改变变量的数据类型,容错性比较高
#Java被称为强类型语言,只要变量被定义,它的数据类型将不能发生任何的改变
注意:当定义一个变量,然后删除,相当于这个变量未被定义
代码演示:
#定义变量
num = 66
print(num)
#删除变量
#del
del num
print(num) # 会报错
关键字: 在Python中,已经被赋予了特殊含义的英文单词
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’
在python中自定义合法的一些英文单词
规则(必须遵守):
1. 必须由数字,字母,下划线组成,且第一个不能是数字
2. 不能使用关键字
规范(可选):
1. 字母是区分大小写,尽量不用大小写来区分不同的变量
2. 尽量见名知意
3. 多个单词可以使用下划线分开(推荐)
4. 遵循驼峰命名法,不同的单词之间使用首字母大写的方式进行分隔
扩展: 其他标识符的命名规则:
常量: 常量名所有字母大写,由下划线连接各个单词如MAX_OVERFLOW,TOTAL
函数&方法: 函数名应该为小写,可以用下划线风格单词以增加可读性。如:my_function,my_example_function。
文件名: 全小写,可使用下划线
包: 应该是简短的、小写的名字。如果下划线可以改善可读性可以加入
模块: 与包相同
类: 总是使用
远不止数值,还有文本,图形,音频,视频网页等各种数据, 不同数据需要定义不同的数据类型
Number 【数字:整型int,浮点型[小数]float,复数类型complex】
String 【字符串】
Boolean 【布尔类型】 True真(1), Flase假(0)
None【空值】
list【列表】类似c语言的数组
tuple 【元组】 不可改变的列表,元素唯一
dict 【字典】
set 【集合】(了解)
bytes 【字节】b’hello’
*【乘法】 /【除法】 %【求余,取模】 **【求幂,次方】 //【取整】
代码演示:
print(10 + 4)
print(10 - 4)
print(10 * 4)
print(10 / 4)
print(10 % 4)
print(10 ** 4)
print(10 // 4)
简单赋值运算符:= 给一个变量进行赋值
复合赋值运算符:+= -= %= /= … 给一个变量进行赋值,同时给变量进行相应的运算
代码演示:
#简单
num1 = 10
#注意:在赋值运算符中,先计算等号右边的表达式,然后将计算的结果赋值给等号左边的变量
num2 = num1 + 10
print(num2)
#复合
num3 = 10
num3 += 100 #等价于num3 = num3 + 100
print(num3)
作用
:比较大小,得到结果为布尔值【如果表达式成立,则返回True,如果不成立,则返回False
== 【等号】, !=【不等于】,> 【小于】,>=【小于或等于】,<【大于】,<= 【大于或等于】
代码演示:
print(10 + 4)
print(10 - 4)
print(10 * 4)
print(10 / 4)
print(10 % 4)
print(10 ** 4)
print(10 // 4)
and 与 , or 或, not 非
代码演示:
# and 两边都为真则True, 只要有一个为假则为False
print("--------and----------")
print(True and True)
print(True and False)
print(False and True)
print(False and False)
# or 两边都为假则为False,只要有一个为真则为True
print("--------or----------")
print(True or True)
print(True or False)
print(False or True)
print(False or False)
# not: 一定会得到一个bool值
print("--------or----------")
print(not True)
print(not False
短路操作:
# 短路操作
# and : 两边都为真则为真,只要有一个假则为假
print("---------and-----------")
x = 10 and 3 and [] and 5
x = 10 and print(9)
print(x)
# or : 两边都为假则为假, 只要有一个为真则为真
print("---------or-----------")
x = 0 or 3 or 4
x = 0 or 3 or print(2)
print(x)
逻辑运算的结果只能是True和False,Boolea数据类型的值只有True和False,常见的bool值如下:
# bool(牢记)
# 数值类型:0是假的,其他的都为真
# 字符串:""空字符串是假的,其他都为真
# None类型:None是假的
# list类型:[]空列表为假,其他为真
# dict类型:{}空字典为假,其他为真
成员运算符:
in,not in
print(1 in [1,2,3])
print("abc" not in "abcdefg")
身份运算符:
is,is not
# 判断内存地址是否相同
# id(): 查看内存地址
a = 100
b = 100
print(id(a)) # 140715017625728
print(id(b)) # 140715017625728
print(a is b) # True
print(a is not b) # False
前提:将数字转换为二进制使用
&【按位与】 |【按位或】 ^【按位异或】 ~【按位取反】 << 【左移】 >>【右移】
代码演示:
# 位运算符
print(12 & 5) # 位与
# 1100 => 12
# 0101 => 5
# -------------
# 0100 => 4
print(12 | 5) # 位或
# 1100 => 12
# 0101 => 5
# -------------
# 1101 => 13
print(12 ^ 5) # 位异或
# 1100 => 12
# 0101 => 5
# -------------
# 1001 => 9
print(12 >> 2)
# 1100 => 12
# 11 => 3
print(12 << 2)
# 1100 => 12
# 110000 => 48
print(~6) # 按位取反, -7
# 00000000 00000000 00000000 00000110 => 6
# 11111111 11111111 11111111 11111001 ~6 补码
# 源码 反码 补码
# 11111111 11111111 11111111 11111000 反码
# 10000000 00000000 00000000 00000111 源码