python_day3[set,函数,全局变量]

一、set集合

  1、Set集合特点无序、不重复,可嵌套

  2、set集合创建规则set = {"123","234"}

  字典创建规则:dic = {“Key”:"345"}

  列表创建规则:li = []

  元组:ages  = (12,33,22,45,67) 或 ages = tuple((21,32,43,54,74))

  元组转换为列表:list((22,3,4,5,))

  创建集合方式:

  1)直接在集合中添加元素:

   S1 = {11,33}

  2) 创建空集合:

    S2 = set()     ---->空集合在内存空间调用—_init_方法

  3)将列表转换至集合:

    S3 = set([22,33,4,44,55,])    --->将列表加入新集合,新的集合则循环列表中的元素,如列表中有相同的元素,则只显示一个

  3、操作集合

  1)添加元素:add   单个元素添加

  2)清楚集合中所有元素:clear

set = {22,33,4,4,66}
set.add(99)   #添加元素99至集合
print(set)
set.clear()    #清楚集合中元素
print(set)

  3)difference用法

S1 = {22,33,44,55.}
S2 = {33,44,55,66}
S3 = S1.difference(S2)   #把S1中存在值,S2中不存在值赋值给S3
print(S3)

  4)symmetric_difference用法

S1 = {22,33,44,55.}
S2 = {33,44,55,66}
# S3 = S1.difference(S2)   #把S1中存在值,S2中不存在值赋值给S3
# print(S3)
S4 = S1.symmetric_difference(S2)  #对称差值赋值给S4,对称差值即指的是吧S1和S2中不同的值取出来赋值S4
 print(S4)

  5)difference_update用法

S1 = {22,33,44,55.}
S2 = {33,44,55,66}
# S3 = S1.difference(S2)   #把S1中存在值,S2中不存在值赋值给S3
# print(S3)
# S4 = S1.symmetric_difference(S2)  #对称差值赋值给S4,对称差值即指的是吧S1和S2中不同的值取出来赋值S4
# print(S4)
S1.difference_update(S2)   #把S2中与S1中不同的值,更新至新的S1中,S1中做所有元素值则发生变化,S1
print(S1)

  6)symmetric_difference_update用法

 1 S1 = {22,33,44,55.}
 2 S2 = {33,44,55,66}
 3 # S3 = S1.difference(S2)   #把S1中存在值,S2中不存在值赋值给S3
 4 # print(S3)
 5 # S4 = S1.symmetric_difference(S2)  #对称差值赋值给S4,对称差值即指的是吧S1和S2中不同的值取出来赋值S4
 6 # print(S4)
 7 # S1.difference_update(S2)   #把S2中与S1中不同的值,更新至新的S1中,S1中做所有元素值则发生变化,S1
 8 # print(S1)
 9 S1.symmetric_difference_update(S2)   #把S1中与S2中不同的值,打印出来,
10 print(S1)

  7)discard:移除指定元素,不存在不报错

S1 = {22,33,44,55,}
S1.discard(33)    #移除S1集合中的33元素
print(S1)
S1.discard(11111)
print(S1)

  8)remove:移除指定元素,不存在则报错

  9)pop:随机移除集合中的元素

1 S1 = {22,33,44,55,}
2 ret = S1.pop()   #把随机移除的元素取出并赋值给ret
3 print(S1)
4 print(ret)

  10)intersection:取出两个集合交集

1 S1 = {22,33,44,55,}
2 S2 = {33,44,55,66}
3 S3 = S1.intersection(S2)  #取出S1和S2交集并赋值给S3
4 print(S3)

  11)intersection_update:去两个集合交集并赋值给新的集合

  

  12)union:集合并集

1 S1 = {22,33,44,55,}
2 S2 = {33,44,55,66}
3 S1.union(S2)   #取出S1和S2中的并集
4 print(S1)

  13)update:把列表中多个元素同时添加至集合中

1 S1 = {22,33,44,55,}
2 li = [66,77,88,99]  #列表
3 S1.update(li)      #将列表中的元素全部加入值集合中
4 print(S1)

