python文件头
#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2017年5月9日 @author: Administrator '''
python主入口
#!usr/bin/python # -*- coding: utf-8 -*- ''' Created on 2017牛5月9日 @author: Administrator ''' ''' 通俗的理解name == '__main__':假如你叫小明.py,在朋友眼中,你是小明(name == '小明');在你自己眼中,你是你自己(name == '__main__') ''' def ceshi(): name='name in fun' print(name) name='test' if __name__ == '__main__': ceshi() print(name)
模块导入
方式1. 导入模块中的函数 from ceshi.py import fun 方法2: 导入整个模块(ceshi模块) import ceshi 方法3:导入工程中的任何模块 import os,sys BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) #获取到工程路径 sys.path.append(BASE_DIR) #工程路径加入到 模块搜索路径 from day1 import note1 #导入模块 print(dir(note1))
获取当前文件路径
#!usr/bin/python # -*- coding: utf-8 -*- ''' Created on 2017年5月9日 @author: Administrator ''' import os,sys #输出本文件的绝对路径 print(os.path.abspath(__file__)) #输出本文件的上级目录,op.path.dirname()可以多层 print(os.path.dirname(os.path.abspath(__file__))) sys.path.append(os.path.dirname(os.path.abspath(__file__))) from tools import base result=base.js(1,2,'+') print(result)
例子格式化输出
#!usr/bin/python # -*- coding: utf-8 -*- ''' Created on 2017年5月9日 @author: Administrator ''' '''例子格式化输出 #### %s:字符串 %d:十字制数字 ''' _str1="abc" _str2="trfc" _num1=10 _num2=20 print(''' _str1=%s, _str2=%s, _num1=%d, _num2=%d ''' %(_str1,_str2,_num1,_num2))
例子三元运算
'''例子三元运算 a,b=3,5 c=a if a<b else b # 表达式:值1 if 条件 else 值2 结果 条件为true,返回值1,否则返回值2 print(c) '''
例子文件操作
描述
文件读操作是有个句柄。读过后句柄就往后走了。想重新读上面的内容 需要设置句柄
文件打开模式
最常用的r和r+ r,只读模式(默认)。 w,只写模式。【不可读;不存在则创建;存在则删除内容;】 a,追加模式。【可读; 不存在则创建;存在则只追加内容;】 "+" 表示可以同时读写某个文件 r+,可读写文件。【可读;可写;可追加】 w+,写读 a+,同a "U"表示在读取时,可以将 自动转换成 (与 r 或 r+ 模式同使用) rU r+U "b"表示处理二进制文件(如:FTP发送上传ISO镜像文件,linux可忽略,windows处理二进制文件时需标注) open('文件名',mode='rb') #注意这里不能给编码,二进制文件不存在编码 rb wb ab
例子-模式
fn = open('yesterday',encoding='utf8',mode='r') #参数路径,编码 print(fn.read())
循环读文件1,用这种方法是 只保存一行在内存中,所以高效
fn = open('yesterday',encoding='utf8',mode='r') for line in fn: print(line.strip())
循环读文件1,用这种方法是 一次性把整个文件内容读出来放在内存里。大文件的话效率低,而且占用内存大
fn = open('yesterday',encoding='utf8',mode='r') for line in fn.readlines(): print(line.strip())
打开文件推荐方法,此方法不用手动去关闭文件
with open('yesterday',encoding='utf8',mode='r') as fn: for line in fn: print(line.strip())
#例子:句柄的操作,tell()和 seek()
fn = open('yesterday',encoding='utf8',mode='r') print(fn.readline()) print(fn.tell()) fn.seek(0) print(fn.readline())
#列子,写文件
import os file_path="d:\111.txt" if not os.path.exists(file_path): fn = open(file_path,mode='a') fn.close() else: with open(file_path,encoding='utf8',mode='a+') as fn: fn.write("this is ceshi ... ") fn.write("this is ceshi 22222 ... ") fn.close()
循环和控制
例子if_elif_else
'''例子if_elif_else 例子if_else _name='hui' _pwd='hui123' name=input("name:") pwd=input("pwd:") if _name==name and _pwd==pwd: print("login sucess") else: print("login fail") 例子: if elif else age_of_alex=35 guessAge=int(input('input guess age :')) if guessAge==age_of_alex: print('is right') elif guessAge>age_of_alex: print('think to small...') else: print('think to big...') 例子 if 取反 import os dir='D:\tmp' if not os.path.exists(dir): os.mkdir(dir) '''
例子while
'''例子while 例子while count=0 while count < 3: print(count) count+=1 例子2:while count=0 while True: if count == 10: break print(count) count+=1 例子3: while, else:为while正常走完后执行的语句。如果被break破坏了 不执行else: age_of_alex=35 count=0 while count<3: guessAge=int(input('input guess age :')) if guessAge==age_of_alex: print('is right') break elif guessAge>age_of_alex: print('think to small...') else: print('think to big...') count+=1 else: print('while end') '''
例子for
'''例子for 例子for for i in range(5): print('loop:',i) 例子2:for。注意 else:为for正常走完后执行的语句。如果被break破坏了 不执行else: age_of_alex=35 for i in range(3): guessAge=int(input('input guess age :')) if guessAge==age_of_alex: print('is right') break elif guessAge>age_of_alex: print('think to small...') else: print('think to big...') else: print('while end') 例子3:for 注意: range三个参数 @0 开始 @10 结束 @2步长 。如果没有给 默认为1 for i in range(0,10,2): print('loop:',i) 例子4:for 注意: i%2 == 0 为偶数。 for i in range(0,10): if i%2 == 0: continue print('loop:',i) '''
数据类型
例子:字符串操作
'''例子:字符串操作 __abc__ 此命名的为内容方法。不用管 #例子:正则替换字符串 import re reg=' +' str="abc 123 23 1234" result,number=re.subn(reg,' ',str) print(result) #例子:首字母大写 name='alex' print(name.capitalize()) #例子:统计单词数量 name='alex' print(name.count('ex')) #例子:把字符串放在中间 效果:-----------------------alex----------------------- name='alex' print(name.center(50,"-")) #例子:判断字符串以什么为结尾,可用来判断邮件地址 email='abcd@qq.com' if email.endswith('.com'): print('true') else: print('false') #例子:定义 的空格数 name='刘 德华' print(name.expandtabs(tabsize=10)) #例子:找索引1 name='我的名字是刘德华' print(name.find('华')) #例子:找索引2 name='我的名字是刘德华' print(name.index('华')) #例子:模式字符串format_map name='my name is {name},i am {year} old' print(name.format_map({'name':'andy','year':52})) #例子:判断英文和数字,不包含特殊字符 效果:True name='abc123' print(name.isalnum()) #例子:判断纯英文 name='abc' print(name.isalpha()) #例子:判断整数 print('2541'.isdigit()) #True print('-9'.isdigit()) #False #例子:判断纯数字 print('123'.isnumeric()) #True print('10.2'.isnumeric()) #False #例子:判断是否合法的变量名 print('abc'.isidentifier()) #例子:判断小写 print('abc'.islower()) #True print('Abc'.islower()) #False #例子:判断大写 print('abc'.isupper()) #False print('Abc'.isupper()) #False print('ABC'.isupper()) #True #例子:判断是否首字母大写 print('Andy Is Name'.istitle()) #True print('Andy is Name'.istitle()) #False #例子:列表变字符串 name_list=['andy','alex','hui'] print(''.join(name_list)) #andyalexhui print(','.join(name_list)) #andy,alex,hui #例子:ljust,rjust print('abc'.ljust(50,'-')) #50个 不够在右边加- print('abc'.rjust(50,'-')) #50个 不够在左边加- #例子:大小写转换 print('abc'.upper()) print('ABC'.lower()) #例子:去空格回车 print(' abc '.strip()) #去两边 print(' abc '.lstrip()) #去左边 print(' abc '.rstrip()) #去右边 #例子:自定义加密解密 p_en=str.maketrans('abcdefghijklm','~!@#$%^&*()_+') #加密表 p_de=str.maketrans('~!@#$%^&*()_+','abcdefghijklm') #解密表 print('defklmabcd'.translate(p_en)) #加密 print('#$%)_+~!@#'.translate(p_de)) #解密 #例子:replace替换 print('alex li'.replace('l', 'L')) print('alex li'.replace('l', 'L',1)) #例子:切隔 print('alex li'.split()) print('alex+li'.split('+')) #例子:字符串中大写转小写,小写转大写 print('alex ABCDEFG li'.swapcase()) 例子:格式化字符串方法1 name=input('name:') age=input('age:') sex=input('sex:') address=input('address:') info='-----info of %s----------- name:%s age:%s sex:%s address:%s '%(name,name,age,sex,address) print(info) 例子:格式化字符串方法2 name=input('name:') age=input('age:') sex=input('sex:') address=input('address:') info='-----info of {0}----------- name:{0} age:{1} sex:{2} address:{3} '.format(name,age,sex,address) print(info) 例子:格式化字符串方法3 name=input('name:') age=input('age:') sex=input('sex:') address=input('address:') info='-----info of {_name}----------- name:{_name} age:{_age} sex:{_sex} address:{_address} '.format(_name=name,_age=age,_sex=sex,_address=address) print(info) 例子:长度 abc="123456789" print(len(abc)) 例子:切片前5 abc="123456789" print(abc[0:5]) #开始位包括,结束位不包括 例子:python3.0字符串转二进制和二进制转字符串 python3.0字符串默认为unincode abc="你好" abc_2=abc.encode(encoding='utf_8') #字符串转二进制 print(abc_2) ttt=abc_2.decode('utf-8') #二进制转字符串 print(ttt) 例子:字符串转二进制--2 a='国家' print(bytes(a,encoding='utf-8')) 例子utf8转gbk,python2.7 默认字符串为assic码 # -*- coding: utf-8 -*- 这个是文件编码 abc_utf8="你好" abc_unicode=abc_utf8.decode('utf_8') #转unicode abc_gbk=abc_unicode.encode('gbk') #unicode 转 gbk print(abc_gbk) #例子字符串打印颜色 # Python中字符串颜色 # 格式:033[显示方式;前景色;背景色m # # 说明: # 前景色 背景色 颜色 # --------------------------------------- # 30 40 黑色 # 31 41 红色 # 32 42 绿色 # 33 43 黄色 # 34 44 蓝色 # 35 45 紫红色 # 36 46 青蓝色 # 37 47 白色 # 显示方式 意义 # ------------------------- # 0 终端默认设置 # 1 高亮显示 # 4 使用下划线 # 5 闪烁 # 7 反白显示 # 8 不可见 print('