学习廖雪峰老师的Python教程
http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000
一 输入输出
输入 input()
输出 print
# print ('abc', 'hello', 'world')
name = input('please enter you name\n')
print ('hello', name)
print('\u4e2d')
二 基本数据类型
Python采用缩进方式,注释使用#
语句以冒号结尾时,缩进的语句视为代码块,Python大小写敏感
1 数据类型和变量
整型, 布尔型(True, False), 浮点型, 空值(None), 字符串
逻辑运算符 and or not
理解变量在计算机内存中的表示:如:
a = 'abc'
Python解释器做了两件事:
1 在内存中创建了一个'abc'的字符串
2 在内存中创建了一个a的变量,把它指向'abc'字符串
常量:一般用大写字母表示,如PI = 3.1415926 (约定俗成的)
预算:/除法 得到浮点数,如9/3=3.0
//地板除 取小于该数的最大整数
2 编码
早起的unicode是定长字节,使用两个字节表示一个字符,后期发展为变长字节的编码(UTF-8)
英文字符使用一个字节,中文使用三个字符
ASCii和Unicode和UTF-8关系
在计算机内存中,统一使用unicode编码,当需要保存到硬盘或者需要传输的时候,就转换成utf-8
用记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里,编辑完成后,保存的时候再把unicode转换为utf-8
浏览网页的时候,服务器会把动态生成的Unicode内容转换成uft-8在传输到浏览器
在python最新版中,字符串是以unicode编码的
对于单个字符的编码,Python提供了ord()函数获取字符的整数表示,chr吧编码转换成对应的字符
由于python的字符串类型为string,在内存中以unicode表示,一个字符对应若干个字节,如果想要在网络上传输,或者保存到磁盘上,就要把str变为字节为单位的bytes,python对bytes类型的数据用b前缀的单引号或者双引号表示
如 x = b'ABC'
以unicode表示的str通过encode()方法可以编码为指定的bytes
>>> 'ABC'.encode('ascii') b'ABC'
>>> '中文'.encode('utf-8') b'\xe4\xb8\xad\xe6\x96\x87'
在bytes中,无法显示为ascii字符的字节,用\x##显示
>>> b'ABC'.decode('ascii') 'ABC'
>>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8') '中文'
len()用于统计字符或者字节的长度 >>> len('中国'.encode('utf-8')) 输出6
python源代码是文本文件,保存的时候,一般都保存为utf-8,为了让解释器读取源代码按照utf-8读取,需要在文件开头加上这两行
#!/usr/bin/env python3
# -*- coding:utf-8 -*-
3 复合数据类型
数组类型
可变长度 list
arr = [1,2,3,4];
print(arr)
#获取长度
print(len(arr))
#-1表示数组最后一个元素,-2表示第二个元素
print(arr[-1])
#数组函数
arr.append('abc')
print(arr)
arr.insert(1, '我是1')
print(arr.pop())
p = ['asp', 'php']
s = ['java', 'python', p,]
print(s)
print(s[2][1])
固定长度tuple
元素一旦确定,就不能发生改变
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#tuple
p = (1, 2)
q = ()
s = (1,)
#使用逗号区分开来,以为不能确定是(1)数组1 还是数组, 消除歧义
print(p, q, s)
t = ('a', 'b', ['A', 'B'])
print(t)
#tuple中的元素不可变,但是其内部是list,list是可变的
t[2][1] = 'C'
t[2][3] = '我是list第三个元素'
print(t)