声明:
本人从菜鸟教程学习的Python,所以和那里的知识差不多。
Python初学者,请路过的大佬多多指教啦~
一、变量
①python中变量不需要声明,但是被赋值后该变量才会被创建。
a = 114514
b = 114.514
c = "hello"
print("a的类型是:", type(a))
print("b的类型是:", type(b))
print("c的类型是:", type(c))
输出结果:
a的类型是: <class 'int'>
b的类型是: <class 'float'>
c的类型是: <class 'str'>
python允许同时为多个变量赋值。
d = e = f = 12
h, k, l = 1, 2, "hello"
二、 数据类型
Python3 的六个标准数据类型中:
不可变数据(3 个):
- Number(数字)(包括int、float、bool、complex)
- String(字符串)
- Tuple(元组)
可变数据(3 个):
- List(列表)
- Dictionary(字典)
- Set(集合)
此外还有一些高级的数据类型,如: 字节数组类型(bytes)。
三、算术运算
①除法
Python中有两种除法,/ 运算返回浮点数,// 运算返回整数。
print(2 / 3)
print(2 // 3)
输出结果:
0.6666666666666666
0
②混合运算
在混合运算时,Python把其中的int转换为float。
print("(10 / 5)的类型是:", type(10 / 5))
print(10 / 5)
输出结果:
(10 / 5)的类型是: <class 'float'>
2.0
③幂
幂运算符号为 ** 。
④赋值运算符
根据以上除法和幂运算的算术运算符:
//= | 取整除赋值运算符 | |
**= | 幂赋值运算符 | |
:= | 海象运算符 | Python3.8 版本新增。用于在表达式中同时进行赋值和返回赋值的值。 |
海象运算符:
if a := 15 > 10:
print('a 大于 10!')
先把15赋给a,再返回a>10的值(True)。
相当于一般写法的
a = 15
if a > 10:
print('a 大于 10!')
⑤Python中没有++和--
⑥位运算

⑦逻辑运算符
and、or、not:与、或、非。
⑧成员运算符

⑨身份运算符
is,is not
用于判断两个标识符是不是引用自一个对象。

四、字符串
python没有字符类型,单个字符其实是长度为一的字符串。
python中,单引号''和双引号""是一样的,反斜杠\表示特殊字符。
五、bool类型
# bool类型
# 非零数字、非空字符串、非空列表、非空元组等被视为 True
# 0、空字符串、空列表、空元组等被视为 False
print(1 and 0)
输出结果:
0
六、list(列表)
# 看起来好像数组?
# 一个list中可以放不同类型的元素
# 和str一样,list也有两个索引,分别是0、1、2、3、...和...-4、-3、-2、-1
list1 = [1, 'tang2dan', 54.8, "hello"]
print(list1)
print("list1[1]的类型是:", type(list1[1]))
print("list1[-2]的类型是:", type(list1[-2]))
输出结果:
[1, 'tang2dan', 54.8, 'hello']
list1[1]的类型是: <class 'str'>
list1[-2]的类型是: <class 'float'>
七、tuple(元组)
# 元组(tuple)与列表类似,但元素不能修改,可以看成特殊的字符串
# 一个tuple中也可以放不同类型的元素
tuple1 = ()
tuple2 = (12,) # 只有一个元素时要加上逗号表示它是tuple,要不然不就相当于一个某类型了么
tuple3 = (12, "hahaha", True)
八、set(集合)
# 一种无序、可变的数据类型,用于存储唯一的元素,也就是说,set中的元素不会重复
# 创建set的格式有两种
# 1.集合文字
para = {123, "hello", "hell", "123", "hello", True}
print(para)
# 2.set()函数调用
para1 = set("abcdefgabbfi")
print(para1)
# set()函数不可以这样使用:
# para3 = set([123, "hello", "hell", "123", "hello", True])
# 或者para3 = set(123, "hello", "hell", "123", "hello", True)
# 要想使用set()定义出para的效果,可以像如下这样写:(所以为什么要这么复杂地写?)
it = iter(para)
para3 = set(it)
# 或者直接
para4 = set(para)
print("\npara3 = " + str(para3) + "\npara4 = " + str(para4))
# 具体迭代器怎么用后面再学
输出结果:
{True, 'hello', '123', 'hell', 123}
{'e', 'd', 'b', 'a', 'g', 'f', 'i', 'c'}
para3 = {True, 'hello', '123', 'hell', 123}
para4 = {True, 'hello', '123', 'hell', 123}
九、dictionary(字典)
# 字典是一种映射类型,用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合
# 字典的key必须是不可变类型,如数字、字符串、元组、bool(布尔类型好像也算数字?)等
# 在同一个字典中,key(键)是唯一的
# 关于key时唯一的这点,可以这样类比:数组a中a[5]只有那一个。所以像下面那样给dict1['two']第二次赋值会掩盖第一次赋值
dict1 = {}
dict1['one'] = "这是一个value(值)"
dict1['two'] = "这是一个value(值)"
dict1['two'] = "这是一个value(值)_test"
dict1['three'] = "这是一个value(值)"
print(dict1)
# 也可以这样写
dict2 = {"name": "JOJO", "set": "male", "code": "1253294"}
输出结果:
{'one': '这是一个value(值)', 'two': '这是一个value(值)_test', 'three': '这是一个value(值)'}
十、bytes
# bytes类型
# 表示的是不可变的二进制序列
# 与字符串类型不同的是,bytes 类型中的元素是0 到 255 之间的整数,而不是 Unicode 字符
# 经常用来处理音频、视频、图片等二进制数据
x = bytes("hello", encoding="utf-8") # 如果省略第二个参数,默认采用utf-8编码
y = b"1234567"
print(x)
print(y)
# 与字符串类型类似,bytes 类型也支持许多操作和方法,如切片、拼接、查找、替换等
print(y[0])
print(y[0:3])
# 由于 bytes 类型和数字、字符串等一样,是不可变的
z = x + b"wow"
# bytes 类型中的元素是整数值
if x[0] == ord("h"):
print("The first element is 'h'")
输出结果:
b'hello'
b'1234567'
49
b'123'
The first element is 'h'