发送邮件.py:
 
import smtplib
from email.mime.text import MIMEText
 
def email(receiver, title='标题', body='正文'):
    host='smtp.qq.com' #smtp.163.com
    port=465    #25
    sender='904477955@qq.com'  #davidcheng@163.com
    pwd='cvabe****yhebeab'  #QQ是帐户→POP3下用1毛短信生成的授权码,网易是登录码
 
    msg=MIMEText(body, 'html','utf8')   #正文纯文本是plain
    msg['subject']=title
    msg['from']=sender
    msg['to']=receiver
 
    s=smtplib.SMTP_SSL(host, port)  #smtplib.SMTP('smtp.163.com', 25)
    s.login(sender, pwd)
    s.sendmail(sender, receiver, msg.as_string())
 
    print('The mail %s,to %s,is sended successly.' %(title, receiver))
******************分割线******************
在同目录下的某py文件下使用:
 
from 发送邮件 import email
 
email('1398645374@qq.com','测试邮件','邮件正文正文正文正文正文')
****************************************分割线****************************************
冒泡排序:
 
t=[87, 69, 42, 25, 10]
for y in range(1,len(t)):   #取出第y大;最末大无需排序
    # 每轮内循环的结果是让最大的去了末尾,故下轮比较不需加它
    for x in range(len(t)-y):
        if t[x]>t[x+1]:
            t[x],t[x+1]=t[x+1],t[x]
    print(t)
******************分割线******************
二级排序:先以score排序,score相同的以name排序:
 
class Student:
    def __init__(self,name,score):
        self.name=name
        self.score=score
    def __str__(self):
        return '%s:%d' %(self.name,self.score)
 
L=[Student('Tim',99),Student('Bob',88),Student('Alice',99)]
L=sorted(L,key=lambda x:[x.score,x.name])
print([x.__str__() for x in L])
******************分割线******************
array=['甲','乙','丙','丁','戊'];order=list('qwert')
列表x按列表y作原序排=[array[i] for i in [sorted(order).index(o) for o in order]]
列表x按列表y作升序排=[x[0] for x in sorted(zip(array,order),key=lambda item:item[1])]
******************分割线******************
list、set、dict的快速排序:
容器内各元素的类型要相同,否则无法排序而报错。
 
from sortedcontainers import SortedList,SortedListWithKey
,SortedSet,SortedDict
 
sl=SortedList(range(int(1e5)))
 
总数=len(sl)
元素1的个数=sl.count(1)
序列里有无1234=1234 in sl
sl*=2   #各元素翻倍;如同list*2后再做升序
sl.discard(666)  #删首个,类型要一致,而.remove(value)或.pop(index)在不存在时会报错
del sl[5:20]    #按索引位置批量删除
sl.add(6)   #sl.append(6)或sl.insert(0,6)不行,须append的值≥sl[-1]或insert处的值在左右间
sl+=range(3,7)  #同sl.update(range(3,7)),自动升序了;而extend要list升序且各值≥sl[-1]
#sl[2:9]=range(10,20) #×:修改某个或某些元素时,升序的顺序不能破坏
降序=list(reversed(sl))
按索引提取个区间并降序=list(sl.islice(2,9,True))
按值提取个不包括max的区间并降序=list(sl.irange(5,50,(True,False),True))
 
自定义排序の按末位=SortedListWithKey(map(str,range(999)),lambda x:x[-1])
******************分割线******************
FirstInFirstOut的有序字典:
 
from collections import OrderedDict
 
class FIFO(OrderedDict):
    def __init__(self, capacity=3,*args,**kwargs):
        self.capacity = capacity    #写到super()句后,就报错无capacity属性
        #super(FIFO,self).__init__(*args,**kwargs)及OrderedDict.__init__(self,*args,**kwargs)
        super().__init__(*args,**kwargs)    #等同上行的两种写法
 
    def __setitem__(self, key, value):
        if key in self:
            print('delete existed key:',(key,self[key]))
            del self[key]
        elif len(self)==self.capacity:  #表面批增key,实为逐增,用>=有点画蛇添足
            front=self.popitem(last=False)
            print('delete front key:',front)
        # 如同上文的构造函数,在用到父类的同名函数时,须等到结尾才来调用
        OrderedDict.__setitem__(self,key,value)   #super().__setitem__(key,value)
 
fd=FIFO(3,{'w':7,'x':8,'y':9,'z':0})
print(fd)
fd.update([('a',1),('b',2),('c',3),('d',4),('e',5)])
print(fd)
fd.update({'f':6,'e':9})
print(fd)

