python的数据类型和变量
变量
变量使用变量名来表示, 变量名由字母、下划线和数字组成,首字母不能是数字
na = 1
An = 1
变量是内存空间的引用,所以变量可以指向任何对象
所以python的=
是左边变量指向了右边对象的内存
x = 1
y = 'hello'
x = y
y = 'world'
print(x)
print(y)
常量
常量不可变,一旦定义就不能改变
PI = 3.1415926
由于python中没有常量,所以使用全大写字母表示
简单的加减乘除
print(1 + 2)
print(1 - 2)
print(1 * 2)
print(10 / 3)
print(10 // 3) # python独有的 地板除:结果只取整数
print(10 % 3)
数据类型
1. 整数
整数有两种表达形式 : 十进制和十六进制
a = 1
b = 100
c = 0
d = 0x64
便捷的分隔方式: 目的是为了让很大的数能够更加容易阅读
a1 = 1_000_000
2. 浮点数
浮点数就是小数,使用科学计数法表示,所以小数点可变
所以浮点数也有两种写法
fa= 1.23
fb = 1.23e0
虽然没有大小限制,但是超过范围就会表示成 inf
3. 字符串
单引号双引号都可以表示字符串
如果字符串内部有 '
"
,则需要 \
转义
sa = 'hello "wor\'l\'d" '
r''
表示原始字符串,不会进行转义
sb = r'helo world'
sb = r'helo world'
''''''
多行字符串
sb2 = r'''helo
\'world'''
sb3 = '''helo
\'world''
编码
ord()
获取字符的整数编码
chr()
获取整数编码对应的字符
对于十六进制的字符串(对于unicode),可以用\u
前缀
对于bytes类型 b''
Unicode的str
通过 encode()
可以编码为指定字符集的bytes流
bytes类型通过 decode()
可以解码为指定字符集的str
print(ord('a'))
print(chr(97))
print(b'ABV')
print('ABV'.encode('utf-8'))
print(b'ABV'.decode('utf-8'))
format
和C一样, 使用%
print('%s %d' % ('hello', 1))
占位符 | 替换内容 |
---|---|
%d | 整数 |
%f | 浮点数 |
%s | 字符串 |
%x | 十六进制整数 |
也可以使用format()
print('Hello, {0}'.format('world'))
4. 布尔值
只有 True
和 False
,python的布尔值要大写~!
与布尔值相关的运算:
- 与:
and
- 或:
or
- 非:
not
ba = True and False
bb = True or False
bc = not True
5. 空值
空值是python中的特殊值。None
6. list
列表,可以存放任意类型的对象
- 是一种有序的集合
- 可以随时添加和删除其中的元素。
- 就是数组
lst = ['C++', 'C#', 'java']
ld = [1, 2.0, 'a', None]
len()
获取长度
len(lst)
len(ld)
访问元素
索引从0开始,[0, len)
索引越界会报 IndexError
print(lst[1])
print(ld[0])
# print(ld[4]) # IndexError: list index out of range
反向访问,从-1开始,访问的是最后一个元素,[-1, -(len+1))
索引越界也会报 IndexError
print(ld[-1])
insert()
插入到指定的位置
ld.insert(1, 'hello') # 在 索引1的位置插入 hello
append()
追加元素到末尾,相当于push_back
ld.append('heihei')
pop()
删除末尾元素
ld.pop()
删除指定位置的元素
ld.pop(1) # 删除索引为1的元素
7. tuple
元组,和列表类似,不同之处在于: 元组是不可变的
t = (1, 2.0, 'a', None)
t = () # 定义一个空的tuple
t= (1, ) # 定义只有1个元素的tuple
灵活点写法:
t = ('a', 'b', ['c', 'd'])
t[2][0] = 'e'
t[2][1] = 'f'
这一点更类似于C++中的*const
,指针本身不能改变,但是指针指向的内容可以改变。
8. dict
python版本的 std::map,key-value存储
d = {'a':1, 'b':2}
print(d['a'])
get
get()
方法返回指定键对应的值,如果不存在则返回None
更新dict
可以使用 update()
和 setdefault()
来更新dict
pop
删除指定的key-value
9. set
和C++类似,是一种无序不重复的集合,里面只保留key
创建set
需要塞入一个list, 重复元素自动过滤
s = set([1, 2, 3])
add
添加元素
remove
删除元素
交并集运算
&
和 |
s1 = set([1, 2, 3])
s2 = set([2, 3, 4])
print(s1 & s2) # {2, 3}
print(s1 | s2) # {1, 2, 3, 4}