1 S1 = {22,33,44,55,}
2 # li = [66,77,88,99]  #列表
3 # S1.update(li)      #将列表中的元素全部加入值集合中
4 # hh = ("hh","jj","kk",)   #将元组中各个元素同时加入至集合中
5 # S1.update(hh)
6 li = "hjkdss"
7 S1.update(li)
8 print(S1)

  二、函数

  1)函数编写规范:

  def:表示创建函数的关键字

  函数名:即指自己定义的函数名,后续则根据函数名调用函数

  函数体:指函数中一系列的逻辑计算代码

  (参数):为函数体提供数据

  返回值:当函数执行完后,可以根据调用者返回数据

 1 def sendmail():
 2     try:         #try捕捉异常开始
 3         import smtplib
 4         from email.mime.text import MIMEText
 5         from email.utils import formataddr
 6
 7         msg = MIMEText(‘邮件内容‘, ‘plain‘, ‘utf-8‘)
 8         msg[‘From‘] = formataddr(["武沛齐", ‘[email protected]‘])
 9         msg[‘To‘] = formataddr(["走人", ‘[email protected]‘])
10         msg[‘Subject‘] = "主题"
11         server = smtplib.SMTP("smtp.126.com", 25)
12         server.login("[email protected]", "WW.3945.59")
13         server.sendmail(‘[email protected]‘, [‘[email protected]‘, ], msg.as_string())
14         server.quit()
15     except:
16         #发送失败返回False
17         return False    #在函数只一旦执行return,则终止整个程序的执行过程
18     else:
19         #发送成功返回True
20         return True   #将发送成功的返回值赋值给sendmail
21 ret = sendmail()
22 print(ret)
23 if ret == True:     #如果返回值为True,表示邮件发送成功
24     print("发送成功") ;
25 else:                #返回值为False,表示邮件发送失败
26     print("发送失败") ;
27 # sendmail()    #执行邮箱函数

  2)函数参会化

  A:普通参数:即指实参与形参一一对应

  B:默认参数:即指在形式参数中设置默认的值即可,【必须放在参数列表的最后面】

  C:动态参数

 1 def sendmail(qq):  #qq为传递的动态参数
 2     try:
 3         import smtplib
 4         from email.mime.text import MIMEText
 5         from email.utils import formataddr
 6
 7         msg = MIMEText(‘邮件内容‘, ‘plain‘, ‘utf-8‘)
 8         msg[‘From‘] = formataddr(["武沛齐", ‘[email protected].com‘])
 9         msg[‘To‘] = formataddr(["走人", ‘[email protected]‘])
10         msg[‘Subject‘] = "主题"
11         server = smtplib.SMTP("smtp.126.com", 25)
12         server.login("[email protected]", "WW.3945.59")
13         server.sendmail(‘[email protected]‘, [‘qq‘, ], msg.as_string())
14         server.quit()
15     except:
16         return ("BB");    #发送成功返回值为BB
17     else:                 #发送失败返回值为AA
18         return ("AA")
19 while True:
20     mm = input("请输入邮箱地址:")    #把输入动态参数赋值给mm
21     result = sendmail(mm)    #输入动态参数结果值赋值给result
22     if result == "CB":    #如果输入动态参数值与返回成功值相等,则邮件发送成功,否则发送失败
23         print("发送成功")
24     else:
25         print("发送失败")
26 # sendmail()

1 def lcj(name,age = 19):
2     print  %(name,age)
3 lcj("xiaoluo",21)   #指定传递实参

1 def lcj(lit):
2     print (lit)
3 lit = [24,5,6,7,7,8,‘ew‘,‘h‘,3,]  #把列表中每一个元素传递给形参
4 lcj(lit)      #将lit实参作为传递参数给形参

* :默认将传入的参数,全部放值在元组中,处理按照顺序传递的值给形参

1 def hh(*lcj):  #形参前加一个*,表示可以讲一个列表中所有元素最为一个元祖传递给形参
2     print(lcj,type("lcj"))
3 hh(22,3,4,5,6,"ew","er",43,)
4 li=[77,99,00,"hh","kk",99]   #列表
5 hh(li)

