python学习日记1
‘#’表示注释
字符串
如果字符串里面有很多字符都需要转义,就需要加很多\,为了简化,Python还允许用r”表示”内部的字符串默认不转义.
>>> print('\\\t\\')
\ \
>>> print(r'\\\t\\')
\\\t\\
如果字符串内部有很多换行,用\n写在一行里不好阅读,为了简化,Python允许用”’…”’的格式表示多行内容.
>>> print('''line1
... line2
... line3''')
line1
line2
line3
布尔值可以用and、or和not运算。不能使用&&,||,!等运算符。
对于单个字符的编码,Python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符。
>>> ord('A')
65
>>> ord('中')
20013
>>> chr(66)
'B'
>>> chr(25991)
'文'
以Unicode表示的str通过encode()方法可以编码为指定的bytes.
>>> 'ABC'.encode('ascii')
b'ABC'
>>> '中文'.encode('utf-8')
b'\xe4\xb8\xad\xe6\x96\x87'
>>> '中文'.encode('ascii')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)
要把bytes变为str,就需要用decode()方法。
>>> b'ABC'.decode('ascii')
'ABC'
>>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
'中文'
len()函数可以计算字符数和字节数
在源代码中第一行写入
# -*- coding: utf-8 -*-
防止乱码
采用的格式化方式和C语言是一致的,用%实现。
>>> 'Hello, %s' % 'world'
'Hello, world'
>>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)
'Hi, Michael, you have $1000000.'
占位符 | 解释 |
---|---|
%d | 整数 |
%f | 浮点数 |
%s | 字符串 |
%x | 十六进制整数 |
链表操作
下标为负值时可以取倒数第几个元素
函数 | 解释 |
---|---|
list.append(k) | 将k加入list链表(加入元素为链表最后一个) |
list.insert(1,k) | 将k插入到链表下标为1的位置,原来1位置和后面位置元素全部向后退一位 |
list.pop() | 删除并返回链表末尾的元素 |
list.pop(i) | 删除指定位置i的元素 |
元祖:tuple——一旦初始化不能修改。
元祖取元素操作和链表一样
条件判断
if <条件判断1>:
<执行1>
elif <条件判断2>:
<执行2>
elif <条件判断3>:
<执行3>
else:
<执行4>
循环
names = ['Michael', 'Bob', 'Tracy']
for name in names:
print(name)
sum = 0
n = 99
while n > 0:
sum = sum + n
n = n - 2
print(sum)
break 可以提前推出循环
continue可以跳过单次循环
字典——键值对
>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
>>> d['Michael']
95
通过in判断key是否存在
>>> 'Thomas' in d
False
通过dict(字典)提供的get方法,如果key不存在,可以返回None,或者自己指定的value。
>>> d.get('Thomas')
>>> d.get('Thomas', -1)
-1
dict有以下几个特点:
- 查找和插入的速度极快,不会随着key的增加而变慢;
- 需要占用大量的内存,内存浪费多。
而list相反:
- 查找和插入的时间随着元素的增加而增加;
- 占用空间小,浪费内存很少。
set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
>>> s = set([1, 1, 2, 2, 3, 3])
>>> s
{1, 2, 3}
函数 | 解释 |
---|---|
s.add(key) | 添加元素到set中 |
s.remove(key) | 删除元素 |