发邮件、排序、FIFO的更多相关文章

  1. SQL SERVER 2008配置Database Mail –用SQL 数据库发邮件

    SQL SERVER 2008配置Database Mail –用SQL  数据库发邮件 https://blogs.msdn.microsoft.com/apgcdsd/2011/06/28/sql ...

  2. centos shell基础 alias 变量单引号 双引号 history 错误重定向 2>&1 jobs 环境变量 .bash_history source配置文件 nohup & 后台运行 cut,sort,wc ,uniq ,tee ,tr ,split, paste cat> 2.txt <<EOF 通配符 glob模式 发邮件命令mail 2015-4-8 第十二节课

    centos shell基础知识 alias  变量单引号 双引号   history 错误重定向 2>&1  jobs  环境变量 .bash_history  source配置文件 ...

  3. Selenium 2自动化测试实战37(自动发邮件功能)

    自动发邮件功能 例如,如果想在自动化脚本运行完成之后,邮箱就可以收到最新的测试报告结果.SMTP(Simple Mail Transfer Protocol)是简单邮件传输协议,它是一组用于由源地址到 ...

  4. # PHP - 使用PHPMailer发邮件

    PHPMailer支持多种邮件发送方式,使用起来非常简单 1.下载PHPMailer https://github.com/PHPMailer/PHPMailer,下载完成加压后, 把下边的两个文件复 ...

  5. Linux发邮件之mail命令

    一.mail命令 1.配置 vim /etc/mail.rc 文件尾增加以下内容 set from=1968089885@qq.com smtp="smtp.qq.com" set ...

  6. 测试MailUtils,作用是发邮件

    package cn.itcast.test; import java.io.IOException; import javax.mail.MessagingException; import jav ...

  7. SQL Server定时自动抓取耗时SQL并归档数据发邮件脚本分享

    SQL Server定时自动抓取耗时SQL并归档数据发邮件脚本分享 第一步建库和建表 USE [master] GO CREATE DATABASE [MonitorElapsedHighSQL] G ...

  8. 学习linux之用mail命令发邮件

    背景 这两天工作比较闲,网上各种冲浪(这个词暴露我的网龄了).看到一位大神的文章更闲 <>.端详一番,原来是用R语言拼接字符串后用shell命令发出去.发现shell命令既然还能直接发邮件 ...

  9. linux mail利用外部邮箱地址发邮件

    mail命令发送邮件需要sendmail或postfix服务 三种常用格式发信 mail -s "标题" xxx@xxx.xxx #第一种方法,你可以把当前shell当成编辑器来用 ...

  10. 打电话,发短信,发邮件,app跳转

    1.打电话 - (IBAction)callPhone1:(id)sender { NSURL *url = [NSURL URLWithString:@"tel://18500441739 ...

随机推荐

  1. Eclipse中logcat过滤器的使用

    logcat里信息繁多,用过滤器可以方便快捷的找到我们要查找的信息. 我们可以在打开Eclipse之后,选择Window –> Show View ->Other菜单,然后在Android ...

  2. 日期控件 DatePicker 在ie8不能用

    过个年,日期控件DatePicker在ie8下突然不能用了,程序也没升级,很是奇怪. 把ie8的“禁用脚本调试”去掉,再次运行,发现提示有脚本错误. 想着可能是兼容性问题,于是把兼容性视图打开运行,还 ...

  3. Ionic3--数据存储

    1.使用sqlite cordova plugin add cordova-sqlite-storage --save npm install --save @ionic/storage (本地存储) ...

  4. hdu 5441 Travel (2015长春网赛)

    http://acm.hdu.edu.cn/showproblem.php?pid=5441 题目大意是给一个n个城市(点)m条路线(边)的双向的路线图,每条路线有时间值(带权图),然后q个询问,每个 ...

  5. 20172325 2018-2019-2 《Java程序设计》第五周学习总结

    20172325 2018-2019-2 <Java程序设计>第五周学习总结 教材学习内容总结 本次学习第九章内容,主要学习查找和排序. 查找 查找的定义:是一个过程,即在某个项目组中寻找 ...

  6. [Robot Framework] 怎么写动态等待?

    举例:Robot Framwork+WhiteLibrary,等待元素可用或不可用 Wait Until Object Is Enabled Wait Until Object Is Not Enab ...

  7. [AI]神经网络章1 神经网络基本工作原理

    神经元细胞的数学计算模型 神经网络由基本的神经元组成,下图就是一个神经元的数学/计算模型,便于我们用程序来实现. 输入 (x1,x2,x3) 是外界输入信号,一般是一个训练数据样本的多个属性,比如,我 ...

  8. unwind

    unwind:可以将一个列表展开为一个行的序列1.列表 unwind[1,2,3]as x return x2.创建唯一列表with[1,2,3,3]as coll unwind coll as x ...

  9. tomcat探索

    双击apache-tomcat-7.0.64.exe,一路默认点. 静态页路径 C:\Program Files\Apache Software Foundation\Tomcat 7.0\webap ...

  10. linux和普通文本的换行问题

    情景一: 普通文本 vim操作换行   :%s#xxx#\n#g 情景二: linux环境换行 vim   :%s#xxx#\r#g