热饭面试复习【python 基础 】4/4

2022-05-19 17:33:28 浏览数 (1)

前言

python的基础,面试必会

操作excel

代码语言:javascript复制
SZ=xlrd.open_workbook("chaxun.xls")
sz=SZ.sheet_by_name("Sheet1")
ww=copy(SZ)
ww.get_sheet(0).write(1,1,"asdasd")
nrows=sz.nrows
os.remove("chaxun.xls")
ww.save("chaxun.xls")
fname="chaxun.xls"
an=sz.cell_value(1,2)

操作mysql

代码语言:javascript复制
import MySQLdb   
conn = MySQLdb.connect(host="localhost",user="root",passwd="",db="mytest",charset="utf8")
cursor = conn.cursor()
sql="select * from xxx where xx=%s"                                  :设置要上传的sql语句 
key="填空"
param = (key,)                                                        :设置param,key是变量,param为sql语句中的%s
cursor.execute(sql,param)                                            :上传sql语句和param
conn.commit()                                                        :执行命令
n = cursor.fetchall()                                                :n来获取所有的返回内容 是一个二维数组,n[i][j]
for data in cursor.fetchall()
 print '%s'�ta           :显示结果
fetchone()    :得到结果集的下一行
fetchmany()   :得到结果的下几行
conn.close()                                                         :关闭连接
conn.rollback()                                                      :回滚,取消当前事物
crant all on 数据库名字.* to users                                   :把权限给某个用户,加S是全体用户
use test                                                             :选择要使用的数据库
drop database 数据库名字                            :删除数据库
create table 表名 (login varchar(8),uid int ,prid int)               :创建表
drop table  表名           :删除表
insert into 表名 values(值1,值2,值3...)                            :插入行 
update 表名 set 字段1=xxx where 字段2=xxx        :更新表
delete from 表名 where 字段=xxx          :删除记录 不加where就是删除全部记录


发送邮件

代码语言:javascript复制
发送邮件:
import smtplib
from email.mime.text import MIMEText
from email.MIMEMultipart import MIMEMultipart
import datetime
#定义发送邮件的函数
def Send_Mail (Message):
    TODAY = datetime.date.today()
    CURRENTDAY=TODAY.strftime('%Y-%m-%d')
    msg = MIMEMultipart()
    '''
    att = MIMEText(open(r'D:reportaa.xlsx', 'rb').read(), 'base64', 'gb2312') #设置附件的目录
    att['content-type'] = 'application/octet-stream'
    att['content-disposition'] = 'attachment;filename="IMD_EBM.xlsx"' #设置附件的名称
    msg.attach(att)
    '''
    content = str(Message) #正文内容

    body = MIMEText(content,'plain','utf-8') #设置字符编码
    msg.attach(body)

    msgto = '835232404@qq.com' # 收件人地址 多个联系人,格式['aa@163.com'; 'bb@163.com']
    msgfrom = '1074321997@qq.com' # 寄信人地址 ,
    msg['subject'] = 'Finish at '  #主题
    msg['date']=time.ctime() #时间
    
    #msg['Cc']='bb@junbao.net' #抄送人地址 多个地址不起作用

    mailuser = '1074321997@qq.com'  # 用户名
    mailpwd = 'wangzijia1990' #密码
    try:
        smtp = smtplib.SMTP()
        smtp.connect(r'smtp.qq.com')# smtp设置
        smtp.login(mailuser, mailpwd) #登录
        smtp.sendmail(msgfrom, msgto, msg.as_string()) #发送
        smtp.close()
        print "success mail"
    except Exception, e:
        print e,u"失败了"
Send_Mail("aasasa" "aa1111111111撒旦法112")

设计模式-工厂

代码语言:javascript复制
#工厂模式
class LeiFeng():
    def a(self):
        print 'a'
    def b(self):
        print 'b'


class Small(LeiFeng):
    def __init__(self):
        print 'small'

class Big(LeiFeng):
    def __init__(self):
        print 'big'


class Allfactory():
    def creat(self):
        return LeiFeng()


class Smallfactory(Allfactory):
    def creat(self):
        return Small()

class Bigfactory(Allfactory):
    def creat(self):
        return Big()


if __name__ == '__main__':
    myFactory = Smallfactory()

    peo1 = myFactory.creat()
    peo1.a()
    peo1.b()

    peo2 = Bigfactory().creat()

    peo2.a()
    peo2.b()

好了,本节结束!

0 人点赞