python的数据类型和变量

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. 布尔值

只有 TrueFalse,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}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值