1 def hh(*lcj):
2     print(lcj,type("lcj"))
3 li=[77,99,00,"hh","kk",99]   #列表
4 hh(*li)   #将列表中的每一个元素转换至元祖中的每一个元素里面

** :动态加两个*  传的是字典【key,value】,程序会把dic中的元素赋值给形参

1 def F1(**agrs):
2     print(agrs,type(agrs))#type打印出agrs数字类型为字典
3 F1(n1="lcj",n2="xiaoluo")  #n1和n2为字典中key值,lcj和小罗为字典中传递的value

万能参数:*args,**args[一个*的必须放在前面]

1 def F1(*args,**args2):    #一个*的必须放在前面
2     print(args,type(args))#type打印出args,args2数字类型
3     print(args2,type(args2))
4 F1(22,33,4,K1="ww",K2="ee")

 同时传递多个实参:默认情况多个实参与多个形参是一一对应

 1 def sendmail(qq,context,context02):  #qq为传递的动态参数=形参,context为传递的内容
 2     try:
 3         import smtplib
 4         from email.mime.text import MIMEText
 5         from email.utils import formataddr
 6
 7         msg = MIMEText(‘context‘,‘context02‘, ‘plain‘, ‘utf-8‘)
 8         msg[‘From‘] = formataddr(["武沛齐", ‘[email protected]‘])
 9         msg[‘To‘] = formataddr(["走人", ‘[email protected]‘])
10         msg[‘Subject‘] = "主题"
11         server = smtplib.SMTP("smtp.126.com", 25)
12         server.login("[email protected]", "WW.3945.59")
13         server.sendmail(‘[email protected]‘, [‘qq‘, ], msg.as_string())
14         server.quit()
15     except:
16         return ("BB");    #发送成功返回值为BB
17     else:                 #发送失败返回值为AA
18         return ("AA")
19 while True:
20     mm = input("请输入邮箱地址:")    #把输入动态参数赋值给mm
21     result = sendmail(mm,"SB","hh")    #mm,"SB","hh"传递参数即为实参
22     if result == "BB":    #如果输入动态参数值与返回成功值相等,则邮件发送成功,否则发送失败
23         print("发送成功")
24     else:
25         print("发送失败")
26 # sendmail()

  D:指定参数

1 def lcj(name,job):
2     print(name,job)
3     # return True
4 lcj("hh","jj")   #默认实参向形参一一传值
5 lcj( job ="IT", name ="xiaoluo")  #执行形参

  F:字符串格式化输出

1 S1 = "I am {0},age{1}".format("hh",12)     #0和1为元素占位符,把hh和12分别传递给占位符0和1,常用的占位符%s %d %f
2 print(S1)
3 S2 = "I am {name},age{age}".format(name="lcj",age=21)  #指定占位符位置
4 print(S2)
5 dic= {"name":"kk","age":23}
6 S3 = "I am {name},age{age}".format(**dic)  #添加两个**,表示把字典中的所有元素赋值给S3
7 print(S3)

  G:Python传递值是引用

1 def kk(a2):
2     a2.append(99)   #append扩展,一般在元素末尾进行扩展
3 li = [22,33,44,55,]
4 kk(li)     #把列表的元素赋值给函数KK
5 print(li)

二、全局变量

  1、函数作用域

1 def lcj():      #lcj为函数名
2     name="lcj"      #函数作用域
3     print(name)
4 lcj()     #调用函数

  2、全局变量:所有的作用域里面都可以调用全局变量,潜规则:所有定义的全局变量必须是大写

  3、局部变量:在局部不变量中,优先使用自己定义的局部变量,如自己局部变量中没元素,可调用全局变量元素

  4、在局部变量中引用全局变量,需用关键元素“global”

 1 #全局变量,多有作用域都可读
 2 #对全局变量进行重新赋值[增删改],需要用global
 3 #特殊:列表、字典、可修改,不可重新赋值
 4 #定义全局变量都是大写
 5 name = "lcj"     #全局变量
 6 name = [22,3,4,5,]
 7 def f1():
 8     age = 12
 9     name = "hh"    #局部变量name
