Python学习心得——基础知识(五)
三元运算
1、书写格式
s=值1 if 条件 else 值2
说明:如果条件1成立,‘值1’赋值给变量s,若条件1不成立,‘值2’赋值给变量s
如下图所示:
基本数据类型——set
1、定义
set集合,是无序、不重复的元素集合
2、书写格式
s={1,2,3,4,5}
3、一些常用方法
add——添加元素
difference——找s中存在,e中不存在的集合,并将其赋值给新变量
difference_update——找s中存在,e中不存在的集合,并更新自己
discard——移除指定元素,若指定元素不存在,不会报错。但用remove移除不存在的元素会报错
intersection——找s与e的交集,并将其赋值给新变量
intersection_update——找s与e的交集,并将其更新到s中
isdisjoint——如何没有交集,返回True,否则返回False
symmetric_difference——找s中存在且e中不存在,e中存在且s中不存在的对称差集,并将其赋值给新变量
symmetric_difference_update——找s中存在且e中不存在,e中存在且s中不存在的对称差集,并更新到s中
update——更新
深浅拷贝
一、数字与字符串
定义:对于数字和字符串,赋值、浅拷贝、深拷贝,都是指向同一个内存地址
用图表示如下
二、其它基本数据类型
1、赋值
定义:创建一个变量,该变量指向原来的地址
用图表示如下
2、浅拷贝
定义:只在内存中额外创建第一层数据
用图表示如下
3、深拷贝
定义:在内存中将所有的数据重新创建一份(不包括最后一层,即:python内部对字符串和数字的优化)
用图表示如下
函数
个人理解:就是把一些可重复使用的功能代码封装起来,方便以后直接调用此函数来使用封装的功能。
1、定义函数
def 函数名(参数):
功能代码
返回值
样例:
1 def f1(name): 2 if name=='haoyun': 3 print(True) 4 else: 5 print(False) 6 7 f1('haoyun')
2、参数
普通参数
def f1(name): a=name return(a) print(f1('haoyun'))
默认参数
1 def f1(name,age=19): 2 print('name:%s age:%d'%(name,age)) 3 4 f1('haoyun2016')
动态参数
1 def f1(*args): 2 print(args) 3 4 a=[1,2,3,4,5,6] 5 6 f1(*a)
1 def f1(**kwargs): 2 print(kwargs) 3 4 a={'name':'haoyun2016','age':19,'job':'BOSS'} 5 6 f1(**a)
1 def f1(*args,**kwargs): 2 print(args) 3 print(kwargs) 4 a={'name':'haoyun2016','age':19,'job':'BOSS'} 5 b=[1,2,3,4,5,6,7,8] 6 f1(*b,**a)
扩展:发送邮件实例(引用老师博客:http://www.cnblogs.com/wupeiqi/articles/5453708.html)
1 import smtplib 2 from email.mime.text import MIMEText 3 from email.utils import formataddr 4 5 6 msg = MIMEText('邮件内容', 'plain', 'utf-8') 7 msg['From'] = formataddr(["XXXX",'邮件发送者@126.com']) 8 msg['To'] = formataddr(["邮件内容",'发送邮件对象@qq.com']) 9 msg['Subject'] = "主题" 10 11 server = smtplib.SMTP("smtp.126.com", 25) 12 server.login("邮件发送者@126.com", "邮箱密码") 13 server.sendmail('邮件发送者@126.com', ['发送邮件对象@qq.com',], msg.as_string()) 14 server.quit()
全局变量
1 #全局变量 2 NAME='haoyun2016' 3 def f1(): 4 name='BOSS' #局部变量 5 print(name) 6 print(NAME) 7 f1()
1 #全局变量 2 NAME='haoyun2016' 3 def f1(): 4 name='BOSS' #局部变量 5 global NAME #修改全局变量 6 NAME='BOSS is haoyun2016' 7 print(name) 8 print(NAME) 9 f1() 10 print(NAME)