字符编码
因为计算机只认识数字,如果要处理文本,就必须先把文本转换为数字才能处理。
最早的计算机在设计时采用8个比特作为一个字节
ascii 码只有127个字符,即a~z A~Z 和一些符号
要显示中文
python 3 版本中,字符串是以Unicode编码的,也就是说,Python 的字符传支持多种语言。
由于Python 的字符串类型是 str
,在内存中以 Unicode
表示,一个字符对应若干字节。如果要在网络上传输,或者保存到自盘闪光,就需要把str
转换为以字节为单位的bytes
print('ABC'.encode('ascii'))
>> b'ABC'
反过来,我们从网络或者磁盘上读取了字节流,那么读到的数据就是 bytes
。要把 bytes
转换为 str
,就需要用 decode()
方法
print(b'ABC'.decode('ascii'))
>> ABC
由于 python 代码也是一个文本文件,所以,当年的源代码中包含中文时,在保存源代码时,就需要务必指定保存为 UTF-8
编码。当 python 解释器读取源代码时,为了让他按照 UTF-8
编码读取,我们通常在文件开头写上这两行
- 第一行注释是为了告诉Linux/OS 系统,这是一个python 可执行程序,Win会自动忽略
- 第二行注释是为了告诉Python解释器,按照
UTF-8
编码读取源码,否则,你在源代码中写的中文输出就可能会有乱码。
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
格式化
a = 100
c = 'hello'
ptint('a = %d c = %s'%(a,c))
>> a = 100 c = hello
list
python内置的一种数据类型是列表:list。list 是一种有序的集合,可以随时添加和删除其中的元素。
tangzhuang = ['me','bo','yezi']
print(tangzhuang)
tangzhuang.append('liangzi') #添加至列表尾部
print(tangzhuang)
a = len(tangzhuang)
print(a)
tuple
元组,与list 相似,但是一旦初始化就不能修改了像是c代码中的 const
条件判断
if weiget >= 170:
print('so fat')
elif weiget >= 130 & weiget < 150:
print('perfect')
else:
print('none')
age = input('age:') # 输入的是字符串
if int(age) > 20:
print('error')
else:
print('ok')
print(age)
循环
n = 1
while n <= 100:
print(n)
n = n + 1
if(n > 50):
break
print('END')
dictinory
字典,键值 key-value, 哈希(hash)算法
dir = {'michael' : 100,'tang' : 150}
print(dir['tang'])
空间换时间,通过 key 值计算出在内存中的索引位置,然后直接去这个内存中取值