10     print(name,age)
11 f1()
12 def f2():
13     age = 18
14     global name  #对全局变量进行重新赋值
15     name = "123"
16     print(name,age)
17 f2()

   三、登入

    1、登入

    2、注册

 1 def login(user,pwd):
 2     """
 3     用户登入
 4     :param user: 用户名
 5     :param pwd: 密码
 6     :return: true:表示登入成功,False:登入失败
 7     """
 8     f = open("db",‘r‘)
 9     for line in f:  #表示一行行读元素
10         list_line = line.split("|")  #用户名和密码用| 分开
11         if list_line[0]==user and list_line[1]==pwd:    #如果用户名和密码与文件中的用户名和密码项目则返回True
12             return True
13     return False    #用户名和密码不相等,返回False
14
15
16 def register(user,pwd):
17     """
18     用户注册
19     :param user: 用户名
20     :param pwd: 密码
21     :return: 默认None
22     """
23     f = open("db",‘a‘)  #a:表示添加
24     temp ="\n"+ user + "|"+pwd  #\n:换行符
25     f.write(temp)
26     f.close()     #关闭文件
27
28
29 def main():
30     t = input("1:登入;2:注册")
31     if t == "1":
32         user = input("请输入用户名:")
33         pwd = input("请输入密码:")
34         r = login(user,pwd)   #吧输入的用户和密码传递给login,那么login需要接受用户名和密码两个参数
35         if r:
36             print("登入成功")
37         else:
38             print("登入失败")
39         print(‘登入‘)
40     elif t == "2":
41         user = input("请输入用户名:")
42         pwd = input("请输入密码:")
43         register(user,pwd)   #注册文件中用户名和密码
44 main()   #调用main函数,让用户选择登入或者注册

   四,三元运算

  三元运算又称三目运算,是对简单的条件语句的缩写

  书写格式:

  result = 值1 if 条件 else 值2

  #如果条件成立,那么值1赋值给result值,否则,将“值2”赋值给result变量

  

  五,lambda表达式

  只能对简单的赋值进行操作

 1 #简单函数表达式
 2 # def f1(a1):    #a1属于形参,
 3 #     return a1+100
 4 # ret = f1(10)  #10属于实参,把实参传递给形参a1,返回值f1为a1+100
 5 # print(ret)
 6 #lambda表达式运算如上函数
 7 def f1(a1):    #a1属于形参
 8     return a1+100
 9 f2 = lambda a1,a2: a1 + a2 + 100  #lamdba表达式,a1,a2
10 # ret = f1(10)    #10实参,实参传递给形参a1,返回值f1为a1+100
11 # print(ret)
12 ret = f2(12,1)  #给f2传递两个实参,
13 print(ret)
14 #给a2定义一个默认值
15 def f1(a1):    #a1属于形参
16     return a1+100
17 f2 = lambda a1,a2=9: a1 + a2 + 100  #lamdba表达式,给形参a2定义常量
18 ret = f1(10)    #10实参,实参传递给形参a1,返回值f1为a1+100
19 print(ret)
20 ret = f2(9)  #给f2传递
21 print(ret)

  

时间: 2024-10-12 00:42:54

python_day3[set,函数,全局变量]的相关文章

python函数(全局变量,局部变量,作用域,递归函数,高阶函数,匿名函数)

1.1函数 1.1.1什么是函数 函数就是程序实现模块化的基本单元,一般实现某一功能的集合.函数名:就相当于是程序代码集合的名称参数:就是函数运算时需要参与运算的值被称作为参数函数体:程序的某个功能,进行一系列的逻辑运算return 返回值:函数的返回值能表示函数的运行结果或运行状态. 1.1.2函数的作用 函数是组织好的,可重复使用的,用来实现单一,或者相关功能的代码. 函数能够提高应用的模块性,和代码的重复利用率 我们已近知道python提供了许多内置函数,比如print(),我们自已创建的

函数全局变量的修改

#函数间共享数据, 全局变量的修改 # 1,使用全局变量 # 2,返回值全局变量是可变类型(list,dict,set),在函数中修改全局变量时不用globle声明 g_num = 1 #定义全局变量def modify_value1(): global g_num #修改全局变量要先声明同名变量,再修改 g_num = 10 #如果不先用global声明,则是定义一个局部变量 print('修改前:', g_num)modify_value1() #调用函数进行修改全局变量print('修改后

