'''
加缩进 Ctrl+]
减缩进 Ctrl+[
Alt+3 Alt+4 注释、取消注释代码行
用;分隔一行的多句代码
字符串str编码常用类型:utf-8,gbk,gb2312,cp936,等
在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码
六个标准的数据类型:Numbers(数字),String(字符串),List(列表),Tuple(元组),Dictionary(字典),Set(集合)
其他数据类型:日期,布尔
Numbers(数字):整型(Int),长整型(long integers),浮点型(floating point real values),复数(complex numbers)
列表可以修改,可以根据要求添加元素,元组和字符串则不能修改
*args是可变参数,用于元组, 可变参数就是传入的参数个数是可变的,[0-n]个
**kw是关键字参数,用于字典
def foo(x,*args,**kwargs):
print(x)
print(args)
print(kwargs)
foo(1,2,3,4,y=1,a=2,b=3,c=4)#将1传给了x,将2,3,4以元组方式传给了args,y=1,a=2,b=3,c=4以字典的方式给了kwargs
if __name__ == "__main__":
#这个表示执行的是此代码所在的文件。 如果这个文件是作为模块被其他文件调用,不会执行这里面的代码。 只有执行这个文件时, if 里面的语句才会被执行。 这个功能经常可以用于进行测试。
Python良好的生态,对于加密解密技术都有成熟的第三方库。大名鼎鼎的M2Crypto和Pycrypto
Gcc是C语言的编译器,使用gcc由C语言源代码文件生成可执行文件
通常安装标准的python模块,只需要在模块的根目录下运行:
python setup.py build
python setup.py install
#python setup.py build # 编译
#python setup.py install #安装
#python setup.py sdist #生成压缩包(zip/tar.gz)
#python setup.py bdist_wininst #生成NT平台安装包(.exe)
用逗号分割模块名称就可以同时导入多个模块
from A import b 相当于 import A b=A.b
import A as B,给予A库一个B的别称
python只会在sys.path这个变量,里面的路径中找可能匹配的package和module
一个package跟一个普通文件夹的区别在于,package的文件夹中多了一个__init__.py文件,
__init__.py文件可以是空的,也可以在里面添加一些代码,这些代码会在import这个包的时候运行
作为module的文件类型有".py"、".pyo"、".pyc"、".pyd"、".so"、".dll"
python 命名规范
包名/模块名:小写字母开头,后接单词以_分隔
(包名可以类名相同也可不同)
package_name module_name Module
类名:大写开头,后接单词首字母大写
ClassName
方法名/函数名/普通变量名:则是小写开头,后接单词首字母大写
method_name function_name variable_name
methodName functionName variableName
常量:全部使用大写字母,并且以下划线分隔单词
MAX_OVERFLOW
'''
cmd中运行命令
pip install GitPython
pip install pymysql
#python安装第三方模块
#注意将pip.exe加入到环境变量
os.__file__
#查看method文件路径
import selenium
#导入某包
from selenium.webdriver import chrome
import selenium.webdriver.chrome
#导入某子包
from selenium.webdriver.common import keys
#导入某子包中的某.py文件
from selenium.webdriver.common.keys import Keys
#导入某子包中的某.py文件中类对象
import *
#导入库中所有的类,函数,变量等等信息,这样在调用相关函数或者变量的时候,就不用加Tkinter前缀了
*args
#是非关键字参数,用于元组
**kw
#是关键字参数,用于字典
def 函数名(参数名1,参数名2):
#自定义函数
class People:
def __init__(self, n, a):
self.name=n
self.gender=g
#自定义新类
hqj=people(hqj,gril)
#实例化对象
class C(A, B):
# 继承类 A 和 B
----------------------------' function '-----------
type()
#查看数据类型
id(object)
#返回内存地址,[-5,256]小整数池和字符串id相同
int(x)
#取整
len('hqj')
#字符串长度
raw_input('提示')
raw_input('year:\n'))
#换行
range(1,5,2)
#返回一个整数列表,不包括stop
isinstance(object, class-or-type-or-tuple) -> bool
#返回对象是否是类的实例或子类的实例
ord('A') -> integer
#character string返回integer ordinal
chr(65) -> characterord
#integer ordinal 返回character string
list(reversed(a))
#列表反转
md5_data = '|_|'.join(md5_list)
#将字符串、元组、列表中的元素以指定的字符连接生成一个新的字符串
os.sep
#Linux下os.sep就是‘/’,windows下os.sep就是‘\’
---------------------------------语句-----------------------------------------
for
#循环
while
#循环
while True:
#无线循环,常用语端口监听
if 条件一执行代码 else 非条件执行代码
if 条件一执行代码 elif 条件二执行代码 #中间可插入多个elif
if 条件一执行代码 elif 条件二执行代码 else 非条件执行代码 #中间可插入多个elif
#条件
try:操作 except: 发生异常执行代码 else:没有异常执行这块代码
try:操作 except Exception,e: print " %s" % (remote_file_j,repr(e)) else:没有异常执行这块代码
try:抛出异常 finally:不管有无异常都执行代码
#异常
break语句
#结束当前循环
return s
#终止函数运行,返回值
columns=[]
for row in reader:
column=row[0]
columns.append(column)
等价于
columns = [row[0] for row in reader]#返回list
for a,b in [('a1','b1'),('a2','b2')]: print a,b
for a,b in [['a1','b1'],['a2','b2']]: print a,b
for i in range(len(a)):
if (i != ord('x')) and (k != ord('x')) and (k != ord('z')):
if not isinstance(n, int) or n <= 0 :
if rownum == 'None':
---------------------------------运算符-----------------------------------------
'算数运算符'
%
#取余
18230179/28482
#除法 返回640
from __future__ import division
18230179/28482
#真正除法 返回640.0596517098519
'赋值运算'
a[i],a[N - i - 1] = a[N - i - 1],a[i]
str1,str2 = str2,str1
a = 3
#一个等号是赋值
#python中对象,赋值后是同一地址,如果是可变对象,对其中一个修改会影响到另一个,如果要生成完全新的对象,应使用deepcopy
#import copy
#data1=copy.deepcopy(data)
可变变量,list列表dict字典
不可变量, 数值型,字符串,元组
*=
#乘法赋值
+=
#加法赋值
'比较运算符'
3 == 3
#两个等号是判断是否相等,返回True或False
!=
#不等于
'位运算符'
&
|
^
~
'逻辑运算符'
x and y
#返回bool/返回 y 的计算值
x or y
#返回bool/x=0,返回y的计算值,x!=0,返回x
not x
#返回bool
'成员运算符’
in
#在指定的序列中找到值返回 True,bool
not in
#在指定的序列中没有找到值返回 True,bool
'身份运算符'
is
#返回bool
is not
#返回bool
---------------------------------其他-----------------------------------------
\n #换行
exit(0)
#无错误退出
exit(1)
#有错误退出
占位符:%s #字符串 %d #整数 %f #浮点型
print "%d*%d=%d" % (i, j, i*j)
print 'orignal number:',number
student.append(['','',[]])
书写格式:\033[+显示方式;前景色;背景色m +\033[0m
print('\033[1;31m红色字体\033[0m')
print('\033[1;33m黄色字体\033[0m')
print('\033[1;32m绿色字体\033[0m')
print('\033[1;34m蓝色字体\033[0m')
print('\033[1;31m{0}:{1}|{2}\033[0m'.format(i,res[0][i],res[1][i]))
#带颜色打印
< (默认)左对齐、> 右对齐、^ 中间对齐,例:
print('{:<40}{:>40}'.format(message.topic,data))
#左对齐
print (repr(usecase))
#打印显示不可见字符
print(json.dumps(json.dumps(a,ensure_ascii=False)))
#print 没有转义字符:转成字符串两次
python定时任务