一,编码
python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill)
ASCII(American Standard Code for Information
Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8
位来表示(一个字节),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号。
对于中文,使用utf-8对于内存的使用: 分别对于英文字符和中文字符的存储是分开的 英文使用8位 中文使用24位.这样可以灵活并充分利用内存空间
所以在每一个.py文件的声明中都需要加上:
# -*- coding:utf-8 -*- #使用utf-8的字符集
二,注释
1,单行注释 使用 #开头为注释内容
2,多行注释 可以使用 """ 开始 """结束
#the python script for system info get #普通单行注释文件 """name = raw_input("") if name == "xx": print "xxxx" """#多行注释使用方法
三,库和pyc文件的执行顺序
1,如果库文件内容与pyc文件一致的话,优先执行pyc文件,这样会给python运行加速
2,如果不一致先读取库文件内容
四,函数
1,对于字符串来说,假如name1="1" name2=name1 那么name1再次变更为 name1="2" 再次执行name2的值还会是 "1" (这是相对于普通字符串的赋值)原因:因为字符串不能做更改,修改后的字符串必须重新创建
2,如果是引用(字符串)类型的函数,只要有更改,就会在内存中新开辟一块空间。如果是值类型,只要有新改变就会在原有基础上进行增量或者减量统一变更。
3,赋值字符串 重复使用同一字符串的话 在一个范围之内不会开辟新地址,如果超出了缓冲池的范围就不会在重用地址
4,python内置的缓冲池地址id为 -5~257
五,python程序执行流程
1,加载内存 2,词法分析 3,语法分析 4,编译 5,字节码 6,机器码
2,ASCII 8位, unicode 最少16位 ,utf-8 优化内存存储空间
六,变量
1,变量名首位不能为数字2,不能为系统内置变量名
2,raw_input()输入
3,import getpass 输入字符不可见模块
七,数据类型
1,单值
数字
整数(32位系统位数 最多为32位 限制范围为 -2**31~2**31-1)
长整型
浮点型
复数
布尔值(true 1 &false 0)
字符串
2,集合
列表
元祖#与列表区别是 ()[] 元祖不可修改,列表可修改
字典
哈希表
3,type 来查看变量的类型
八,参数
1,占位符 >>> name = ‘im %s .age %d‘ % (‘wq‘,222222) >>> name ‘im wq .age 222222‘ “%s”(代表字符串) “%d”(代表数字) >>> name = "wqw %s %d" >>> name %("wq",4444) ‘wqw wq 4444‘
2,format
name = "i am {0},age{1}" name.format("wq", 18) ‘i am wq,age18‘ 3,name = "i am {0},age{1}" new_name = name.format("wq", 18) print new_name
九 ,索引
1,
>>> name = "wenqiang" >>> print name[0:4] #不包括4 ,-1代表最后一个 wenq
2,
>>> name = "wenqiang" >>> print len(name) 8 #len 可以计算出字符串的长度
十,去空格
print name.strip()#去掉两边的空格 print name.lstrip()#去掉左边的空格 print name.rstrip()#去掉右边的空格
十一,分割
print name.split(;) #制表符=\t 变成列表
十二,列表追加
name_list.append(‘wenqiang‘)
十三,列表删除
del name_list[0]
十四,将列表变为字符串
"_".join(name_list)
十五,循环
1, for ele in name_list:
if ele == "wq": #找到wq
print "find"#本次循环结束
continue #重新执行
if ele == "nihao":#再次执行
print "yohoo"
break
2, while;
while 1==1:
print "true"死循环
十六,字典
dict 字典,键值对
person = {
"name":"alex",
"age":18,
"xingbie":"nv",
}
通过person来找字典中相应的值。
循环:person = {
"name":"alex",
"age":18,
"xingbie":"nv",
}
for k,v in person.items():
print k
print v
print ‘======‘
age
18
======
name
alex
======
xingbie
nv
====== #字典的输出是无序的
person = {
"name":"alex",
"age":18,
"xingbie":"nv",
}
print person.keys()
print person.values()
打印出所有key 所有values
dict 字典 键值对
特殊的for 循环
keys() -->列表
values()-->
items -->仅仅适用于for
十七,运算
age = 1
age += 1 #age=age+1
十八,文件的操作
1,file_obj = file(‘url‘,‘mode‘)#url是地址,mode是文件的操作模式 r 只读 ,w只写,a追加,w+只读只写 如果该文件已存在将其覆
盖。
#file_obj.read() #将所有内容读入内存
#file_obj.readlines() #将所有内容读入内存,并且将内容分行
#for line in file_obj.xreadlines() #一行一行的读文件
print line
#for line in file_obj #每次循环只读一行,避免全部读入内存
#file_obj.write()写入文件
#file_obj.writelines()一行行写
#file_obj.close()#关闭文件
file_obj = file(‘E:\log.txt‘,‘r‘)
line_list = file_obj.readlines()
for ele in line_list:
line = ele.strip()
value_list = line.split(‘;‘)#变成列表并以;分割
last_value = int(value_list[-1]) #转换成整型
last_value += 1
value_list[-1] = last_value
value_str = ‘;‘.join(value_list)
file_obj.write(‘‘)