python函数 全局变量和局部变量

1 li1=[1,2,3,4,5] 2 str1='abc' 3 4 def func1(): 5 li1=[7,8,9] 6 str1='efg' 7 print(str1) 8 9 func1() 10 print(li1)#输出的结果为[1,2,3,4,5],并没有因为def函数改变 1 li1=[1,2,3,4,5] 2 str1='abc' 3 4 def func1(): 5 li1=[7,8,9] 6 str1='efg' 7 return li1 8 9 re=func1() 1

Course2-Python函数和模块

一. 函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率. 上一课里提到了Python的很多内置函数.在此主要讲自定义函数. 1. 定义函数的规则: 以def关键词开头,后接函数标识符名称和圆括号(). 规范的函数名 任何传入参数和自变量必须放在圆括号中间.圆括号之间可以用于定义参数. 函数的第一行语句可以文档字符串—用于存放函数注释说明. 函数内容以冒号起始,并且缩进. return结束函数,选择性地返回一个值.不带表达式的re

代码整洁之道——2、函数

一.函数参数(两个或者更少) 限制函数的参数至关重要,因为这样测试函数会更简单.有超过三个以上的参数,测试的时候就要使用不同参数测无数的场景. 一个或者两个参数是理想情况.如果可能的话避免三个参数.三个以上的参数应该杜绝.通常,如果有两个以上的参数,说明这个函数做的太多了.大多数情况下,一个高质量的对象就足够充当一个参数了,当你发现你需要多个参数的时候,你可以使用一个对象来代替. 可以用ES6解构赋值,使函数期望的参数清晰化.这样做有几个好处: 1.他人阅读的时候,一下子就看明白了使用了哪些属性

Python中的函数详解

声明:转载自伯乐在线 Python中的函数,无论是命名函数,还是匿名函数,都是语句和表达式的集合.在Python中,函数是第一个类对象,这意味着函数的用法并没有限制.Python函数的使用方式就像Python中其他值一样,例如字符串和数字等.Python函数拥有一些属性,通过使用Python内置函数dir就能查看这些属性,如下代码所示: def square(x): return x**2 >>> square <function square at 0x031AA230>

2.6 全局变量

在任意函数外部定义的变量叫全局变量,全局变量也在main函数外部,这种变量对程序中的任何函数都有效. #include<iostream> using namespace std; int x = 3, y = 4;//函数全局变量 void func(); int main(){ cout << "在main函数中,X:" << x << ",Y:" << y << endl; func();

函数——基本语法,嵌套、匿名、高阶、递归函数

定义 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可 特性 减小重复代码 使程序变的可扩展 易维护 函数参数 定义函数可以带参数,也可不带参数 形参:只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元.因此,形参只在函数内部有效.函数调用结束返回主调用函数则不能再使用该形参变量 实参:可以是常量.变量.表达式.函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参.因此应预先用赋值,输入等办

Python 5.函数作用域与递归(基础篇)

本章大纲: -变量作用域- 变量由作用范围限制 两种不同的作用域: 全局(global):在函数外部定义 局部(local):在函数内部定义 变量的作用范围 全局变量 在整个程序范围都有效 全部变量可以在局部范围里面使用 局部变量在局部范围内可以使用 局部变量无法在全局范围内使用 LEGB原则 L(Local)局部作用域 E(Enclosing function locale)外部嵌套函数作用域(命名空间) G(Global module)全局变量,函数定义所在模块的命名空间 B(Buildin

Beetl2.2使用说明书20151201

李家智<[email protected]> Table of Contents 1. 什么是Beetl 2. 基本用法 2.1. 从GroupTemplate开始 2.2. 模板基础配置 2.3. 模板资源加载器 2.4. 定界符与占位符号 2.5. 注释 2.6. 临时变量定义 2.7. 全局变量定义 2.8. 共享变量 2.9. 模板变量 2.10. 引用属性 2.11. 算数表达式 2.12. 逻辑表达式 2.13. 循环语句 2.14. 条件语句 2.15. try-catch 2.