windows下python2.X学习:
此文为廖雪峰python教程学习记录
一、环境准备
python包下载:www.python.org,选2.7.13版本。
安装时注意把python安装路径添加到环境变量path中,可安装时勾选,也可在命令行中执行 path=%path%;C:\Python27,或者依次点击“计算机——系统属性——高级系统设置——高级——环境变量”来添加;
二、python基本知识
①命令行输入python可进入python交互环境,输exit()可退出,或Ctrl+C也可退出;
②输出
>>>print ""hello",'world' #print后打印的字符用单引号或双引号括起来,多个字符串也可单独括起来,用逗号隔开;
>>>print "hello world"
>>>print 'hello world'
>>>1+2
>>>print 1+2
>>>print '1 + 2 =',1+2 #输出1 + 2 = 3
③输入
raw_input()可供用户从控制台输入数据
>>>name=raw_input()
aaa bbb
>>>name #直接输入name可查看变量值
'aaa bbb'
单独写个hello.by文件
name=raw_input()
print "hello world",name
执行该文件后,可实现向文件传递变量值
④最简单的python文件
# print absolute value of an integer: #注释用#号
a = 100
if a >= 0: #注此处为冒号
print a
else:
print -a
⑤转义
>>>print "\\\n\\" #输出为两行分别一个\
>>>print r"\\\n\\" #输出\\\n\\。转义太多,为了简化,可写为r""或r'',括起来的部分默认不转义
⑥换行
>>>print 'aaa\nbbb\nccc'#输出三行,每行分别为aaa,bbb,ccc
>>>print '''aaa
...bbb
...ccc''' #效果同上。换行太多,为了直观,用''' ... '''来表示换行,或'r'' ... '''
以上若写在程序里就是:
print '''aaa
bbb
ccc'''
⑦布尔值
>>>True#输出True。可以直接用True、False表示布尔值
>>>False#输出False
>>>3>2#输出True
>>>3<2#输出False
布尔值可以用and、or、not计算
>>> True and True
>>> True or True
>>> not True
⑧空值None
⑨变量
同一个变量a可以被反复赋不同类型的值,故python这种语言成为动态语言。
10)常量
python中习惯用全部大写的变量名表常量
11)整数除法
>>>10/3#输出3。整数除法永远取整数部分
>>>10.0/3#输出3.33333333333335
二、字符编码
①ASCII、Unicode、UTF-8区别
ASCII是一个字节,Unicode是两个字节,为节约内存,存储时用UTF-8编码(常用字母一字节,汉字一
般用3字节或更长);Unicode可去除对不同语言的乱码问题
注:Python 3.x中,,把 'xxx' 和 u'xxx' 统一成Unicode编码,即写不写前缀 u 都是一样的,而以字节
形式表示的 字符串则必须加上 b 前缀: b'xxx' 。
②ord()和chr()函数
计算字符和对应的ASCII编码
>>>ord('A')#65
>>>cha(65)#'A'
python后来增加了对Unicode的支持,以Unicode 表示的字符串用u''表示
>>>print u'你好'#你好
>>>u'\u0041'#u'A';\u后面是十六进制的Unicode值
③Unicode和UTF-8的互相转换
把 u'xxx' 转换为UTF8编码的 'xxx' 用 encode('utf‐8') 方法:
>>> u'贞贞'.encode('utf-8')
'\xe8\xb4\x9e\xe8\xb4\x9e'
>>> u'ABC'.encode('utf-8')
'ABC'
>>> u'贞贞'.encode('gb2312') #转换成其他格式的
'\xd5\xea\xd5\xea'
len()函数可以返回字符串的长度
>>> len(u'ABC')
3
>>> len(u'贞贞')
2
>>> len('ABC')
3
>>> len('\xe8\xb4\x9e\xe8\xb4\x9e')
6
英文字符转换后表示的UTF8的值和Unicode值相等(但占用的存储空间不同),而中文字符转换后1个Unicode字
符将变为3个UTF8字符,你看到的 \xe4 就是其中一个字节,因为它的值是 228 ,没有对应的字母可以显示,所以
以十六进制显示字节的数值。
把UTF8编码表示的字符串 'xxx' 转换为Unicode字符串 u'xxx' 用 decode('utf‐8') 方法:
>>> 'ABC'.decode('utf-8')
u'ABC'
>>> '\xe8\xb4\x9e\xe8\xb4\x9e'.decode('utf-8')
u'\u8d1e\u8d1e'
>>> print '\xe8\xb4\x9e\xe8\xb4\x9e'.decode('utf-8')
贞贞
④Linux和Windows中,写Python文件时编码注意事项:
Linux前面要申明:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
Windows用Notepad++编辑时,要加申明:# -*- coding: utf-8 -*-,也要把Notepad++设置为UTF8 without BOM编码
三、数据的格式
%d 整数
%f 浮点数
%s 字符串 (不确定时,可用%s,把所有类型转换成字符串)
%x 十六进制整数
eg:
>>> 'hello,%s%d' % ('zhenzhen',352)
'hello,zhenzhen352'
整数是否补0,小数的打印位数也可以用格式指定:
>>> '%5d' % 3
' 3'
>>> '%05d' % 3
'00003'
>>> '%.3f' % 3.1415926
'3.142'
对于Unicode字符串,用法完全一样,但好确保替换的字符串也是Unicode字符串:
>>> u'hello ,%s' % u'zhen'
u'hello ,zhen'
要打印%字符,需用%来转义,表达为%%
>>> '%% %d' % 7
'% 7'