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('