一些简单的东西,每次都忘记语法。记下笔记,加深点印象。
type查询变量类型
整型:
>>> val = 0x100
>>> type(val)
<class 'int'>
字符串:
>>> val = 'abcdefg'
>>> type(val)
<class 'str'>
列表:
>>> val = [1,2,3]
>>> type(val)
<class 'list'>
元组:
>>> val = (1,2,3)
>>> type(val)
<class 'tuple'>
集合:
>>> val = {1,2,3}
>>> type(val)
<class 'set'>
字典:
>>> val = {1:'a', 2:'b'}
>>> type(val)
<class 'dict'>
常用数据结构
字符串
长度
>>> str = '123456'
>>> len(str)
6
字符串遍历
>>> str = '123456'
>>> for c in str:
... print(c)
...
1
2
3
4
5
6
>>> for c in str[2:4]:
... print(c)
...
3
4
字符串拼接
+号拼接与string.format
>>> str1 = '123123123'
>>> str2 = 'abcabcabc'
>>> str3 = str1 + ':' + str2 + 'DONE'
>>> print(str3)
123123123:abcabcabcDONE
>>> print('{0}:{1} DONE'.format(str1, str2))
123123123:abcabcabc DONE
io.StringIO
>>> import io
>>> appender = io.StringIO()
>>> type(appender)
<class '_io.StringIO'>
>>> appender.write('aaaaaa')
6
>>> appender.write('bbbbbbbbbb')
10
>>> appender.write('ccccccccccccccc')
15
>>> print(appender.getvalue())
aaaaaabbbbbbbbbbccccccccccccccc
>>> appender.close()
>>> print(appender.getvalue())
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: I/O operation on closed file
子串
>>> str = '123456'
>>> sub = str[2:4]
>>> print(sub)
34
列表
字符串就可以看做字符的列表
tuple
>>> tup = ('a', 123, 'ccccc' , {1,2,3})
>>> type(tup)
<class 'tuple'>
>>> tup[0]
'a'
>>> tup[3]
{1, 2, 3}
>>> tup[4]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: tuple index out of range
与集合区别:
list可以通过append新增项,元组不行。
为什么有这个:
函数返回多个参数的时候,可以直接返回一个tuple。
>>> def test(): # 返回(id, name, extraInfo)的元组
... return (9527, '秋香', {'年龄': 18, 'gender': '女'})
...
>>> ret = test()
>>> print(ret)
(9527, '秋香', {'年龄': 18, 'gender': '女'})
>>> type(ret)
<class 'tuple'>
>>> type(ret[0])
<class 'int'>
>>> type(ret[1])
<class 'str'>
>>> type(ret[2])
<class 'dict'>
>>> print(ret[2])
{'年龄': 18, 'gender': '女'}
集合
与列表区别:
集合元素不可重复,列表可以。
底层树形结构,判断是否存在的时候会更快。
字典
>>> dic = {}
>>> dic['k1'] = 'aaaaaaa'
>>> dic[2] = 'bbbbbb'
>>> dic[111] = 'cccc'
>>> print(dic)
{'k1': 'aaaaaaa', 2: 'bbbbbb', 111: 'cccc'}
>>> dic[111] = 'CCCCCCCCCC'
>>> print(dic)
{'k1': 'aaaaaaa', 2: 'bbbbbb', 111: 'CCCCCCCCCC'}
>>> dic[2]
'bbbbbb'
>>> dic[1]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 1
遍历
通过key遍历
>>> dic = {'id': 9527, 'name': 'qx', '年龄': 18, 'gender': '女'}
>>> print(dic)
{'id': 9527, 'name': 'qx', '年龄': 18, 'gender': '女'}
>>> for key in dic:
... print(("key: {}, value: {}").format(key, dic[key]))
...
key: id, value: 9527
key: name, value: qx
key: 年龄, value: 18
key: gender, value: 女
通过k, v遍历
>>> for k, v in dic.items():
... print(('key: {}, value: {}').format(k, v))
...
key: id, value: 9527
key: name, value: qx
key: 年龄, value: 18
key: gender, value: 女
文件处理
写文件
>>> filename = 'H:\\TEMP\\2023-3-10\\const-string\\测试.txt'
>>> file = open(filename, mode = 'w', encoding = 'utf-8')
>>> file.write("写点什么东西")
6
>>> file.flush() # write完了不一定会立即写入。可能需要flush一下。或者直接close。
>>> file.close()